【Iptables】08 Iptables扩展匹配条件之state扩展模块

特别说明:此系列博文根据 朱双印博客-iptables系列博文,个人实践后总结,此为个人笔记精简版,更通俗易懂请参考 朱双印博客-iptables系列博文 原文内容,诸君必能有所收获

08 Iptables扩展匹配条件之state扩展模块

一般情况下,我们访问服务器服务,向服务端的80发起请求,服务端会通过80端口响应我们的请求,于是,我们作为客户端,也会开发相应的80端口以便接收该服务返回的报文,但此时就可能存在安全问题,如果进入我们主机80端口的报文到底是服务端返回的,还是别人刻意发送的呢?

很可怕,我们可以试着只通过特定主机IP发送的报文,其余IP地址发送的报文都拒绝,但是这样一来,随着管理的主机数量的增加,我们难免会出现纰漏;我们可能会想,拒绝别的主机tcp访问连接不就可以了吗?但是对方也有可能是通过其他协议如icmp和udp连接,迷茫了,幸好有state扩展模块,不然这个问题还真不好解决

我们可以通过state扩展模块来实现区分进入本机某个端口的信息是服务端发送的还是别人发送的,并且通过匹配条件,我们可以进行动作的定义;state模块译为状态,但是我们需要理解它,可以使用另一个词去解释它,就是state是主机之间的"连接追踪"机制

先理解下state的"连接"吧,state的"连接"可能和常见的tcp连接不一样,在TCP/IP协议簇中,UDP和ICMP协议是没有所谓的连接的,但是对于state来说,所有的报文都是有连接状态的,只要两台主机在互相通信,就算是建立了连接,具体可以看如下图形
在这里插入图片描述
那么state扩展模块怎么实现"连接追踪"机制的呢?

对于state扩展模块的连接,其中的报文可以分为5中状态,分别可以是NEW、ESTABLISHED、RELATED、INVALID、UNTRACKED

这些报文状态表示的是什么?

  • NEW:连接中的第一个包,其state状态就是NEW,我们可以理解为新连接的第一个包状态为NEW

  • ESTABLISHED:我们可以把NEW状态包后面的包的状态理解为ESTABLISHED,表示连接已经建立,如图
    在这里插入图片描述

  • RELATED:从字面意思理解为关系,但是并不容易理解,我们可以通过例子来说明作用

    如FTP文件服务,FTP服务端会建立两个进程,一个命令进程,一个数据进程;命令进程负责服务端与客户端之间的命令传输,数据进程负责服务端与客户端之间的数据传输,但是具体传输什么内容,需要命令去控制,这样一来,服务端和客户端命令进程的连接与数据进程的连接就存在某种关系,那么进行数据传输的进程之间 的报文可能就是RELATED状态,因为这些报文与命令进程连接的报文有关系

    (注:如果想要对ftp进行连接追踪,需要单独加载对应的内核模块nf_conntrack_ftp,如果想要自动加载,可以配置/etc/sysconfig/iptables-config文件)

  • INVALID:如果一个包没有办法被识别,或者这个包没有任何状态,那么这个包的状态就是INVALID,我们就可以主动屏蔽状态为INVALID的报文

  • UNTRACKED:表示报文未被追踪,当报文的状态为Untracked时通常表示无法找到相关的连接

了解了这些状态后,我们再来看之前的问题,我们怎么判断发送到某个端口的报文时服务端发送的还是别人发送的呢?这下我们可以使用state扩展模块的 --state 选项进行匹配,只有是ESTABLISHED的报文我们放行即可,因为此状态表示该报文之前已经建立了连接,已经通信过了;如果不放心,可以将RELATED和ESTABLISHED状态的报文都放行,这样之前的问题就解决了

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
【Iptables】iptables目录
【Iptables】09 Iptables的黑白名单机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值