Please enable Javascript to view the contents

Linux网络-防火墙设置-iptables

 ·  ☕ 2 分钟

iptables

规则存在顺序。 依次检查,匹配即停(LOG策略除外),没有匹配走默认。

4表5链

filter: 本机进出
- INPUT: 入本机的数据包
- OUTPUT: 出本机的数据包
- FORWARD: 转发数据包
nat: 源IP:Port\目的IP:Port之间转换
- PREROUTING: 路由判断执行的规则(DNAT-目的NAT/REDIRECT-重定向)
- POSTROUTING: 路由判断执行的规则(SNAT-源NAT/MASQUERADE-广播)
- OUTPUT: 出本机的数据包
mangle: 与特殊的封包的路由标识有关
- PREROUTING、PREROUTING、OUTPUT、INPUT、FORWARD
raw: 确定是否对数据包进行状态追踪
- PREROUTING
- OUTPUT

由于 mangle 很少被使用,下图为去除mangle后的链表相关性
规则表之间顺序: raw > mangle > nat > filter
入站规则链顺序:PREROUTING > INPUT
出站规则链顺序:OUTPUT > POSTROUTING
转发规则链顺序:PREROUTING > FORWARD > POSTROUTING

iptables-simple.png

路径A: 数据包进入主机,路由判断是进入主机的数据包后,主要通过fileter[INPUT]链管控。
路径B: 数据包经主机转发给其他主机,主要经过的链是 filter[FORWARD]nat[POSTROUTING,PREROUTING]
路径C: 响应请求或者由主机主动发出的包。经路由判断后,通过filter[OUTPUT]nat[OUTPUT,POSTROUTING]发出。

iptables-all.png

命令举例

  • 查看规则
1
iptables -t nat -L -n

-t nat指定表,如果不传则为默认的filter表;-L列出目前的table规则;-n不进行IP与hostname的反查,速度快;-v显示详细信息

Ubuntu22.04,CentOS8之后,使用nf_tables作为新的内核网络过框架.具体命令参考

1
2
# 列出所有表
nft list tables

iptables-legacy: ==iptables,背后是iptables框架
nft: 背后是nf_tables框架
iptables-nft: 使用方法与iptables兼容,背后框架是nf_tables
iptables: 软连接,可在iptables-legacyiptables-nft之间切换

nftables

nftables是一个新式的数据包过滤框架,旨在替代现用的iptables、ip6tables、arptables和ebtables的新的包过滤框架。
nftables旨在解决现有{ip/ip6}tables工具存在的诸多限制。相对于旧的iptables,nftables最引人注目的功能包括:改进性能、支持查询表、事务型规则更新、所有规则自动应用等等

分享

Hex
作者
Hex
CloudNative Developer

目录