如何验证 iptables 是否正在运行或防火墙是否已激活

如何验证 iptables 是否正在运行或防火墙是否已激活

当我在 Linux Redhat 6.8 版机器上运行服务 iptables 状态时

我得到了规则表(但不知道 iptables 是否正在运行)

以下是否表明 iptables 正在运行?

 # service iptables status
 Table: filter
 Chain INPUT (policy ACCEPT)
 num  target     prot opt source               destination
 1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state   RELATED,ESTABLISHED
 2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
 3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
 4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state  NEW tcp dpt:22
 5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject- with icmp-host-prohibited

 Chain FORWARD (policy ACCEPT)
 num  target     prot opt source               destination
 1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject- with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

启动时启用 Iptables

# chkconfig --list iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

答案1

不存在“iptables 正在运行”这样的事情——没有专门的防火墙进程需要监控。

如果已加载内核模块并定义规则(这两者都可以通过显示有效规则表来证明),则过滤处于活动状态。它是在内核中根据事件(数据包 rcv/snd)完成的,而不是在单独的进程中完成的。

所以:是的,如果显示的规则是您想要的,那么您的防火墙就启动了。

答案2

在 Ubuntu 20.04 上,我曾经service iptables status显示以下内容:

~$ service iptables status
● iptables.service - netfilter persistent configuration
     Loaded: loaded (/etc/alternatives/iptables.service; enabled; vendor preset: enabled)
     Active: inactive (dead)           
       Docs: man:netfilter-persistent(8)

~$ service iptables restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'iptables.service'.
Authenticating as: <user id>
Password:
==== AUTHENTICATION COMPLETE ===

~$ service iptables status
● iptables.service - netfilter persistent configuration
     Loaded: loaded (/etc/alternatives/iptables.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2021-01-31 08:25:23 EST; 11s ago
       Docs: man:netfilter-persistent(8)
    Process: 140486 ExecStart=/usr/sbin/netfilter-persistent start (code=exited, status=0/SUCCESS)
   Main PID: 140486 (code=exited, status=0/SUCCESS)

答案3

这样我们就可以知道它是否没有运行

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

如果运行,它会打印规则表,如下所示

相关内容