«

iptables 四表五链

myluzh 发布于 阅读:657 Linux


0x01 iptables概念

iptables是Linux系统中强大的网络流量控制工具,它通过四种主要的表(raw、mangle、nat、filter)和五条链(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)来实现对数据包的过滤、修改和地址转换。

iptables、firewalld 和 ufw 都是用于管理 Linux 系统防火墙的工具,但它们的设计目标、使用方式和复杂性有所不同。它们都依赖于底层的 netfilter 框架来实现实际的网络包过滤和转发功能。真正实现防火墙功能的是内核中的 Netfilter 模块。Netfilter 在网络层的五个关键位置(即防火墙的"五链")注册了钩子函数,用于抓取数据包,并根据 iptables 配置的规则进行匹配和处理(如 ACCEPT、DROP 等)。简而言之,iptables 负责配置规则,Netfilter 负责执行这些规则。

点击查看原图

0x02 四表五链概念

1. 四种表

2. 五种链

表与链的对应关系

点击查看原图

0x03 数据包过滤的匹配流程

入站数据流向:从外界到达防火墙的数据包,要先被 prerouting 链处理 (是否修改数据包地址等)。之后,会进行路由选择,确认数据包的目标地址是否是防火墙本机。如果是,将传给 INPUT 链进行处理 (决定是否允许通过等),通过以后再交给应用服务程序(比如 nginx)进行响应。

转发数据流向:从外界到达防火墙的数据包,要先被 prerouting 链处理。之后,会进行路由选择,数据包的目标地址是其他非本机的地址时,将传给 forward 链进行处理 (是否转发或拦截),最后将交给postrouting 链行处理 (是否修改数据包的信息等)。

出站数据流向:防火墙本机向外部地址发送的数据包,首先被output 链处理,然后在 postrouting 链查进行处理(是否修改数据包的信息等)。

点击查看原图

0x05 规则链内部的匹配原则

按照第一条规则、第二条规则……的顺序进行匹配和处理。
按照 匹配到停止的方式,如找到一条匹配的规则,将不再执行本链中后续的其他规则。
如果对比整个链也找不到匹配的规则时,将按照该规则链的默认策略进行处理。

0x06 规则编写

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

表名 : 指定命令所操作的表,未指定表名时将默认使用filter表
管理选项 : 表示规则的操作方式,比如:插入、增加、删除、查看等
链名 : 指定命令所操作的链
匹配条件: 指定要处理的数据包的特征,不符合指定条件的数据包不在处理;
控制类型: 指数据包的处理方式,比如:允许、拒绝、丢弃等;

点击查看原图

管理选项:

匹配条件:

点击查看原图

其他匹配方式:

控制类型:

0x07 实际案例

# 查看规则列表(默认 filter 表)
iptables -L --line-numbers
# 清空所有规则(默认 filter 表)
iptables -F
# 内网(192.168.0.0/16) 开放 22/tcp
iptables -t filter -A INPUT -p tcp -s 192.168.0.0/16 --dport 22  -j ACCEPT
# 替换规则
iptables -t filter -R INPUT 1 -s 192.168.0.0/16 -j ACCEPT
# 设置默认策略 DROP (谨慎设置!!!)
iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 放行已建立的链接
# 设置 ipset DNAT
iptables -t nat -I PREROUTING -p tcp -m set --match-set vpn dst -j REDIRECT --to-port 1080
iptables -t nat -I PREROUTING -p udp -m set --match-set vpn dst -j REDIRECT --to-port 1080

## 其他
# 启动服务
systemctl start iptables
# 配置文件位置
/etc/sysconfig/iptables
# 批量导出 Linux 防火墙规则
iptables-save > 文件名称
# 批量导入 Linux 防火墙规则
iptables-restore < 文件名称

参考文章:
一篇文章搞懂 iptables https://article.juejin.cn/post/7097589910374350861
iptables的四表五链为你开启"八卦阵" https://zhuanlan.zhihu.com/p/355973143
Linux的三种防火墙对比(IPtables、Firewall、UFW)https://zhuanlan.zhihu.com/p/685391929

linux firewalld iptables 四表五链 netfilter ufw


正文到此结束
版权声明:若无特殊注明,本文皆为 Myluzh Blog 原创,转载请保留文章出处。
文章内容:https://itho.cn/linux/522.html
文章标题:《iptables 四表五链