单个服务器中的两个防火墙 - 如何在不“锁定”的情况下删除一个?

单个服务器中的两个防火墙 - 如何在不“锁定”的情况下删除一个?

我正在运行 CentOS 7 VPS,我购买时已预先配置了 iptables,但我最初没有检查这一点。我知道 CentOS 7“应该”有防火墙,所以我安装了防火墙,没有出现任何错误。

后来,当我尝试通过启动守护进程时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(网上很多人指出,firewalld 比较新,是未来的趋势),是否会导致我被“锁定”?
2) 如果我想删除 iptables 并使用firewalld,是否有可能实现与 iptables 类似的配置,而不会被“锁定”?

笔记:我现在对服务器的唯一访问是通过 SSH,并且我是 root 用户。

多谢

答案1

您没有运行 2 个防火墙。firewalld 是一种管理工具,它依靠实际的过滤系统来完成允许/阻止流量的繁重工作。这通常是 iptables,但许多发行版正在转向 nftables 来取代 iptables。

CentOS 7 仍使用 iptables 作为 Firewalld 的后端。这些错误是 Firewalld 尝试初始化 iptables 系统,但无法加载(部分)所需内核模块。

也许您没有重启就升级了内核?或者这不是真正的 VPS,而是基于容器的 VPS(例如 OpenVZ),您无权加载/卸载内核模块。

相关内容