iptables之state模块使用

为了防止恶意攻击主动连接到你的主机,我们需要通过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

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楊木木8023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值