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