CentOS系统vsftpd防火墙配置指南
vsftpd作为FTP服务器,需开放控制端口(21/tcp,用于命令传输)和数据端口(20/tcp,用于主动模式数据传输),确保客户端能建立连接并传输数据。
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload
/etc/sysconfig/iptables文件,在-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT行前添加规则,保存后重启iptables:-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
service iptables restart
vsftpd的被动模式(PASV)用于解决客户端位于防火墙后的连接问题,需开放一个动态端口范围(如10000-10010、60000-65535等,根据实际情况调整)。
sudo firewall-cmd --permanent --add-port=10000-10010/tcp # 替换为你的实际端口范围
sudo firewall-cmd --reload
/etc/sysconfig/iptables文件,添加以下规则(替换为你的实际端口范围):-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000:10010 -j ACCEPT
service iptables restart
注:vsftpd配置文件(
/etc/vsftpd/vsftpd.conf)中需开启被动模式并指定端口范围,例如:pasv_enable=YES pasv_min_port=10000 pasv_max_port=10010
若系统SELinux处于enforcing模式,需调整策略以允许vsftpd访问用户目录及执行被动模式:
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
/home/ftpuser):sudo chcon -Rv --type=public_content_t /home/ftpuser
sudo firewall-cmd --list-all | grep ftp
输出应包含ftp服务及自定义的被动模式端口范围。