Linux下配置系統防火墻以支持FileZilla的步驟
FileZilla作為FTP客戶端,其本身不提供防火墻設置功能,需通過Linux系統的防火墻工具(如iptables
、firewalld
、ufw
)配置規則,允許FTP流量通過。以下是具體方法:
FTP服務默認使用21端口(控制連接),若啟用被動模式(推薦),需額外開放數據端口范圍(如50100-52100)。需根據實際配置調整端口數值。
iptables
是Linux經典防火墻工具,適用于大多數發行版(如CentOS 7以下、Debian 9以下)。
查看現有規則:
sudo iptables -L -n --line-numbers
確認當前規則列表,避免沖突。
允許FTP控制端口(21):
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
允許TCP協議的21端口流量(FTP控制連接)。
允許FTP數據端口(被動模式):
若使用被動模式,需開放數據端口范圍(如50100-52100):
sudo iptables -A INPUT -p tcp --dport 50100:52100 -j ACCEPT
替換為實際使用的端口范圍。
保存規則:
不同發行版的保存路徑不同:
sudo iptables-save > /etc/iptables/rules.v4
sudo service iptables save
firewalld
是當前主流防火墻管理工具(如CentOS 7+、Fedora、Ubuntu 22.04+),支持動態規則和區域管理。
啟動并啟用firewalld:
sudo systemctl start firewalld
sudo systemctl enable firewalld
確保服務運行且開機自啟。
允許FTP服務(自動開放21端口):
sudo firewall-cmd --permanent --add-service=ftp
此命令會自動開放FTP控制端口(21)及被動模式所需端口(需提前配置FileZilla Server的被動模式端口范圍)。
手動添加被動模式端口范圍(若未用服務):
若未使用--add-service=ftp
,需手動開放21端口和數據端口:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=50100-52100/tcp
替換為實際端口范圍。
重新加載規則:
sudo firewall-cmd --reload
使永久規則生效。
驗證規則:
sudo firewall-cmd --list-all
檢查ports
或services
列表中是否包含21端口及數據端口范圍。
ufw
(Uncomplicated Firewall)是Debian/Ubuntu的簡化防火墻工具,適合新手。
安裝ufw:
sudo apt update && sudo apt install ufw
啟用ufw并設置默認策略:
sudo ufw enable
sudo ufw default deny incoming # 拒絕所有入站流量(默認安全)
sudo ufw default allow outgoing # 允許所有出站流量
允許FTP服務:
sudo ufw allow ftp
自動開放21端口及被動模式端口(需提前配置FileZilla Server)。
手動添加端口(可選):
若需自定義端口范圍:
sudo ufw allow 21/tcp
sudo ufw allow 50100:52100/tcp
查看狀態:
sudo ufw status verbose
確認規則已生效。
若使用被動模式,需在FileZilla Server中設置被動模式端口范圍,并與防火墻規則一致:
sudo firewall-cmd --permanent --add-source=192.168.1.0/24
),減少攻擊面。