为了防止恶意攻击主动连接到你的主机,我们需要通过iptables的扩展模块判断报文是为了回应我们之前发出的报文还是主动向我们发送的报文,state模块可以让iptables实现 连接追踪机制 ,报文状态可以分成 NEW ESTAVLISHED RELATED INVALID UNTRACKED。具体的连接跟踪的原理详见(https://blog.csdn.net/weixin_40042248/article/details/112568071)。

本次实验是为了验证iptables的state模块如何进行连接跟踪,从而实现防火墙的功能。iptables的命令详解见(https://huhaizhou.blog.csdn.net/article/details/86619021)

本次实验的拓扑结构如下图所示。

为了使实验更加简便,我们使用了namespace进行验证,如上图所示,首先我们需要将两个空间连通,也就是可以相互ping通。具体步骤见(https://blog.csdn.net/weixin_40042248/article/details/112428503)

接下来,在ns1中执行以下命令

iptables -F             清除规则

iptables -P INPUT DROP            添加filter的默认规则,将进入的流量DROP掉

iptables -P OUTPUT ACCEPT    添加filter的默认规则,将允许向外发送数据流

iptables -P FORWARD ACCEPT    添加filter的默认规则,将允许转发功能

iptables -L   查看规则

执行完这些命令后,此时的ns1不能被外界主机访问,但是可以向外界发送数据流,也能够转发数据流。

然后,针对ns2执行以下命令

iptables -F

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables –t filter –A INPUT –p icmp –j ACCEPT       添加规则,允许icmp报文进入ns2中

iptables -L

执行完这些命令之后,此时的ns1只允许icmp报文进入。

所以,设置完这些规则之后,能时ns1 ping ns2是否可以ping通呢?如下图所示。可以看出ns1并不能ping通ns2,这是为什么呢?按说ns2允许icmp报文进入呀。

为了了解清楚为什么不可以ping通,在ns1中执行ping命令,然后在宿主机终端上输入命令tcpdump -i veth2-ns1 -n,抓取数据包,如下图所示,可以看出icmp请求和回送报文都能正确发送,那么说明回送报文正确发送了,但是并未进入ns1中,为什么没有进入ns1呢?主要是因为我们通过命令iptables -P INPUT DROP 设置了规则不允许外界流量进入。

那么该如何设置才能ping通呢,由于安全原因,不能直接修改命令iptables -P INPUT DROP,因为这样防火墙就失去了意义,必须让内核模块知道icmp回送报文是本机请求的回送报文,面对自己请求的报文就让防火墙对报文放行,这样既实现了防火墙的功能又不会阻止自己的请求报文。所以为了识别这个报文的身份,就用到了连接跟踪的知识。

接下来,在ns1中使用命令iptables -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT,添加规则,对ESTABLISHED状态的报文放行如下图所示。

此时,在ns1中ping ns2就可以顺利ping通了,如下图所示。

以上就是state模块的简单使用以及连接跟踪的简单应用,希望可以给您带来帮助,如有不当之处,请留言指正,谢谢!

https://blog.51cto.com/6226001001/1712514

iptables之state模块使用相关推荐

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

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

  2. Iptables之recent模块小结

    Iptables的recent模块用于限制一段时间内的连接数, 是谨防大量请求攻击的必杀绝技! 善加利用该模块可充分保证服务器安全. recent常用参数 --name      设定列表名称,即设置 ...

  3. saltstack state模块-状态管理

    一.说明 本文基于前两篇的salstack的安装部署和使用的基础上,又一个常用的功能, State模块是saltstack核心的功能,状态管理包括:Package,File,Network,      ...

  4. puppet安装与使用--模块结构(iptables与rsync模块)

    puppet安装与使用--模块结构(iptables与rsync模块) 模块结构     一个模块就是一个/etc/puppet/modules目录下面的一个目录和它的子目录,在puppet的主文件s ...

  5. Iptables防火墙iprange模块扩展匹配规则

    Iptables防火墙iprange模块扩展匹配规则 iprange模块可以同时设置多个IP或者设置IP的某一段连续的范围,通过iprange模块可以对多个来源地址同时设置策略. iprange模块的 ...

  6. iptables防火墙的连接状态

    前言 在前面的文中讲过了iptables防火墙连接状态中的ESTABLISHED状态(http://waringid.blog.51cto.com/65148/512140).除了这个状态之外,ipt ...

  7. iptables规则基本用法

    iptables规则基本语法 iptables [-t table] option argu table: 可选4表其中之一,raw,mangle,nat,filter,不指定默认为filter表 o ...

  8. RHEL7 模块开机加载

    一.问题背景 平台上的虚拟机经常遭遇DDOS攻击,由于我们启动了iptables的state模块做安全策略,因此收到攻击时经常导致物理机nf_contract表超过默值,进而影响到整个物理机上的虚拟机 ...

  9. 使用 iptables 限制***猜密码续—深入 recent 模块

    使用 iptables 限制***猜密码续-深入 recent 模块 作者:高张远瞩(HiLoveS) 博客:http://www.cnblogs.com/hiloves/ 转载请保留该信息 在< ...

最新文章

  1. 荣获计算机视觉“奥斯卡”奖提名的年轻人!康奈尔大四学生林之秋的科研之道...
  2. smartforms设置纸张打印格式
  3. java读取配置文件properties
  4. 春节您“抢票”到手了吗,如果没,请进来看看!
  5. sizeof与strlen使用中的问题
  6. 种草!这些好像用处不大但是很可爱的Mac软件
  7. 服务器ip维护无法登录,用DHCP解决服务器硬件管理口没有设置IP无法登录的问题...
  8. python之通过thread来实现多进程
  9. AAtitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型titi
  10. 【机器人学习】机器人轨迹规划A※算法代码
  11. 实对称矩阵的特征值求法_MIT—微分方程与线性代数笔记6.5 对称矩阵,实特征值,正交特征向量...
  12. 使用git上传uni-app项目到Gitee
  13. 优秀程序员必备的23条好习惯
  14. 零磁通电流探头的原理和特性是什么?
  15. android 坐标度分秒转换工具,百度地图API详解之坐标系转换
  16. 匈牙利算法与python实现
  17. Excel中使用名称定义常数
  18. 华为matex搭载鸿蒙系统,华为 MateX 推迟至 9 月上市,或预装鸿蒙系统
  19. PotPlayer 高逼格无边框的本地播放器
  20. 世界十大骨传导耳机排行榜、实测主流骨传导耳机推荐解析必看榜单

热门文章

  1. JavaScript知识汇总
  2. [ZUCC 计网]BB-quiz-数据链路层测试-2020
  3. 使用opencv创建一张纯黑色的图片与其他图片进行合成
  4. leetcode 思路——64. 最小路径和——174. 地下城游戏
  5. 六月,授你以鱼,再授你以渔
  6. C# DataGridView控件动态添加行与列
  7. 透视裁剪工具将倾斜的图片调正
  8. Turtlebot3入门教程(Burger)
  9. [iOS]UIButton/UIImageView导圆角设边框
  10. 组织技术部的需求评审会