配置Linux FTP服务器的防火墙规则需要确保FTP服务所需的端口和协议被允许通过防火墙。以下是一个基本的步骤指南,假设你使用的是iptables
作为防火墙工具。
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
FTP数据连接通常使用动态端口范围,通常是20和49152到65535之间的端口。你需要允许这些端口的入站和出站连接。
iptables
的--match multiport
模块sudo iptables -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -m multiport --dports 49152:65535 -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 -m multiport --sports 49152:65535 -m state --state ESTABLISHED -j ACCEPT
iptables
的--match conntrack
模块sudo iptables -A INPUT -p tcp --dport 20 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 允许被动模式端口范围
sudo iptables -A INPUT -m conntrack --ctstate NEW,ESTABLISHED -m tcp --dport 49152:65535 -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -m tcp --sport 49152:65535 -j ACCEPT
确保FTP服务器能够响应数据连接请求。这通常需要允许被动模式的响应端口范围。
sudo iptables -A INPUT -m conntrack --ctstate 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 iptables
或者
sudo systemctl start firewalld
vsftpd.conf
)中的被动模式端口范围与防火墙规则一致。通过以上步骤,你应该能够成功配置Linux FTP服务器的防火墙规则。