不关闭SELinux情况下使用ftp传输
在做搭建ftp服务器的作业时,整了一个活,在不关闭SELinux的情况下测试ftp服务器
使用的环境,虚拟机*2 (CentOS 7),Hyper-v,网卡已设为静态
需要安装的软件包:
服务器(下称server):
vsftpd
ftp
ip可自定义,此处设为192.168.4.5
客户机(下称client):
ftp
ip这里设为192.168.4.205
修改vsftpd配置
进入目录/etc/vsftpd
,编辑vsftpd.conf
,在最后一行添加
listen_port=21
防火墙添加信任
然后在防火墙里允许特定ip访问特定端口(作业里要访问的ip是192.168.4.205
)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.4.205" port protocol="tcp" port="21" accept"
向客户机开放21端口
firewall-cmd --reload
重新载入防火墙
firewall-cmd --zone=public --list-rich-rules
查看开放的端口
如果显示防火墙未启动,可以运行命令启动防火墙
systemctl start firewalld
客户机测试
连接服务器
ftp 192.168.4.5
当显示ftp>
时,输入ls
或者pwd
查看当前位置时,又出现了一个bug,显示no route to host
,
这时候再回到服务器,修改/etc/sysconfig/
下的iptables-config
,更改其中IPTABLES_MODULES=""
项为
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
然后重启防火墙相关服务
systemctl restart iptables.service
如果服务器重启后,客户机ftp连接服务器还出现no route to host
的情况,以此输入以下命令开启相关防火墙服务
systemctl start firewalld
systemctl start iptables.service
如果仅是临时使用,可以运行以下两条命令
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp