在Linux中,如何配置防火牆和安全規則?

黄嘉波發表於2024-05-14

在Linux中,配置防火牆和安全規則通常涉及使用iptables或較新的firewalld工具。以下是使用這兩種工具的基本步驟和概念:

1. 使用iptables配置防火牆規則

iptables是Linux核心的Netfilter框架的一部分,用於配置防火牆規則。它透過一系列鏈(chains)和規則(rules)來決定資料包的處理方式(如允許、拒絕或丟棄)。

1.1 檢視現有規則
sudo iptables -L
1.2 清空規則
sudo iptables -F # 清空所有鏈上的規則
sudo iptables -X # 刪除所有使用者自定義的鏈
1.3 基本規則設定示例
  • 允許所有出站連線:
sudo iptables -P OUTPUT ACCEPT
  • 拒絕所有未明確允許的入站連線:
sudo iptables -P INPUT DROP
  • 允許SSH連線(假設使用預設埠22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 儲存規則:
sudo service iptables save # 對於Systemd系統,可能需要使用iptables-persistent或firewalld的儲存機制
2. 使用firewalld配置防火牆規則

firewalld是較新的動態防火牆管理系統,它提供了一個更高階的介面來管理防火牆規則,支援區域(zones)的概念,使得配置更為直觀。

2.1 檢視預設區域
sudo firewall-cmd --get-default-zone
2.2 切換預設區域
sudo firewall-cmd --set-default-zone=public
2.3 允許服務或埠
  • 開啟HTTP服務(永久生效):
sudo firewall-cmd --permanent --add-service=http
  • 開啟自定義埠(如8080,永久生效):
sudo firewall-cmd --permanent --add-port=8080/tcp
2.4 過載規則
sudo firewall-cmd --reload
2.5 檢視規則
sudo firewall-cmd --list-all
3. 安全規則的一般原則:
  1. 最小許可權原則:只開放必要的服務和埠。
  2. 預設拒絕:未明確允許的流量應預設被拒絕。
  3. 日誌記錄:記錄被拒絕的連線嘗試,以便分析潛在的攻擊。
  4. 定期審查:定期檢查並更新防火牆規則,以適應系統和安全需求的變化。
  5. 備份規則:在進行重大更改前,備份現有的防火牆規則。

綜上所述,具體操作可能會根據Linux發行版和版本的不同有所差異。在生產環境中配置防火牆之前,建議在測試環境中先行驗證規則,以避免意外中斷服務。

相關文章