在Linux中,如何設定防火牆規則?

黄嘉波發表於2024-05-24

在Linux中設定防火牆規則是一個涉及安全性和網路管理的重要任務。Linux系統中最常用的兩個防火牆工具是iptablesfirewalld。以下是如何使用這兩種工具來設定防火牆規則的詳細步驟:

1. 使用iptables設定防火牆規則

iptables是一個命令列的防火牆配置工具,它提供了非常靈活的規則設定。

  1. 檢視當前規則

    sudo iptables -L -n -v
    
  2. 允許特定埠

    sudo iptables -A INPUT -p tcp --dport <埠號> -j ACCEPT
    
  3. 禁止特定埠

    sudo iptables -A INPUT -p tcp --dport <埠號> -j DROP
    
  4. 允許來自特定IP的流量

    sudo iptables -A INPUT -s <IP地址> -j ACCEPT
    
  5. 禁止來自特定IP的流量

    sudo iptables -A INPUT -s <IP地址> -j DROP
    
  6. 設定預設策略(例如,拒絕所有輸入流量):

    sudo iptables -P INPUT DROP
    
  7. 儲存iptables規則(需要安裝iptables-persistent):

    • 對於基於Debian的系統:

      sudo apt-get install iptables-persistent
      sudo netfilter-persistent save
      
    • 對於基於RPM的系統:

      sudo yum install iptables-services
      sudo systemctl enable iptables
      sudo service iptables save
      
  8. 恢復預設規則

    sudo iptables -F
    
2. 使用firewalld設定防火牆規則

firewalld是一個動態防火牆管理工具,提供了圖形介面和命令列介面。

  1. 檢視狀態

    sudo firewall-cmd --state
    
  2. 檢視所有區域的列表

    sudo firewall-cmd --get-active-zones
    
  3. 檢視區域的服務

    sudo firewall-cmd --list-all
    
  4. 新增服務到區域

    sudo firewall-cmd --zone=public --add-service=http
    
  5. 刪除服務從區域

    sudo firewall-cmd --zone=public --remove-service=http
    
  6. 新增埠到區域

    sudo firewall-cmd --zone=public --add-port=80/tcp
    
  7. 刪除埠從區域

    sudo firewall-cmd --zone=public --remove-port=80/tcp
    
  8. 設定預設區域

    sudo firewall-cmd --set-default-zone=public
    
  9. 重新載入防火牆規則

    sudo firewall-cmd --reload
    
  10. 檢視幫助

    sudo firewall-cmd --help
    
3. 注意事項:
  • 在更改防火牆規則時,務必謹慎,錯誤的配置可能導致無法訪問系統。
  • 通常需要root許可權或使用sudo來執行防火牆命令。
  • 考慮使用持久化選項(如--permanent)來儲存你的更改,這樣在重啟後規則仍然有效。
  • 在生產環境中更改防火牆規則之前,務必進行充分的測試。

綜上所述,你可以使用iptablesfirewalld在Linux中設定防火牆規則,控制進出你的系統的網路流量。

相關文章