iptables 无法在 CentOS 6 上启动

iptables 无法在 CentOS 6 上启动

我正在运行 CentOS 版本 6.5(最终版),但不知道为什么我的 iptables 没有启动。我可能执行了其他命令来永久阻止 iptables 启动;我不记得了。但是,现在我需要运行 iptables,但无法启动它。

有什么建议么?

[root@server1 log]# chkconfig iptables --list
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@server1 log]# service iptables status
iptables: Firewall is not running.


[root@server1 log]# service iptables start


[root@server1 log]# service iptables status
iptables: Firewall is not running.

更新:

我对此进行了进一步的查看并进行了 strace 检查/etc/init.d/iptables start,发现没有这样的文件或目录的消息。

stat("/var/lock/subsys/iptables", 0x7ffff80481d0) = -1 ENOENT (No such file or directory)

因此我创建了这个文件,更改了权限,然后启动了 iptables。iptables 仍然没有启动,但是我现在收到一条关于“防火墙模块未加载”的消息。

该服务器已进行多项安全强化更改。这可能是问题所在吗?

touch /var/lock/subsys/iptables
chmod 640 /var/lock/subsys/iptables

service iptables start
service iptables status
iptables: Firewall modules are not loaded.

更新2:

创建subsys/iptables文件后我重启了,文件不见了。我的其他所有服务都运行良好,启动/停止都没有问题。


更新 3:

为了确保 iptables 能够神奇地自行修复,我重启了服务器。但是重启后,服务不再运行。

-- 在我重启之前 --

[root@server1 ~]# who -r 运行级别 5 2014-09-10 13:47

[root@server1 ~]# chkconfig --list iptables iptables 0:关闭 1:关闭 2:开启 3:开启 4:开启 5:开启 6:关闭

[root@server1 ~]# service iptables status 表:过滤链输入(策略接受)num target prot opt 源目标

链转发(策略接受)num 目标 prot opt 源目标

链输出(策略接受)num 目标 prot opt 源目标

[root@server1 ~]# 立即关机 -r

-- 重启后 --

[root@server1 ~]# service iptables status iptables: 防火墙未运行。

[root@server1 ~]# chkconfig --list iptables iptables 0:关闭 1:关闭 2:开启 3:开启 4:开启 5:开启 6:关闭

答案1

我遇到了同样的问题,并找到了一个解决它的简单方法:

  1. 确保您的系统有 iptables 的配置文件:

    ls -l /etc/sysconfig/iptables
    
  2. 就我而言,我在此文件夹中发现了两个文件:

    iptables-config  iptables.old
    
  3. 您应该将 iptables.old 重命名为 iptables(或者创建一个新的),因为只会iptables被接受。

  4. 尝试再次启动 iptables。

    service iptables start
    iptables: Applying firewall rules:                         [  OK  ]
    

答案2

我今天也遇到了同样的问题。结果发现问题出在使用域名而不是 IP 地址的规则。我怀疑服务器在网络连接可用之前尝试启动 iptables。因此无法进行域名解析,因此 iptables 无法启动,尽管系统启动并运行时 iptables 服务没有问题,因为网络已启动并且 DNS 查找当时成功。

寓意是:

1) 永远不要在 iptable 规则中使用域名代替 IP 地址。我知道这个规则,但我粗心地忽略了它。:-/

2)配置并正确测试如果主配置表无法应用,则将应用备用表 /etc/sysconfig/iptables.fallback 和 /etc/sysconfig/ip6tables.fallback(请参阅https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Firewalls-Basic_Firewall_Configuration.html)这样可以避免你的系统被向所有人开放。

答案3

在我们的案例中

服务网络重启

yum 重新安装 -y iptables.x86_64

服务 iptables 重启-现在可以正常工作。

相关内容