IPtables一共有4个表,5个链
(1)INPUT 链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤)
(2)OUTPUT 链:过滤所有本机产生的数据包(对源地址得数据包的过滤)
(3) FORWARD 链:过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包。
NAT表:网络地址转换(Network Address Translation)
如果第一个数据包允许经行NAT或Masquerade,那么其它数据包都会被做相同的动作,也就是其他数据包不会被一个一个地NAT(属于一个流的包只会经过这个表一次)任何时候都不要在这个表任何一条链经行过滤。
NAT表的作用
(1)做DNAT:改变数据包的目的地址使包能重路由到某台机器(使公网能够访问局域网的服务器)
(2)做SNAT: 改变数据包的源地址(使局域网能访问公网)
(3)MASQUERADE:和SNAT一样使局域网能访问公网,无固定IP使用PPP.PPPoE等拨号上网接入Internet
Nat表包含3条链:
(1)PREROUTING链 :数据包到达防火墙时改变包的目的地址。
(2)OUTPUT链:改变本地产生数据包的目标地址。
(3) POSTROUTING:在数据包离开防火墙时改变数据包的源地址。
Mangle表:修改数据包,改变包头中内容(TTL, TOS, MARK )
(1)TOS :设置改变数据包的服务类型,不要使用TOS设置发往Internet的包除非打算依赖TOS来路由,不能在表中配置任何过滤。SNAT、DNAT
(2)TTL:改变数据包的生存时间,可以让数据包只有一个特殊的TTL,欺骗ISP,有些ISP并不希望多台计算机共享一个连接访问Internet,ISP通过检查一台计算机所发出的数据包是否含有不同的TTL来判断。
(3)Mask:给数据包设置特殊的标记,通过标记配置带宽限制和基于请求分类。
Mangle表的5条链:
(1)PREROUTING 链:数据包进入防火墙后,路由判断之前改变数据包。
(2)POSTROUTING链:数据包确定了目标地址后,即路由判断前改变数据包。
(3)OUTPUT链:在数据包被确定目的地址前改变数据包
(4)INPUT链:在数据包进入本机后,应用程序接受之前改变数据包。
(5) FORWARD链:第一次路由判断之后,最后一次路由判断前改变数据包。