配置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服務器的防火墻。