Centos

單個伺服器中的兩個防火牆 - 如何在不“鎖定”的情況下刪除一個?

  • December 1, 2019

我正在執行 CentOS 7 VPS,我購買了預配置並安裝了 iptables,但我一開始並沒有檢查這個。我知道 CentOS 7“應該”有防火牆,所以我安裝了 firewalld 並且沒有出現錯誤。

後來,當我嘗試通過 啟動守護程序時systemctl start firewalld,程序很快就崩潰了,沒有顯示任何錯誤。

我跑systemctl status firewalld以確保防火牆正在執行並得到以下輸出:

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  Active: inactive (dead) since Tue 2019-11-19 08:35:39 EST; 1min 35s ago
    Docs: man:firewalld(1)
 Process: 27356 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 27356 (code=exited, status=0/SUCCESS)

Nov 19 08:35:37 vps.blabla.com systemd[1]: Starting firewalld - dynamic ....
Nov 19 08:35:38 vps.blabla.com systemd[1]: Started firewalld - dynamic f....
Nov 19 08:35:39 vps.blabla.com firewalld[27356]: WARNING: ipset not usabl...
Nov 19 08:35:39 vps.blabla.com firewalld[27356]: ERROR: Failed to load nf...
                                           modprobe: ERROR: could n...
                                           modprobe: ERROR: Error r...
Nov 19 08:35:39 vps.blabla.com firewalld[27356]: ERROR: Raising SystemExi...
Hint: Some lines were ellipsized, use -l to show in full.

我使用它進行了深入研究,systemctl status firewalld -l並得到了以下資訊:

* firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  Active: inactive (dead) since Tue 2019-11-19 08:35:39 EST; 13min ago
    Docs: man:firewalld(1)
 Process: 27356 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 27356 (code=exited, status=0/SUCCESS)

Nov 19 08:35:37 vps.blabla.com systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 19 08:35:38 vps.blabla.com systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 19 08:35:39 vps.blabla.com firewalld[27356]: WARNING: ipset not usable, disabling ipset usage in firewall.
Nov 19 08:35:39 vps.blabla.com firewalld[27356]: ERROR: Failed to load nf_conntrack module: modprobe: ERROR: could not find module by name='nf_conntrack'
  modprobe: ERROR: could not insert 'nf_conntrack': Function not implemented
  modprobe: ERROR: Error running install command for nf_conntrack
  modprobe: ERROR: could not insert 'nf_conntrack': Operation not permitted
Nov 19 08:35:39 vps.blabla.com firewalld[27356]: ERROR: Raising SystemExit in run_server

然後我開始深入探勘,發現我的伺服器已經安裝了 iptables 並配置了一些開放埠等等。我假設錯誤來自我已經執行了一個防火牆這一事實。我的研究表明,人們說同一伺服器中的這兩個防火牆可能會發生衝突。

問題:

1)如果我刪除了firewalld(正如網上許多人所指出的那樣,它是更新的並且是未來的),它會導致我被“鎖定”嗎?

  1. 如果我想刪除 iptables 並使用 firewalld,是否有可能實現與 iptables 中類似的配置而不會被“鎖定”?

**注意:**我現在對伺服器的唯一訪問是通過 SSH,我是 root 使用者。

非常感謝

您沒有執行 2 個防火牆。firewalld 是一種管理工具,它依賴於實際的過濾系統來完成允許/阻止流量的繁重工作。這通常是 iptables,但許多發行版正在轉向 nftables 以取代 iptables。

CentOS 7 仍然使用 iptables 作為 firewalld 的後端。這些錯誤是防火牆試圖初始化 iptables 系統,但是它無法載入(某些)所需的核心模組。

也許您已經升級了核心而沒有重新啟動?或者這不是真正的 VPS,而是基於容器的 VPS(例如 OpenVZ),您無法訪問載入/解除安裝核心模組。

引用自:https://serverfault.com/questions/992429