为Linux FTP服务器设置防火墙规则,通常需要允许FTP协议使用的端口。FTP协议默认使用两个端口:21(用于控制连接)和20(用于数据传输)。此外,如果使用被动模式(PASV),还需要开放一系列动态端口。
以下是使用iptables
和firewalld
两种常见的防火墙管理工具来设置防火墙规则的步骤:
iptables
允许FTP控制连接端口(21):
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
允许FTP数据传输端口(20):
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
允许被动模式端口范围(通常是49152到65535):
sudo iptables -A INPUT -p tcp --dport 49152:65535 -j ACCEPT
保存规则(具体命令取决于发行版):
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
sudo service iptables save
firewalld
启动并启用firewalld服务(如果尚未启动):
sudo systemctl start firewalld
sudo systemctl enable firewalld
允许FTP控制连接端口(21):
sudo firewall-cmd --permanent --add-port=21/tcp
允许FTP数据传输端口(20):
sudo firewall-cmd --permanent --add-port=20/tcp
允许被动模式端口范围(通常是49152到65535):
sudo firewall-cmd --permanent --add-port=49152-65535/tcp
重新加载firewalld配置:
sudo firewall-cmd --reload
iptables
是大多数Linux发行版的默认工具,而firewalld
在Red Hat系发行版中更常见。通过以上步骤,你可以为Linux FTP服务器设置基本的防火墙规则,确保FTP服务的正常运行。