配置Linux FTP服务器的防火墙需要确保FTP服务所需的端口和协议被允许通过。以下是一个基本的步骤指南,假设你使用的是iptables
作为防火墙工具:
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
FTP数据连接通常使用动态端口范围,这个范围需要在防火墙中开放。常见的动态端口范围是30000到32767,但你可以根据需要调整。
iptables
的--match multiport
模块sudo iptables -A INPUT -p tcp --dport 30000:32767 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables
的--match owner
模块(仅限特定用户)如果你只想允许特定用户的FTP数据连接,可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport 30000:32767 -m owner --uid-owner ftpuser -m state --state NEW,ESTABLISHED -j ACCEPT
将ftpuser
替换为你的FTP用户名。
FTP服务器在被动模式下会打开一个随机端口来传输数据。你需要允许这些端口的流量。
iptables
的--match multiport
模块sudo iptables -A INPUT -p tcp --dport 30000:32767 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables
的--match owner
模块(仅限特定用户)sudo iptables -A INPUT -p tcp --dport 30000:32767 -m owner --uid-owner ftpuser -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 30000:32767 -m state --state ESTABLISHED -j ACCEPT
不同的Linux发行版可能有不同的方法来保存iptables
规则。以下是一些常见的方法:
sudo iptables-save > /etc/iptables/rules.v4
sudo service iptables save
或者
sudo systemctl stop firewalld
sudo iptables-save > /etc/sysconfig/iptables
确保防火墙规则生效:
sudo systemctl restart iptables
或者
sudo systemctl restart firewalld
vsftpd.conf
)正确设置了被动模式端口范围。通过以上步骤,你应该能够成功配置Linux FTP服务器的防火墙。