Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. 特点

iptables 是 Linux 防火墙工作在用户空间的管理工具,是 netfilter/iptablesIP 信息包过滤系统是一部分,用来设置、维护和检查 Linux 内核的 IP 数据包过滤规则。

iptables 是基于内核的防火墙,功能非常强大;iptables 内置了filter,nat和mangle三张表。所有规则配置后,立即生效,不需要重启服务。

2. 四表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
filter	包过滤		    
INPUT、OUTPUT、FORWARD
对数据包进行过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT、LOG)

nat 网络地址转换
PREROUTING、OUTPUT、POSTROUTING
修改数据包的IP地址、端口号等信息(网络地址转换,如SNAT、DNAT、MASQUERADE、REDIRECT)

mangle 包重构
PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)指以及为数据包设置Mark标记

raw 数据跟踪处理
PREROUTING、OUTPUT
决定数据包是否被状态跟踪机制处理。

优先级:raw > mangle > nat > filter

3. 五链

1
2
3
4
5
input			匹配目标IP是本机的数据包
output 出口数据包 , 一般不在此链上做配置
forward 匹配流经本机的数据包
prerouting 修改目的地址,用来做 DNAT 。如:把内网中的 80 端口映射到互联网端口
postrouting 修改源地址,用来做 SNAT。如:局域网共享一个公网 IP 接入 Internet

4. 数据包的四种状态

1
2
3
4
NEW				该包想要开始一个连接(重新连接或将连接重定向)
RELATED 该包是属于某个已经建立的连接所建立的新连接
ESTABLISHED 一个数据连接从 NEW 变为 ESTABLISHED,表示连接建立成功,会继续匹配这个连接的后续数据包
INVALID 数据包不能被识别属于哪个连接或没有任何状态比如内存溢出,收到不知属于哪个连接的ICMP错误信息,一般应该DROP这个状态的任何数据

评论