在Debian系统上配置FTP服务器的防火墙,通常使用iptables或ufw(Uncomplicated Firewall)。以下是使用这两种方法的步骤:
iptables更新iptables规则: 打开终端并输入以下命令来允许FTP流量通过防火墙。
sudo iptables -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
这些规则允许FTP控制连接(端口21)和数据连接(端口20)的新连接和已建立的连接。
保存iptables规则: Debian系统通常不会自动保存iptables规则,因此你需要手动保存它们。
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
启用IP转发(如果需要): 如果你的FTP服务器需要支持被动模式(PASV),你可能需要启用IP转发。
编辑 /etc/sysctl.conf 文件,确保以下行没有被注释掉:
net.ipv4.ip_forward=1
然后应用更改:
sudo sysctl -p
ufw启用ufw: 如果你还没有启用ufw,可以使用以下命令启用它:
sudo ufw enable
允许FTP流量: 使用ufw允许FTP控制连接和数据连接。
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
允许被动模式端口范围(如果需要): 如果你的FTP服务器使用被动模式,你可能需要允许一个端口范围用于数据连接。例如,允许端口范围1024到1048:
sudo ufw allow 1024:1048/tcp
重新加载ufw规则: 应用新的规则:
sudo ufw reload
无论你使用哪种方法,都可以通过以下命令检查防火墙规则是否正确应用:
sudo iptables -L -v -n
或者对于ufw:
sudo ufw status numbered
这些命令将显示当前的防火墙规则和状态,帮助你确认FTP流量是否被正确允许。
通过以上步骤,你应该能够在Debian系统上成功配置FTP服务器的防火墙。