在Linux中,防火墙管理主要依赖于iptables和更现代的nftables工具,但也有更友好的用户界面如firewalld(通常用于Red Hat系列的系统如Fedora, CentOS)。下面分别介绍一些常用查看方法:

对于使用iptables的发行版

1. 检查规则是否启用了IP转发

linux如何查看防火墙  第1张

有时候查看配置不仅要看具体的端口和服务规则,还需要确认是否已经启用了IP转发。这个操作对于某些特定网络配置是必要的。

命令: `cat /proc/sys/net/ipv4/ip_forward`

如果你想要修改这个设置,你需要用命令如:`echo "1" > /proc/sys/net/ipv4/ip_forward` 并添加一个类似配置至 `/etc/sysctl.conf` 文件里以确保重启后仍然有效。

2. 列出防火墙现有规则

命令: `iptables L` (默认会展示INPUT, FORWARD和OUTPUT规则)

如果你还想看每个链的具体详细规则,你可以加入选项 `v` 和 `n`

示例: `iptables L v n`

linux如何查看防火墙  第2张

若要具体针对一条规则进行更详细查询,可以用:`iptables S rulenumber`

若你还想导出现有防火墙所有规则,可用命令备份:`iptablessave > filename` 或直接查看 `/etc/iptables/rules.v4` 的输出(根据配置可能会有所不同)

3. 如果你安装了`fail2ban`, 它会自动地增加基于日志的iptables规则来保护服务, 查看相关的ban规则可以用:

linux如何查看防火墙  第3张

命令: `iptables L n | grep fail2ban`

或针对特定chain(如`f2bsshd`):

示例: `iptables L f2bsshd`

对于Firewalld的系统

对于那些使用`firewalld`工具管理动态变更的防火墙设置的发行版(如Fedora, RHEL):

要显示区域及其所包含的服务,可以使用命令:

linux如何查看防火墙  第4张

`sudo firewallcmd getzones` 列出现在所有可用区域。

`firewallcmd listall` 仅限当前激活的zone。

对某个zone操作,指定 `zone=你的ZONE名字`

若要检查某特定service或port,命令:

linux如何查看防火墙  第5张

`firewallcmd queryservice NAMEOF_SERVICE_OR_PROTOCOL/TCP` (替换相应的协议和服务名如ssh或22/TCP)

还有一种方式直接查全部:

linux如何查看防火墙  第6张

`sudo firewallcmd listall`

对于使用Nftables的新系统

随着Nftables逐步替代较旧的iptables成为许多系统的默认选择,也可以查看:

linux如何查看防火墙  第7张

简单的nft命令:

sh

sudo nft list ruleset

linux如何查看防火墙  第8张

这些方法将帮助你理解防火墙的活动设置,无论是静态还是动态的配置。请根据你所使用的Linux发行版和个人需求来适当选择查看命令。如果你不是系统维护人员或安全审计人员,请先了解清楚你所进行操作的影响。