FTP centos 7.docx
- 文档编号:23167771
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:10
- 大小:18.27KB
FTP centos 7.docx
《FTP centos 7.docx》由会员分享,可在线阅读,更多相关《FTP centos 7.docx(10页珍藏版)》请在冰豆网上搜索。
FTPcentos7
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
用于Internet上的控制文件的双向传输。
同时,它也是一个应用程序(Application)。
基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两个概念:
”下载”(Download)和”上传”(Upload)。
一般在各种linux的发行版中,默认带有的ftp软件是vsftp,从各个linux发行版对vsftp的认可可以看出,vsftp应该是一款不错的ftp软件。
1、安装FTP服务
检查是否已安装vsftpd软件
rpm-qa|grepvsftpd
1
如果没有安装,使用YUM命令进行安装
yuminstallvsftpd-y
1
2、启动VSFTPD服务
安装完成后,启动FTP服务:
systemctlstartvsftpd.service
#老版本执行命令:
servicevsftpdstart
启动后,可以看到系统已经监听了21端口:
netstat-nltp|grep21
1
此时,访问ftp:
//
停止ftp服务
systemctlstopvsftpd.service
#老版本执行命令:
servicevsftpdstop
重启ftp服务
systemctlrestartvsftpd.service
#老版本执行命令:
servicevsftpdrestart
3、配置FTP权限
目前FTP服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置FTP访问权限;
了解VSFTP配置:
vsftpd的配置目录为/etc/vsftpd,包含下列的配置文件:
vsftpd.conf为主要配置文件
ftpusers配置禁止访问FTP服务器的用户列表
user_list配置用户访问控制
阻止匿名访问和切换根目录:
vim/etc/vsftpd/vsftpd.conf
1
编辑/etc/vsftpd/vsftpd.conf,找到以下配置并修改或添加:
#禁用匿名用户
anonymous_enable=NO
#禁止切换根目录
chroot_local_user=YES
#设置FTP主目录
local_root=/data/ftp
#配置FTP被动模式的端口
pasv_min_port=30000
pasv_max_port=30000
修改配置后,重新启动FTP服务,让配置生效;
匿名访问让所有人都可以上传文件到服务器上而无需鉴权,而允许切换根目录则可能产生越权访问问题。
4、创建FTP用户
创建一个用户
useradduser1
1
为用户设置密码
echo"password1"|passwduser1--stdin
1
限制该用户仅能通过FTP访问
usermod-s/sbin/nologinuser1
1
限制用户user1只能通过FTP访问服务器,而不能直接登录服务器:
为用户分配主目录
#创建目录:
mkdir-p/data/ftp/pub
#创建登录欢迎说明文件:
echo"WelcometouseFTPservice.">/data/ftp/welcome.txt
#设置访问权限:
chmoda-w/data/ftp&&chmod777-R/data/ftp/pub
#设置为用户的主目录:
即用户通过FTP登录后看到的根目录
usermod-d/data/ftpuser1
为用户创建主目录并约定:
/data/ftp为主目录,该目录不可上传文件
/data/ftp/pub文件只能上传到该目录下
5、访问FTP服务
通过资源管理器的地址栏或浏览器地址栏访问:
ftp:
//user1:
Password@
1
通过FTP客户端工具访问
1)FileZilla-跨平台的FTP客户端,支持Windows和Mac
FileZilla可以处理同时传输,并支持跨平台FTP,SFTP和FTPS客户端,有很多有用的功能和直观的图形用户界面。
FileZilla还支持IPv6,书签,选项卡式用户界面,运行在Windows,Linux,MacOSX等,远程文件编辑,目录比较,拖放支持,远程文件搜索等等。
2)WinSCP-Windows下的FTP和SFTP连接客户端
WinSCP是一个用于Windows的开源免费SFTP客户端,FTP客户端,WebDAV客户端和SCP客户端。
它的主要功能是在本地和远程计算机之间进行文件传输。
除此之外,WinSCP提供脚本和基本文件管理器功能。
WinSCP包括图形用户界面,提供多种语言,与Windows集成,批处理文件脚本和命令行界面集成,以及各种其他有用的功能。
6、配置SELinux
VSFTPD是一个FTP服务器程序,然后SELinux是CentOS的防火墙组件。
由于vsftpd默认被SELinux拦截,所以会遇到访问FTP出现以下的问题:
226Transferdone(butfailedtoopendirectory).(传输完成,但是打开路径失败)
550Failedtochangedirectory(更改路径失败)
553Couldnotcreatefile.
1
2
3
解决方法一:
降低SELinux安全级别
此方法原理是:
降低SELinux安全级别,把enforcing降低到permissive,但降低整体系统安全作为代价来解决一个小问题,这总不是最佳方案。
编辑SELinux配置
vim/etc/sysconfig/selinux
1
设置SELINUX=enforcing改为SELINUX=permissive
#ThisfilecontrolsthestateofSELinuxonthesystem.
#SELINUX=cantakeoneofthesethreevalues:
#enforcing-SELinuxsecuritypolicyisenforced.
#permissive-SELinuxprintswarningsinsteadofenforcing.
#disabled-NoSELinuxpolicyisloaded.
SELINUX=permissive
#SELINUXTYPE=cantakeoneofthreetwovalues:
#targeted-Targetedprocessesareprotected,
#minimum-Modificationoftargetedpolicy.Onlyselectedprocessesareprotected.
#mls-MultiLevelSecurityprotection.
SELINUXTYPE=targeted
重启vsftpd服务,即可正常访问FTP
解决方法二:
在SELinux中设置FTP允许访问
首先查看SELinux中有关FTP的设置状态:
getsebool-a|grepftp
1
ftpd_anon_write-->off
ftpd_connect_all_unreserved-->off
ftpd_connect_db-->off
#此行---ftpd_full_access-->off---默认为off状态
ftpd_full_access-->off
ftpd_use_cifs-->off
ftpd_use_fusefs-->off
ftpd_use_nfs-->off
ftpd_use_passive_mode-->off
httpd_can_connect_ftp-->off
httpd_enable_ftp_server-->off
tftp_anon_write-->off
tftp_home_dir-->off
设置ftpd_full_access为开启状态
setsebool-Pftpd_full_access=on
1
重启vsftpd服务,即可正常访问FTP
-P是保存选项,每次重启时不必重新执行这个命令了
7、配置防火墙
配置iptables防火墙
1、解决vsftpd在iptables开启后,无法使用被动模式的问题
编辑/etc/sysconfig/iptables-config添加以下内容
#添加以下内容,注意顺序不能调换
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"
2、开启21端口
编辑/etc/sysconfig/iptables添加以下内容
iptables-AINPUT-ptcp--dport21-jACCEPT
iptables-AINPUT-ptcp--dport30000-jACCEPT
iptables-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT
配置firewalld防火墙
1、开启21端口
查询所有已开启端口
firewall-cmd--zone=public--list-ports
1
查询是否开启21端口
firewall-cmd--zone=public--query-port=21/tcp
1
开启21端口(如未开启)
firewall-cmd--zone=public--add-port=21/tcp--permanent(--permanent永久生效,无参数重启后失效)
#开启被动模式30000端口(vsftpd.conf中相应配置)
firewall-cmd--zone=public--add-port=30000/tcp--permanent
重新载入防火墙规则
firewall-cmd--reload
1再次查询,开启成功;
2、firewalld常用命令
查看防火墙状态
firewall-cmd--state
1
查看版本
firewall-cmd--version
1
查看帮助
firewall-cmd--help
1
其他命令
#查看所有打开的端口:
firewall-cmd--zone=public--list-ports
#更新防火墙规则:
firewall-cmd--reload
#查看区域信息:
firewall-cmd--get-active-zones
#查看指定接口所属区域:
firewall-cmd--get-zone-of-interface=eth0
#拒绝所有包:
firewall-cmd--panic-on
#取消拒绝状态:
firewall-cmd--panic-off
#查看是否拒绝:
firewall-cmd--query-panic
systemctl相关命令
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
#启动一个服务:
systemctlstartfirewalld.service
#关闭一个服务:
systemctlstopfirewalld.service
#重启一个服务:
systemctlrestartfirewalld.service
#显示一个服务的状态:
systemctlstatusfirewalld.service
#在开机时启用一个服务:
systemctlenablefirewalld.service
#在开机时禁用一个服务:
systemctldisablefirewalld.service
#查看服务是否开机启动:
systemctlis-enabledfirewalld.service
#查看已启动的服务列表:
systemctllist-unit-files|grepenabled
#查看启动失败的服务列表:
systemctl--failed
8、配置端口转发与端口映射
有外围防火墙的在防火墙上做映射
系统防火墙做映射
iptables-tnat-APREROUTING-d外网IP-ptcp--dport端口-jDNAT--to内网IP:
端口
iptables-tnat-APOSTROUTING-d内网IP-ptcp--dport端口-jSNAT--to外网IP:
端口
iptablessave
PREROUTING:
是目的地址转换(DNAT),要把别人的公网IP换成你们内部的IP,才让访问到你们内部受防火墙保护的服务器。
POSTROUTING:
是源地址转换(SNAT),要把你内部网络上受防火墙保护的ip地址转换成你本地的公网地址才能让它们上网。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FTP centos