FTP服务器的防火墙配置需确保控制连接(端口21)、数据连接(端口20)及被动模式端口范围的开放,同时兼顾安全性。以下是分步配置说明:
FTP服务默认使用两个核心端口:
Linux系统常用ufw(Ubuntu/Debian)、firewalld(CentOS/RHEL)或iptables管理防火墙规则。
sudo apt update && sudo apt install ufw
sudo ufw enable
sudo ufw allow 21/tcp # 控制连接
sudo ufw allow 20/tcp # 数据连接(主动模式)
sudo ufw allow 50000:50100/tcp # 被动模式端口范围(根据实际情况调整)
sudo ufw reload
sudo systemctl start firewalld && sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --permanent --add-port=50000-50100/tcp # 被动模式端口范围
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT
sudo apt install iptables-persistent && sudo netfilter-persistent save
(CentOS/RHEL):sudo service iptables save
被动模式需FTP服务器与客户端协商动态端口,因此必须在FTP服务器配置文件中指定端口范围,并同步开放防火墙:
/etc/vsftpd.conf,添加:pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50100
anonymous_enable=NO(vsftpd);userlist_enable=YES + userlist_file指定用户列表);完成配置后,使用FTP客户端(如FileZilla)测试连接,确保能正常上传/下载文件。若遇问题,可通过telnet或nc命令检查端口连通性(如telnet 服务器IP 21)。