Debian下vsftpd防火墙设置指南
在Debian系统中,vsftpd(Very Secure FTP Daemon)的防火墙配置主要涉及ufw(Uncomplicated Firewall,推荐)和iptables两种工具,需结合vsftpd的被动模式端口范围调整,确保FTP服务正常运行且安全。
被动模式(PASV)是FTP客户端常用的连接方式,需在vsftpd配置文件中指定端口范围,以便防火墙放行。
sudo nano /etc/vsftpd.conf
50000-50100):pasv_enable=YES # 启用被动模式
pasv_min_port=50000 # 被动模式最小端口
pasv_max_port=50100 # 被动模式最大端口
pasv_address=<服务器公网IP> # 若服务器有公网IP,需指定(可选)
sudo systemctl restart vsftpd
ufw是Debian默认的简化防火墙工具,操作便捷,适合大多数场景。
sudo apt update && sudo apt install ufw -y
sudo ufw enable
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
50000-50100):sudo ufw allow 50000:50100/tcp
sudo ufw allow 'vsftpd' # 或使用:sudo ufw allow established
sudo ufw status verbose
输出应包含类似内容:Status: active
To Action From
-- ------ ----
21/tcp ALLOW Anywhere
50000:50100/tcp ALLOW Anywhere
21/tcp (v6) ALLOW Anywhere (v6)
50000:50100/tcp (v6) ALLOW Anywhere (v6)
若需更细粒度的控制,可使用iptables(需手动保存规则)。
sudo apt update && sudo apt install iptables -y
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
50000-50100):sudo iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo iptables -L -n
pasv_min_port/pasv_max_port必须与防火墙规则中的端口范围完全一致,否则客户端连接会失败。通过以上步骤,即可在Debian系统上为vsftpd配置防火墙规则,确保FTP服务的安全性和可用性。