在Linux系統(tǒng)中,為FTP服務(wù)器配置防火墻通常需要以下步驟:
第一步:確定FTP端口
FTP服務(wù)默認(rèn)使用兩個端口:
- 端口21: 用于控制連接(命令通道)。
- 端口20: 用于數(shù)據(jù)傳輸(數(shù)據(jù)通道)。
此外,如果使用被動模式(PASV)FTP,還需要額外開放一個動態(tài)端口范圍。
第二步:配置防火墻規(guī)則
您可以使用iptables或firewalld來管理防火墻規(guī)則。以下分別提供示例:
使用iptables:
# 允許FTP控制連接 (端口21) sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT # 允許FTP數(shù)據(jù)連接 (端口20) sudo iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT # 允許被動模式FTP數(shù)據(jù)連接 (假設(shè)端口范圍為50000-50050) sudo iptables -A INPUT -p tcp --dport 50000:50050 -m state --state NEW,ESTABLISHED -j ACCEPT # 允許已建立的連接 sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 保存iptables規(guī)則 sudo iptables-save > /etc/iptables/rules.v4
使用firewalld:
# 啟動firewalld服務(wù) sudo systemctl start firewalld sudo systemctl enable firewalld # 允許FTP控制連接 (端口21) sudo firewall-cmd --permanent --add-port=21/tcp # 允許FTP數(shù)據(jù)連接 (端口20) sudo firewall-cmd --permanent --add-port=20/tcp # 允許被動模式FTP數(shù)據(jù)連接 (假設(shè)端口范圍為50000-50050) sudo firewall-cmd --permanent --add-port=50000-50050/tcp # 重新加載firewalld配置 sudo firewall-cmd --reload # 查看當(dāng)前firewalld配置 sudo firewall-cmd --list-all
第三步:配置FTP服務(wù)器使用被動模式
確保您的FTP服務(wù)器配置文件(通常是/etc/vsftpd/vsftpd.conf或/etc/proftpd/proftpd.conf)已啟用被動模式并設(shè)置正確的被動模式端口范圍。
例如,在vsftpd中:
pasv_enable=YES pasv_min_port=50000 pasv_max_port=50050
在proftpd中:
PassivePorts 50000 50050
第四步:重啟FTP服務(wù)
重啟FTP服務(wù)以應(yīng)用新的配置。
# 對于vsftpd sudo systemctl restart vsftpd # 對于proftpd sudo systemctl restart proftpd
第五步:驗證防火墻規(guī)則
驗證防火墻規(guī)則是否正確應(yīng)用以及FTP服務(wù)是否正常工作。
# 檢查iptables規(guī)則 sudo iptables -L -v # 檢查firewalld狀態(tài) sudo firewall-cmd --state
完成以上步驟后,您的Linux系統(tǒng)FTP服務(wù)器防火墻配置應(yīng)該就完成了。 請記住將50000-50050替換為您實際使用的被動模式端口范圍。