Linux iptables防火墙规则配置的两个坑

好久没有更新了,之前的一篇文章写到一半就放草稿箱没再动。汗颜-_-||


0. 起因

  使用redis数据库,一台主机作为server启动后,另一台主机作为client连接不上server,经查询,可能是由于server防火墙的原因。
  
  由于使用的centos7之前已将防火墙由firewalld换成iptables (参考:CentOS7将firewalld换成iptables ),故只需进行iptables的规则配置,允许其他ip访问特定端口。

1. 坑1(规则的保存)

  网上涉及iptables规则设置的文章太多了,包括上文链接中就有提及,打开/etc/sysconfig/iptables,写入新的规则,保存文件,然后通过service iptables save + service iptables restart命令进行规则的保存与生效。
  
  这里写图片描述

  上图中,我试图在原iptables文件中加入标红的一行规则。
  看着挺简单的吧,然而save + restart之后,再打开iptables文件,发现新加规则并不在里面。
  
  针对这个问题搜索,发现这个帖子Linux中iptables设置详细有提及。按照说明,先进行restart再save。execuse me?
  
  这里写图片描述
  
  如上图,原来的规则都没有了!!

  当然,问题还是解决了,方法就是只用service iptables restart命令,规则即可保存和生效。
  

2. 坑2(规则的添加位置)  

这个主要是自己对规则的含义以及生效机制不甚清楚。开始添加的时候,如下图所示

这里写图片描述

  对比第一张图,可以看到规则添加的位置不一样。这样添加后,client仍然访问不了server。分析问题应该是出在规则表中,而最后两条涉及REJECT的规则不清楚其含义。

  centos iptables 浅析 ,该文中有提及,REJECT规则含义为拒绝访问并返回出错信息。关键是iptables规则自上而下匹配,之前的规则均生效,而之后允许访问的规则则被屏蔽。
  
  故只要把需要添加的规则加到前面就可以了。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值