分享

iptables下的四种状态

 悟空Dad 2018-11-17

    在iptables下这个模块叫state,在NetFilter结构里,该模块保存在xt_state.ko这个文件中。这里我们称呼其为state模块。在state中封包的4种链接状态分别为:

    ① ESTABLISHED  已经联机成功的联机状态
    ② NEW                想要新建立联机的封包状态
    ③ RELATED          封包是与我们主机发送出去的封包有关
    ④ INVALID          无效的封包,例如数据破损的封包状态

NEW 

    以下图为例为说明什么是NEW的状态,首先需要知道的是NEW与协议无关,其所指的是每一条连接中的第一个数据包,如下图所示,客户端主机使用TCP 50000连接服务端的TCP 22,这个连接中的第一个数据包的状态就是NEW;其它的例如客户端使用TCP 50001连接至服务端的TCP 22;客户端的UDP 50000连接至服务端的UDP 53;还有客户端对服务器端发出的ICMP数据包,以上这些例子中的第一个数据包的状态都是NEW。

iptables1


ESTABLISHED
    当你在使用TCP、UDP、ICMP等协议时:假设你的主机发出的第一个包成功穿越防火墙,那么接下来你的主机 发出和接收 到的包的状态都是“ESTABLISHED”。

RELATED 
   
这个最常用!表示这个封包是与我们主机发送出去的封包有关, 可能是响应封包或者是联机成功之后的传送封包!这个状态很常被设定,因为设定了他之后,只要未来由本机发送出去的封包,即使我们没有设定封包的 INPUT 规则,该有关的封包还是可以进入我们主机, 可以简化相当多的设定规则。当你执行Linux下执行traceroute(Windows下对应的命令为tracert)命令时,这个traceroute会发出一个封包,该封包的TTL(生存时间,Time To Live)位1,当这个包遇到路由器的时候它的TTL会减少1,这时TTL = 0,然后这个包会被丢弃,丢弃这个包的路由器会返回一个ICMP Type 11的封包给你,并告诉你那个发出的数据包气数已尽。而这个ICMP Type 11的链接状态就是“RELATED”。RELATED状态的数据包与“协议”无关,“只要回应回来的是因为本机先送出的一个数据包导致另一个连接的产生,而这一条新连接上的所有数据包都是属于RELATED状态的数据包”。

INVALID
    状态为INVALID的包就是状态不明的包,也就是不属于前面3中状态的包,这类包一般会被视为恶意包而被丢弃。

​    这些状态可以一起使用,以便匹配数据包。这可以使我们的防火墙非常强壮和有效。以前,我们经常打开1024以上的所有端口来放行应答的数据。现在,有了状态机制,就不需再这样了。因为我们可以只开放那些有应答数据的端口,其他的都可以关闭。这样就安全多了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多