在Linux上配置FTP服務器防火墻,你需要確保防火墻允許FTP服務所需的端口。FTP通常使用兩個端口:21(用于控制連接)和20(用于數據傳輸)。此外,如果你的FTP服務器使用被動模式,你還需要打開一系列動態端口范圍。
以下是使用iptables在Linux上配置FTP服務器防火墻的步驟:
打開必要的端口:
配置iptables規則: 打開終端,以root用戶身份登錄,然后使用以下命令來配置iptables。
# 清除現有規則
iptables -F
iptables -X
# 設置默認策略為DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允許本地回環接口的流量
iptables -A INPUT -i lo -j ACCEPT
# 允許已經建立的連接和相關的數據包
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允許FTP控制連接(端口21)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# 允許FTP數據傳輸(端口20)
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# 允許被動模式的FTP數據傳輸
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 49152:65535 -j ACCEPT
# 如果你使用的是IPv4,還需要允許IP轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
保存iptables規則: iptables規則在系統重啟后會丟失,所以你需要保存它們。這可以通過以下命令完成:
iptables-save > /etc/iptables/rules.v4
對于基于Debian的系統,你可以安裝iptables-persistent包來保存規則:
apt-get install iptables-persistent
在安裝過程中,選擇“是”以保存當前規則。
測試防火墻規則: 使用FTP客戶端嘗試連接到你的FTP服務器,確??梢哉9ぷ?。
請注意,這些步驟假設你正在使用iptables作為防火墻。如果你使用的是其他防火墻工具,如ufw、firewalld或nftables,配置步驟將會有所不同。此外,出于安全考慮,建議使用SFTP(SSH File Transfer Protocol)而不是傳統的FTP,因為SFTP提供了更好的安全性。