iptables的一些简单概念

iptables的四表五链以及处理的顺序。

iptables是Linux上常用的防火墙软件,也有一些新的防火墙是基于iptables,让它的操作更加简单。

iptables没那么复杂,只是它的命令长度有点长,其实逻辑很清晰,可以做的事情很多。

iptables一共有四表五链:就是有:
filter、nat、mangle、raw
这五张表。
但是,不是每个表都有5条规则链的:
filter       有                           INPUT  FORWARD OUTPUT
nat         有PREROUTING  INPUT                      OUTPUT POSTROUTING
mangle 有PREROUTING  INPUT  FORWARD OUTPUT POSTROUTING
raw        有PREROUTING                                       OUTPUT

4张表的优先级:raw最大,其次mangle,然后nat,最后是filter。

就拿有完整5条链的mangle表来说,如果收到的数据包目的地不是本机,那就不经过INPUT链,进入FORWARD链。

4张表的优先级为:

raw -> mangle -> nat -> filter

实际处理过程(数据包目的地为本机):

raw(PREROUTING) -> mangle(PREROUTING) -> nat(PREROUTING) -
                                                         |
----------本地监听程序 <- filter(INPUT) <- mangle(INPUT) <-|
|
|-> 程序发出数据包 -> raw(OUTPUT) -> mangle(OUTPUT) --------
                                                         |
| mangle(POSTROUTING) <- filter(OUTPUT) <- nat(OUTPUT) <-|
|
|-> nat(POSTROUTING)

实际处理过程(数据包目的地不是本机):

raw(PREROUTING) -> mangle(PREROUTING) -> nat(PREROUTING) -
                                                         |
---------------- <- filter(FORWARD) <- mangle(FORWARD) <-|
|
|-> mangle(POSTROUTING) -> nat(POSTROUTING)

对于防火墙的使用场景主要集中在filter的INPUT链,所以iptables的默认操作表就是filter表。mangle表可以用于策略路由,nat表可以用于NAT操作,raw表用来加速某些操作。

CentOS默认装了iptables,但是开机不会自己启动。某些系统模版安装了firewalld防火墙,两者可以共存,但是不能同时用。想实现一些高级操作iptables会简单一些。

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注