iptables命令详解

105 阅读2分钟

iptables是Linux平台下的包过滤防火墙,是netfilter/iptables IP信息包过滤系统的一部分,用来设置、维护和检查Linux内核的IP数据包过滤规则,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能,iptables是基于内核的防火墙,功能非常强大

四表五链

四表:

  • filter表——过滤数据包
  • Nat表——用于网络地址转换(IP、端口)
  • Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  • Raw表——决定数据包是否被状态跟踪机制处理

五链:

  • INPUT链——进来的数据包应用此规则链中的策略
  • OUTPUT链——外出的数据包应用此规则链中的策略
  • FORWARD链——转发数据包时应用此规则链中的策略
  • PREROUTING链——对数据包作路由选择前应用此链中的规则
  • POSTROUTING链——对数据包作路由选择后应用此链中的规则

使用 iptables 命令可以对具体的规则进行查看、添加、修改和删除

iptables选项
选 项功 能
-A添加防火墙规则
-D删除防火墙规则
-I插入防火墙规则
-F清空防火墙规则
-L列出添加防火墙规则
-R替换防火墙规则
-Z清空防火墙数据表统计信息
-P设置链默认规则
iptables参数
参数功能
-p匹配协议
-s匹配源地址
-d匹配目标地址
-i匹配入站网卡接口
-o匹配出站网卡接口
--sport匹配源端口
--dport匹配目标端口
--src-range匹配源地址范围
--dst-range匹配目标地址范围
--limit四配数据表速率
--mac-source匹配源MAC地址
--sports匹配源端口
--dports匹配目标端口
--stste匹配状态(INVALID、ESTABLISHED、NEW、RELATED)
--string匹配应用层字串

命令iptables -naL

-L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。

QQ截图20240521151547.png

-n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。

QQ截图20240521151800.png

-v 表示输出详细信息,包含通过该规则的数据包数量、总字节数以及相应的网络接口。

QQ截图20240521152252.png