顯示具有 Fedora 標籤的文章。 顯示所有文章
顯示具有 Fedora 標籤的文章。 顯示所有文章

2019年5月13日 星期一

Fedora iptable firewalld selinux

Fedora Server 30 防火牆配置詳解

您在 Fedora Server 30 上遇到的遠程連接問題是許多初次接觸 firewalld 的用戶會遇到的典型障礙。以下是您解決問題的邏輯以及一些相關的說明:

1. 理解 firewalldiptables

  • firewalld (Firewall Daemon): 這是 Fedora 等 RHEL 系發行版推薦和預設的動態防火牆管理工具。它通過區域(zones)來管理網絡連接,並可以動態地添加或刪除規則,而無需重載整個防火牆。它的底層確實使用 iptablesnftables
  • iptables (IP Tables): 這是 Linux 核心自帶的網絡包過濾工具。它通過一系列的「規則鏈」來控制數據包的流向。iptables-services 是一個包,提供了管理這些規則的服務。

您遇到的問題: 默認情況下,firewalld 會啟用一些基本規則,阻止外部對大部分端口的訪問,這導致像 httpdplexmediaserver 這些服務無法從外部訪問。即使服務本身啟動了,防火牆也會攔截流量。

2. 您的解決步驟分析

您的操作思路是:禁用複雜的 firewalld,回歸到更直接、可控的傳統 iptables,並將其清空以解除所有限制。

  1. systemctl stop firewalld: 這是關鍵的第一步,它會立即停止 firewalld 服務,並移除其當前的防火牆規則。
  2. dnf install iptables-services: 安裝傳統的 iptables 服務。這個包包含了 iptables 命令工具和用於保存/載入規則的服務腳本。
  3. 重啟系統: 這一點很重要。重啟系統後,firewalld 不會再次啟動,而 iptables-services 則會接管防火牆管理。通常情況下,新安裝的 iptables-services 默認會從一個空的規則集開始。
  4. systemctl restart iptables: 確保 iptables 服務啟動並載入任何已配置的規則(此時通常是空的)。
  5. systemctl stop iptables: 這一步有點特別。它會停止 iptables 服務,但不會清除當前生效的 iptables 規則。換句話說,此時內核中的 iptables 規則仍然是您停止服務前所設定的狀態。
  6. iptables -L -n: 顯示當前內核中實際生效的 iptables 規則。您的輸出顯示所有鏈的策略都是 ACCEPT,且沒有任何自定義規則。這意味著所有流量都被允許通過

3. 您的結論與注意事項

您的結論:「這樣,就可以放心使用firewalld」

這句話可能存在筆誤,因為您實際上是禁用了 firewalld 並使用了 iptables。在您完成這些步驟後,您的系統防火牆已經處於 完全開放 的狀態,任何端口的流量都可以進入或離開。

重要注意事項:

  • 安全性風險: 您的當前配置 (Chain INPUT (policy ACCEPT)) 意味著您的伺服器對外部是完全開放的,沒有任何防火牆保護。這對於生產環境來說是非常危險的,因為它暴露了所有服務,可能成為攻擊的目標。
  • 推薦做法:
    • 如果傾向於使用 firewalld 建議重新啟用 firewalld (systemctl start firewalld && systemctl enable firewalld),然後學習如何使用 firewall-cmd 命令來開啟您需要的特定端口和服務。例如:
      Bash
      sudo firewall-cmd --permanent --add-service=http # 允許 HTTP (80 端口)
      sudo firewall-cmd --permanent --add-port=32400/tcp # 允許 Plex (默認 32400 端口)
      sudo firewall-cmd --reload # 重新載入規則
      
    • 如果堅持使用 iptables 您應該學習如何添加必要的 iptables 規則來只開放您需要的端口,並拒絕其他所有流量。這比 firewalld 更複雜,需要手動管理規則文件。 例如,要允許 SSH 和 HTTP 流量:
      Bash
      # 允許已建立的連接
      iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
      # 允許 SSH (22 端口)
      iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      # 允許 HTTP (80 端口)
      iptables -A INPUT -p tcp --dport 80 -j ACCEPT
      # 允許 HTTPS (443 端口)
      iptables -A INPUT -p tcp --dport 443 -j ACCEPT
      # 允許 Plex (例如 32400 端口)
      iptables -A INPUT -p tcp --dport 32400 -j ACCEPT
      # 拒絕其他所有進入的流量 (非常重要!)
      iptables -P INPUT DROP
      # 保存規則
      iptables-save > /etc/sysconfig/iptables
      # 啟用 iptables 服務以在重啟時載入這些規則
      systemctl enable iptables
      systemctl start iptables
      
      請注意,上述 iptables 規則是示例,您需要根據實際需求進行調整。

大乐透号码选取器

大乐透号码选取器 (带历史记录) 大乐透号码选取器 前区号码 (5个,01-35) ...