在Linux中,配置防火牆通常涉及到兩個常用的工具:iptables
和firewalld
。這兩個工具都可以用來設定防火牆規則,但它們的工作方式和配置方法有所不同。
1. 使用iptables
配置防火牆
iptables
是一個命令列工具,它提供了豐富的功能來控制進出系統的網路流量。
-
檢視當前規則:
sudo iptables -L -n
-
允許特定服務:
允許HTTP和HTTPS服務透過防火牆:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
-
允許來自特定IP的流量:
允許來自IP地址1.2.3.4
的所有流量:sudo iptables -A INPUT -s 1.2.3.4 -j ACCEPT
-
拒絕特定服務:
拒絕所有外部的SSH連線:sudo iptables -A INPUT -p tcp --dport 22 -j DROP
-
儲存規則:
儲存當前的iptables規則:sudo iptables-save > /etc/iptables/rules.v4
-
重啟iptables服務:
重啟iptables服務以應用更改:sudo systemctl restart iptables
2. 使用firewalld
配置防火牆
firewalld
是iptables
的前端管理工具,它提供了一個動態防火牆管理介面。
-
檢視狀態:
檢視firewalld服務的狀態:sudo firewall-cmd --state
-
檢視所有開放的埠:
sudo firewall-cmd --list-ports
-
允許特定埠:
允許埠80(HTTP)的流量:sudo firewall-cmd --add-port=80/tcp --permanent
-
拒絕特定埠:
拒絕埠8080(可以是任何其他埠)的流量:sudo firewall-cmd --add-rich-rule='rule family="ipv4" port port=8080 protocol=tcp drop' --permanent
-
允許來自特定IP的流量:
允許來自IP地址1.2.3.4
的所有流量:sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address=1.2.3.4 accept' --permanent
-
重新載入防火牆規則:
重新載入firewalld以應用更改:sudo firewall-cmd --reload
-
禁用防火牆:
如果你需要臨時禁用防火牆,可以使用:sudo firewall-cmd --runtime-to=0
3. 注意事項
- 在配置防火牆規則時,請確保你有足夠的許可權。
- 在修改防火牆規則之前,確保你瞭解每條規則的影響,以避免意外地鎖定自己或使服務不可用。
- 定期審查防火牆規則,確保它們符合安全策略。
- 在生產環境中,建議在維護時間視窗內進行防火牆配置更改,並確保有回滾計劃。
綜上所述,透過使用iptables
或firewalld
,你可以控制進出Linux系統的網路流量,從而提高系統的安全性。