HCRM博客

CentOS系统下iptables配置查看指南

CentOS 系统查看 iptables 配置完全指南

在 CentOS 服务器的日常管理和安全加固工作中,iptables 防火墙扮演着至关重要的角色,清晰地查看当前生效的防火墙规则是每位系统管理员必备的基础技能,本文将详细解析在 CentOS 系统中查看 iptables 配置的多种方法及其应用场景。

基础查看:列出所有规则链

CentOS系统下iptables配置查看指南-图1

最常用的命令是 iptables -L,此命令会列出 filter 表中(默认表)所有链(INPUT, FORWARD, OUTPUT)的规则:

sudo iptables -L

输出示例:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

关键参数解析:

  • -L: 列出规则的核心选项。
  • -v: 显示详细信息(如数据包计数、字节计数):sudo iptables -L -v
  • -n: 禁用 IP 和端口的反向解析(显示原始数字,速度更快):sudo iptables -L -n
  • --line-numbers: 显示规则的行号(对后续修改或删除规则至关重要):sudo iptables -L --line-numbers

查看原始规则格式

iptables -S 命令以原始、简洁的格式输出规则,这正是实际写入规则文件或直接用于恢复的格式,清晰反映规则间的顺序:

sudo iptables -S

输出示例:

CentOS系统下iptables配置查看指南-图2
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

查看指定表或链的规则

iptables 默认操作 filter 表,如需查看其他表(如 nat, mangle, raw),使用 -t 参数:

# 查看 NAT 表规则
sudo iptables -t nat -L -n --line-numbers
# 查看指定链 (如 INPUT 链) 规则
sudo iptables -L INPUT -n -v

查看持久化规则文件

CentOS 6 及更早版本通常使用 /etc/sysconfig/iptables 文件保存规则,重启后规则从此加载:

sudo cat /etc/sysconfig/iptables

在 CentOS 7 及更高版本中,若仍使用 iptables 而非 firewalld,服务状态命令可显示规则:

sudo systemctl status iptables # 查看服务状态及加载的规则概要

查看规则时的实用技巧

CentOS系统下iptables配置查看指南-图3
  1. 组合参数提高效率:

    sudo iptables -L INPUT -v -n --line-numbers

    此命令显示 INPUT 链的规则,包含详细信息、禁用解析并显示行号。

  2. 理解输出关键字段:

    • target: 规则匹配后执行的动作(ACCEPT, DROP, REJECT, 自定义链名等)。
    • prot: 协议(tcp, udp, icmp, all)。
    • opt: 特殊选项(常为空)。
    • source & destination: 源/目标 IP 地址或网段。
    • ports: 源端口(spt)或目标端口(dpt),通常在 prottcpudp 时显示。
  3. 规则匹配顺序至关重要:iptables 从上到下逐条匹配规则,第一条匹配成功的规则将决定数据包的命运,后续规则不再检查,使用 --line-numbers 能清晰观察此流程。

  4. 区分临时与持久化规则: 使用 iptables 命令直接添加的规则是临时的,重启即失效。/etc/sysconfig/iptables 文件(或 iptables-save 的输出)保存的是持久化规则,需通过 service iptables save (CentOS 6) 或 iptables-save > /etc/sysconfig/iptables (CentOS 7+) 命令保存当前规则。

重要注意事项

  • 权限要求: 查看规则通常需要 root 权限,务必使用 sudo
  • CentOS 7+ 与 firewalld: CentOS 7 及更新版本默认使用 firewalld 动态防火墙管理器,若系统启用了 firewalld,则 iptables 规则由其动态管理,直接使用 iptables 命令查看规则可能只反映 firewalld 生成的底层规则,并非管理员手动配置的完整视图,如需传统 iptables 服务,需禁用 firewalld 并安装启用 iptables-services
  • 规则复杂性: 大型环境中规则集可能非常复杂,包含大量自定义链和模块匹配,耐心分析每条规则的作用域和条件是理解整体策略的关键。

命令对比表

命令主要用途优势常用场景
sudo iptables -L列出 filter 表所有链规则默认易读快速浏览当前规则
sudo iptables -L -v -n --line-numbers详细列出规则(含计数、数字IP、行号)信息全面,便于调试和修改精确分析规则匹配情况
sudo iptables -S以原始命令格式输出规则清晰反映规则结构,适合备份和恢复规则迁移、脚本编写
sudo iptables -t <表名> -L查看指定表(如 nat, mangle)的规则操作非默认表处理端口转发、特殊包标记等
sudo cat /etc/sysconfig/iptables查看持久化规则文件内容(CentOS 6及传统配置方式)显示系统重启后加载的规则确认永久规则配置

熟练掌握查看 iptables 配置的方法,是保障服务器网络安全、诊断网络问题、进行有效访问控制的基础,建议管理员定期检查规则,确保其符合预期的安全策略并有效运行,理解规则逻辑比单纯记住命令更重要,清晰的规则结构能极大提升运维效率与安全性。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/35616.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~