admin 发表于 5 天前

防火墙必看排错命令全集

在防火墙运维中,快速定位和解决问题是关键。以下是一套完整的防火墙排错命令全集,涵盖状态检查、规则验证、日志分析、连接跟踪等核心场景,帮助管理员高效排查故障。



一、基础状态检查

[*]查看防火墙服务状态

   systemctl status firewalld      # CentOS/RHEL (firewalld)
   ufw status                         # Ubuntu (UFW)
   iptables -L -v -n                  # 传统iptables(需root权限)

[*]关键点:确认防火墙是否运行,规则是否加载。
[*]检查默认策略

   iptables -L | grep "policy"      # 查看默认链策略(ACCEPT/DROP)



二、规则验证与调试

[*]列出所有规则(含计数器)

   iptables -L -v -n --line-numbers    # 显示规则、数据包/字节计数、行号

[*]用途:通过计数器判断规则是否被命中,定位未生效的规则。
[*]模拟规则匹配(不实际修改)

   iptables -t filter -C INPUT -p tcp --dport 80 -j ACCEPT# 检查规则是否存在
   # 或使用nftables(现代系统):
   nft list ruleset

[*]临时添加测试规则

   iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT# 插入到链顶部测试



三、连接与端口排查

[*]查看当前连接跟踪

   conntrack -L                        # 显示所有活动连接(需conntrack模块)
   ss -tulnp | grep <端口>             # 检查端口监听状态

[*]检查NAT/MASQUERADE规则

   iptables -t nat -L -v -n            # 查看NAT表规则



四、日志分析与故障定位

[*]启用详细日志(临时)

   iptables -I INPUT -j LOG --log-prefix "FIREWALL DROP: "# 记录被丢弃的包

[*]日志路径:通常位于 /var/log/messages 或 journalctl -k。
[*]实时监控日志

   tail -f /var/log/kern.log | grep 'FIREWALL'# 动态跟踪日志

[*]使用dmesg检查内核日志

   dmesg | grep -i firewall            # 查看内核级防火墙相关错误



五、高级诊断工具

[*]抓包分析(结合tcpdump)

   tcpdump -i eth0 port 80 and host 192.168.1.100# 抓取特定流量

[*]场景:验证流量是否到达防火墙,或被规则拦截。
[*]检查模块加载状态

   lsmod | grep ip_tables             # 确认iptables模块已加载
   modprobe ip_tables               # 手动加载模块(如未加载)

[*]网络命名空间隔离问题

   ip netns exec <namespace> iptables -L# 检查容器/命名空间内的规则



六、常见问题速查表
| 问题现象               | 可能原因                     | 排查命令                        |
|---------------------------|--------------------------------|--------------------------------------|
| 端口无法访问            | 规则未放行、服务未监听、NAT错误 | ss -tulnp, iptables -L -n      |
| 连接被重置(RST)         | 状态规则不匹配、连接跟踪异常   | conntrack -L, iptables -t raw -L |
| 规则修改不生效            | 规则顺序错误、策略为DROP       | iptables -L -v --line-numbers      |
| 日志无记录但连接失败      | 日志规则未配置、日志模块未加载 | dmesg, 检查LOG规则是否存在      |



七、恢复与备份

[*]保存当前规则

   iptables-save > /etc/iptables/rules.v4# 传统方式
   nft list ruleset > /etc/nftables.conf   # nftables

[*]紧急恢复默认策略

   iptables -P INPUT ACCEPT# 临时开放(慎用!完成后需恢复)



八、自动化辅助工具

[*]firewall-cmd(firewalld):动态管理规则,支持区域和服务。
[*]nft(nftables):现代防火墙框架,替代iptables。
[*]ansible或puppet:通过配置管理工具批量部署规则。




通过以上命令组合,可以系统化地排查防火墙配置错误、流量拦截、连接异常等问题。建议结合具体场景(如Web服务、VPN、容器网络)针对性分析。
页: [1]
查看完整版本: 防火墙必看排错命令全集