iptables下state的4种形式
ESTABLISHED,NEW,RELATED,INVALID.
注意:TCP/IP 标准描述下,UDP及ICPM数据包是没有连接状态的,但在state模块的描述下,任何数据包都有连接状态。
ESTABLISHED:与TCP数据包的关系,首先在防火墙上执行ssh client,并且对网络上的ssh服务器提出服务请求,而这时送出的第一个数据包就是服务请求的数据包,如果实个数据包能成功的穿防火墙,那么接下来,ssh server与ssh client之间的所有ssh数据包的状态都会是ESTABLISHED。
与UDP数据包的关系:假设我们在防火墙主机上用firefox诮用程序浏览网页(通过域名方式),而浏览网页的动作需要DNS服务器的帮助才能完成,因些firefox会送出一个udp数据包给DNS SERVER,以请求名称解析服务,如果这个数据包能够成功的穿越防火墙,那么接下来的dns server与firefox之间的所有数据包的状态都是ESTABLISHED.
NEW:首先我们知道,NEW与协议无关,其所指的是每一条连接的第一个数据包,假如我们使用ssh client连接ssh server时,这个连接中的第一个数据包的状态就是NEW.
RELATED:RELATED状态的数据包是指被动产生的数据包。而且这个连接是不属于现在任何连接的。RELATED状态的数据包与协议无关,只要回应回来的数据包是因为本机送出一个数据包导致别一个连接的产生,而这一条新连接上的所有数据包都是属于RELATED状态的数据包。
INVALID
INVALID:状态是指状态不明的数据包,也就是不属于以上三种状态的封包。凡是属于INVALID状态的数据包都视为来意的数据包,因此所有INVALID状戊的数据包都应丢弃掉,匹配INVALID状态的数据包的方法如下:
iptables -A INPUT -p all -m state INVALID -j DROP
应将INVALID状态的数据包放在第一条。