(iptables)火墙策略读取的先后顺序 + 引入数据包状态

实验环境

本实验使用了两台虚拟机,workstation(添加策略) + rhel8(进行访问测试)

  • dnf install httpd -y进行安装后,打开服务
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第1张图片
  • 此时ssh可访问,apache也可以
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第2张图片
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第3张图片

测试步骤

1)设置apache可被访问,iptables不可以

  • iptables -A INPUT -p tcp --dport 80 -j ACCEPT 设置httpd可以
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第4张图片
  • iptables -A INPUT -i lo -j ACCEPT 设置回环接口允许,即本地可访问
    此时80接口是允许的,回环接口是允许的,其他都是REJECT拒绝的
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第5张图片
  • 使用rhel8进行连接测试,不能ping通,也不能连接上去。但是apache连接是正常的
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第6张图片
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第7张图片
    2)添加20端口,让ssh也能够被访问
  • 火墙策略需要注意,因为是具有先后顺序的(从上到下依次读取),比如说添加22端口,如果直接使用iptables -A INPUT -p tcp --dport 22 -j ACCEPT命令进行添加,就会在REJECT后面,依旧是不能进行访问的
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第8张图片
    在这里插入图片描述
  • 当我们使用iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT就能把策略添加到指定行
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第9张图片
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第10张图片
    在企业中的策略肯定不像我们这里测试的只有短短几条,那么就存在一种问题:每次我们的80都在最后一条,读取起来就很麻烦,所以引入了监控数据包状态这一点

数据包状态

最开始的访问状态是NEW,后续就是ESTABLISHED和RELATED了。此设定会优化我们的火墙数据包状态,使我们的数据包更易通过火墙。

命令 作用
RELATED 建立过连接的
ESTABLISHED 正在连接的
NEW 新的

【1】代码

[root@workstation ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  #这两种状态的直接让过
[root@workstation ~]# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
[root@workstation ~]# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
[root@workstation ~]# iptables -A INPUT -m state --state NEW -s 170.25.254.11 -p tcp --dport 22 -j ACCEPT  #不加!表示只有这个ip的可以来访问,加上!表示只有此ip不可访问
[root@workstation ~]# iptables -A INPUT -j REJECT
[root@workstation ~]# service iptables save #对我们的策略进行保存

(iptables)火墙策略读取的先后顺序 + 引入数据包状态_第11张图片
【2】验证

  • 自己访问自己是可以成功的,因为走的是lo回环接口
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第12张图片
  • 使用170.25.254.11也是可以访问的,使用其他主机是不可以的
    (iptables)火墙策略读取的先后顺序 + 引入数据包状态_第13张图片

你可能感兴趣的:(rhce)