在Linux中,如何配置防火牆?

黄嘉波發表於2024-05-01

在Linux中,配置防火牆通常涉及到兩個常用的工具:iptablesfirewalld。這兩個工具都可以用來設定防火牆規則,但它們的工作方式和配置方法有所不同。

1. 使用iptables配置防火牆

iptables是一個命令列工具,它提供了豐富的功能來控制進出系統的網路流量。

  1. 檢視當前規則

    sudo iptables -L -n
    
  2. 允許特定服務
    允許HTTP和HTTPS服務透過防火牆:

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
  3. 允許來自特定IP的流量
    允許來自IP地址1.2.3.4的所有流量:

    sudo iptables -A INPUT -s 1.2.3.4 -j ACCEPT
    
  4. 拒絕特定服務
    拒絕所有外部的SSH連線:

    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    
  5. 儲存規則
    儲存當前的iptables規則:

    sudo iptables-save > /etc/iptables/rules.v4
    
  6. 重啟iptables服務
    重啟iptables服務以應用更改:

    sudo systemctl restart iptables
    
2. 使用firewalld配置防火牆

firewalldiptables的前端管理工具,它提供了一個動態防火牆管理介面。

  1. 檢視狀態
    檢視firewalld服務的狀態:

    sudo firewall-cmd --state
    
  2. 檢視所有開放的埠

    sudo firewall-cmd --list-ports
    
  3. 允許特定埠
    允許埠80(HTTP)的流量:

    sudo firewall-cmd --add-port=80/tcp --permanent
    
  4. 拒絕特定埠
    拒絕埠8080(可以是任何其他埠)的流量:

    sudo firewall-cmd --add-rich-rule='rule family="ipv4" port port=8080 protocol=tcp drop' --permanent
    
  5. 允許來自特定IP的流量
    允許來自IP地址1.2.3.4的所有流量:

    sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address=1.2.3.4 accept' --permanent
    
  6. 重新載入防火牆規則
    重新載入firewalld以應用更改:

    sudo firewall-cmd --reload
    
  7. 禁用防火牆
    如果你需要臨時禁用防火牆,可以使用:

    sudo firewall-cmd --runtime-to=0
    
3. 注意事項
  • 在配置防火牆規則時,請確保你有足夠的許可權。
  • 在修改防火牆規則之前,確保你瞭解每條規則的影響,以避免意外地鎖定自己或使服務不可用。
  • 定期審查防火牆規則,確保它們符合安全策略。
  • 在生產環境中,建議在維護時間視窗內進行防火牆配置更改,並確保有回滾計劃。

綜上所述,透過使用iptablesfirewalld,你可以控制進出Linux系統的網路流量,從而提高系統的安全性。

相關文章