前言

  在前面的文中讲过了iptables防火墙连接状态中的ESTABLISHED状态(http://waringid.blog.51cto.com/65148/512140)。除了这个状态之外,iptables还有以下状态,且听我慢慢道来。实验的网络结构以下图为准。

NEW

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

RELATED

  在Windows系统上有一个tracert的命令,它可以帮助我们检测两台主机之间总共经过了多少路由。它的工作原理其实很简单,主要利用了TTL值的存活时间。这个TTL值是指数据包在网络上能存活的时间,早期以秒为单位,现在改为“所能跨越的路由器的跳数”。

  以下图为例说明tracert工具是如何查询最左边Host1和最右边主机Host2隔了多少路由器。首先tracert工具会送出第一个数据包,这个数据包的目的地址是最右边的主机的IP,并且刻意将这个数据包的TTL值设定为1,接着,这个数据包被送到第一台的路由器H1,而第一台路由器H1在收到这个数据包后,会将数据包内的TTL值减1,因此,这个数据包的TTL值变为0,而这个值代表这个数据包的生命周期已尽,所以第一台路由器H1会丢弃这个数据包,并且返回一个ICMP(type 11 Time to live exceeded)数据包给Host1主机,以告诉Host1“你送出的数据包因生命周期已尽,故已遭丢弃”。这样,tracert就可以从这个数据包得知第一台路由器H1的IP地址。

  接着tracert会送出第二个数据包,不过,这个数据包的TTL值会刻意指定为2,接着,第二个数据包送到第一台路由器H1,第一台路由器收到这个数据包后,会将其TTL减1,这时数据包内的TTL值变为1,因为TTL值不为0,所以生命周期未尽,因此,第一台路由器H1会将这个数据包传给第二台路由器H2。不过,当第二台路由器H2把数据包内的TTL值减1后,这个数据包内的TTL值变为0,代表这个数据包的生命周期已尽,因此,第二台路由器H2会丢掉这个数据包,并且回送一个ICMP type 11(Time to live exceeded)传给发送主机Host1,以告诉Host1“你送出的数据包因生命周期已尽,故已遭丢弃”。这样,tracert就可以从这个数据包得知第二台路由器H2的IP地址。

  紧接着,tracert会再送出第三个数据包,不过,这个数据包的TTL值会刻意指定为3,接着,第三个数据包送到第一台路由器H1,第一台路由器h1收到这个数据包后,会将其TTL减1,这时数据包内的TTL值变为2,因为TTL值不为0,所以生命周期未尽,因此,第一台路由器H1会将这个数据包传给第二台路由器H2。不过,当第二台路由器h2把数据包内的TTL值减1后,这个数据包内的TTL值变为1,因为TTL值不为0,所以生命周期未尽,因此,第二台路由器h2会将这个数据包传给第三台路由器H3。当第三台路由器H3把数据包内的TTL值减1后,这个数据包内的TTL值变为0,代表这个数据包的生命周期已尽,因此,第三台路由器H3会丢掉这个数据包,并且回送一个ICMP type 11(Time to live exceeded)传给发送主机Host1,以告诉Host1“你送出的数据包因生命周期已尽,故已遭丢弃”。这样,tracert就可以从这个数据包得知第三台路由器H3的IP地址。最后tracert工具就可以收集到整条路径上的路由器的数量以及IP各为多少。

  看完tracert的工作原理后,我们可以看看什么数据包的状态会是RELATED。以上图为例,最后状态返回的“Destination reached!”这个数据包的状态就是RELATED状态,RELATED状态的数据包的意思是指“被动产生的响应数据包,而且这个数据包不属于现在任何连接的数据包”。例如,上图中Host1主机发出的是TCP协议的包(状态一),只因生命周期已尽被路由器H1丢弃,TCP协议的数据包是面向连接的,而路由器H1返回给Host1主机的是ICMP数据包,很明显这是另外一个数据连接,而这个数据包之所以会产生,完全是因为第一条连接的关系,而且这个数据包不属于现有任何一条连接的数据包。

  需要说明的是,上例以ICMP包为例说明,实际上RELATED状态的数据包与“协议”无关,“只要回应回来的是因为本机先送出的一个数据包导致另一个连接的产生,而这一条新连接上的所有数据包都是属于RELATED状态的数据包”。

INVALID

  INVALID状态包指不属于ESTABLISHED、NEW、RELATED这三种,通常将其视为恶意的数据包而丢弃。

  关于INVALID状态的测试可以借助于NMAP这个强大的扫描器来实现。对于NMAP的一切可能访问它的主页了解,该工具属于开源软件,支持Windows平台(http://nmap.org/)。

  可以通过设置以下命令来实现。

   

  有关TCP/IP协议的连接状态可参考RFC 793(http://www.ietf.org/rfc/rfc793.txt),需注意的是该协议的连接状态和iptables的四种连接状态切不可混为一谈,那不是同一概念。

  TCP SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP 连接。它也不像Fin/Null/Xmas,Maimon 和Idle 扫描依赖于特定平台,而可以应对任何兼容的TCP 协议栈。它还可以明确可靠地区分 open(开放的), closed(关闭的),和filtered(被过滤的) 状态它常常被称为半开放扫描,因为它不打开一个完全的TCP 连接。它发送一个SYN 报文,就像您真的要打开一个连接,然后等待响应。SYN/ACK 表示端口在监听(开放),而RST (复位)表示没有监听者。如果数次重发后仍没响应,该端口就被标记为被过滤。如果收到ICMP 不可到达错误(类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。

NEW状态测试

  测试环境如前面交代,更详细的说明可参考“iptables中state模块的连接状态”(http://waringid.blog.51cto.com/65148/512140)。

  其中test1主机的IP地址为11.0.0.200,开放ssh服务,防火墙设定如下所示开放所有服务:

  test2主机ip地址为173.16.0.200,iptables设定将output链设为阻止,同时在这种情况下ping网关和使用ssh连接test1主机。如下所示:

  可以看到上述的指令执行后无法ping通test1主机,而当开放NEW状态后再看看结果,如下所示:

  可以看到上述指令执行后可以正常获取系统相关的服务请求。证明iptables执行了正确的拦截操作。

RELATED测试

  结构如上述测试一样,其中test1主机开放所有服务,而test2主机(173.16.0.200)上做以下设定,当执行traceroute指令时无法返回正确的数据包:

  现在开放RELATED状态后看结果,如下图所示:

  可以看到设定后traceroute可以正确返回,但是ping和ssh操作是不成功的,这也就是RELATED的特色。

  关于iptables的四种状态其实有着各种各样的应用,这里只是简单地说明各状态所适用的环境,具体的应用有机会再放上来。

转载于:https://blog.51cto.com/llzdwyp/1883334

iptables防火墙的连接状态相关推荐

  1. firewalld/iptables防火墙维护和状态查询命令(防火墙重载,区域操作命令,开启服务或端口,堵塞端口,iptables规则添加和删除)

    文章目录 firewalld防火墙维护和状态查询命令 firewalld防火墙状态查询命令 firewalld防火墙重载配置命令 重新加载firewalld的配置 查询预定义信息命令 firewall ...

  2. iptables中state模块的连接状态

    前言 在之前的学习中对iptables的语法有了一定的了解,对于在不太复杂的网络结构中的一些简单的语句可以进行简单的分析了.当然,如果对语句和相关架构不清楚的可以参考:(Linux防火墙之Netfil ...

  3. 防火墙(12)——查看协议被连接的次数、通过连接状态来写规则

    我们想查看tcp协议在本机上建立了哪些,可以用如下命令: 来自于192.168.19.1的是我的windows主机: 还有两个128是来自我的另一台虚拟机 如下文件也会包含我们的连接信息: 一般情况下 ...

  4. zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)

    概述 之前有介绍通过saltstack统一管理线上防火墙规则,并且是在默认规则为DROP策略下,即意味着,如果没有明确允许开放或允许出去访问,则防火墙会拒绝请求;特别是在线上防火墙改造时,可能由于历史 ...

  5. redhat linux防火墙状态,RedHat Linux下iptables防火墙设置

    一般情况下iptables已经包含在Linux发行版中. 运行 # iptables --version 来查看系统是否安装iptables 启动iptables: # service iptable ...

  6. 安全的Web主机iptables防火墙脚本

    下面以自己的Web服务器举例说明之,系统的默认策略是INPUT为DROP,OUTPUT.FORWARD链为ACCEPT,DROP设置得比较宽松,因为我们知道出去的数据包比较安全:为了验证脚本的通用性, ...

  7. Iptables防火墙详细介绍与实战增强服务器安全

    Iptables防火墙详细介绍与实战增强服务器安全 一:Iptables的概述及应用 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfi ...

  8. Iptables防火墙配置详解

    iptables防火墙配置详解 iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. (1)filter表负责过滤数 ...

  9. iptables防火墙的基本配置

    在Internet中,通过架设各种服务器为用户提供各种网络服务,怎样保护这些服务器,过滤恶意的访问.入侵呢?这里主要介绍Linux系统中的防火墙--netfilter和iptables,包括防火墙的结 ...

最新文章

  1. Adobe Flex 3.0 和 AIR 1.0 正式发布
  2. bzoj千题计划303:bzoj4827: [Hnoi2017]礼物
  3. QueryBuildRange中的表达式
  4. StackExchange.Redis 使用-配置
  5. java 时分秒格式小时8_Java里得到00:00:00格式的时分秒的Timestamp
  6. linux gst qt,【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
  7. cogs 547:[HAOI2011] 防线修建
  8. 超级计算机1月冷空气,五一冷空气蓄力,局部大降温10度!超级计算机:假期北方还要起沙...
  9. matlab之结构体的创建与存储(CSV数据)
  10. PostgreSQL的checkpoint能否并行
  11. 教你如何写Bug:Google Guava源码分析之——Joiner
  12. [电子电路基础] 如何区分LED发光二极管引脚的正负极
  13. 计算机课题推荐人意见,课题推荐人意见
  14. 电脑安装有道后打开word文档很慢
  15. 字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复“字节跳动”下载PDF典型资料,欢迎转发、赞赏支持科普)
  16. 蓝桥杯(纯C)比赛--菜鸟级
  17. javaFX 界面例子
  18. 计计算机类学科代码是多少,高校专业代码表
  19. 《读书是一辈子的事》上篇 认识自己
  20. JAVA经验:很有启发(三)

热门文章

  1. python导入excel数据-python + Excel数据读取(更新)
  2. Linux修改主机名的两种方法
  3. mysql数据库约束无符号_mysql 数据类型 约束条件
  4. 途牛网站无线架构变迁实践
  5. java hashmapconcurrentHashmap源理
  6. Python3.7环境配置
  7. mybatis查询如何返回ListMap类型数据
  8. Android群英传笔记——第四章:ListView使用技巧
  9. springMvc 的参数验证 BindingResult result 的使用
  10. Servlet中使用RequestDispatcher调派请求--include