Liunx iptables表、链、规则的关系理解

Liunx操作系统 10/28 阅读 911 views次 人气 0
摘要:

当一个数据包传入时,所经过的路径,这里有表、链、规则,他们之间的关系与理解。

Liunx iptables 表、链、规则的关系理解.png

Filter表

三种链的关系:进入(INPUT) -> 路过(FORWARD) -> 出去(OUTPUT)

INPUT链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤)。

FORWARD链:过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包)。

OUTPUT链:过滤所有本机产生的数据包(对源地址的数据包过滤)。

三个动作:

ACCEPT:接受所有数据包。

REJECT:拒绝所有数据包。

DROP:丢弃所有数据包。


NAT表

网络地址转换(Network Address Translation)

如果第一个数据包允许经行NAT,其它的数据包都会被做相同的动作,其它的数据包不会被一个一个地NAT。

三条链:

PREROUTING链:数据包到达防火墙时改变包的目的地址。

OUTPUT链:改变本地产生数据包的目标地址。

POSTROUTING:在数据包离开防火墙时改变数据包的源地址。

三个动作:

DNAT:改变数据包的目的地址使包能重路由到某台机器。

SNAT:改变数据包的源地址(使局域网能访问公网)。

NASQUERADE:和SNAT一样使局域网能访问公网,无固定IP使用PPP.PPPoE等拨号上网接入Internet。


DROP动作的注意点,如果数据包符合条件,就会把它丢掉,数据包的生命到此结束,不会再向前走一步。

-A INPUT -p tcp -s 192.168.1.9  --dport  123  -j ACCEPT
-A INPUT -p tcp --dport 123 -j DROP

从IP地址192.168.1.9传入的包,进行接受,其他IP地址的数据包拒绝。

-A INPUT -p tcp --dport 123 -j DROP
-A INPUT -p tcp -s 192.168.1.9  --dport  123  -j ACCEPT

所有的IP传入的数据包都拒绝,拒绝后,下一条链不会生效,即从IP地址192.168.1.9传入的包也不接受。


评论

该文章不支持评论!

分享到: