Linux的firewall和iptables

Linux的firewall和iptables的区别

又是普通的一天。项目的应用服务器扩容重启了,于是之前的防火墙配置重置了,把服务启动之后,发现访问不了,一看,估计又是防火墙的原因。于是我又百度“linux关闭防火墙”,以下是网上找的:

1:查看防火状态
systemctl status firewalld
service  iptables status
2:暂时关闭防火墙
systemctl stop firewalld
service  iptables stop
3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4:重启防火墙
systemctl enable firewalld
service iptables restart  
5:永久关闭后重启
//暂时还没有试过
chkconfig iptables on

于是我把防火墙firewalld关闭了,发现还是不行?

(马后炮其实这边我要是把iptables也关闭了,问题也解决了~~~)

于是继续搜索端口开放:

关闭端口号:
iptables -A OUTPUT -p tcp --dport 端口号-j DROP
打开端口号:
iptables -A INPUT -ptcp --dport  8099 -j ACCEPT
service iptables save 保存设置

通过以上打开了我服务的端口号(比如我这里是8060)
发现还是不行?

这时一位英雄的人物从我身边走过:
首先查看了iptables的配置:
然后修改配置,测试成功!

先讲讲具体是怎么做的吧:

vim /etc/sysconfig/iptables

查看iptables的配置

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1974:636030]
:FORWARD_IN_ZONES - [0:0]
:FORWARD_IN_ZONES_SOURCE - [0:0]
:FORWARD_OUT_ZONES - [0:0]
:FORWARD_OUT_ZONES_SOURCE - [0:0]
:FORWARD_direct - [0:0]
:FWDI_public - [0:0]
:FWDI_public_allow - [0:0]
:FWDI_public_deny - [0:0]
:FWDI_public_log - [0:0]
:FWDO_public - [0:0]
:FWDO_public_allow - [0:0]
:FWDO_public_deny - [0:0]
:FWDO_public_log - [0:0]
:INPUT_ZONES - [0:0]
:INPUT_ZONES_SOURCE - [0:0]
:INPUT_direct - [0:0]
:IN_public - [0:0]
:IN_public_allow - [0:0]
:IN_public_deny - [0:0]
:IN_public_log - [0:0]
:OUTPUT_direct - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES_SOURCE
-A INPUT -j INPUT_ZONES
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8099 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8060 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8070 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8996 -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_IN_ZONES_SOURCE
-A FORWARD -j FORWARD_IN_ZONES
-A FORWARD -j FORWARD_OUT_ZONES_SOURCE
-A FORWARD -j FORWARD_OUT_ZONES
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -j OUTPUT_direct
-A FORWARD_IN_ZONES -i ens192 -g FWDI_public
-A FORWARD_IN_ZONES -g FWDI_public
-A FORWARD_OUT_ZONES -o ens192 -g FWDO_public
-A FORWARD_OUT_ZONES -g FWDO_public
-A FWDI_public -j FWDI_public_log
-A FWDI_public -j FWDI_public_deny

注意以下这一部分,首先,iptables的过滤是从上到下进行的。

-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m tcp --dport 8099 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8060 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8070 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8996 -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

这里我们先看一下iptables的配置详解,不然这些都不咋看的懂吧:
就看这边涉及到的几个吧:

-A:向规则链中添加条目;这个好理解,就是添加一条规则。

-P:定义规则链中的默认目标(protocol);可以看到-p后面这里是tcp,即目标是tcp协议。

-m:iptables中使用“-m 模块关键字”的形式调用显示匹配。咱们这里用“-m mac –mac-source”来表示数据包的源MAC地址,比如这边的 tcp --dport设置tcp连接的端口号。

-j<目标>:指定要跳转的目标; -j reject 即禁止其他未允许的规则访问。–reject-with icmp-host-prohibited这句话的意思就是以icmp协议主机禁止的方式进行拒绝。

注:ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。

INPUT链:处理输入数据包。针对访问的处理,通过input进行端口的开放。

PORWARD链:处理转发数据包。

一些网络流量的数据包被标记为无效,有时,记录此类型的数据包可能有用,但通常可以删除它们:

-A INPUT -m conntrack --ctstate INVALID -j DROP

引用自:https://www.cnblogs.com/klb561/p/9011546.html


这么来看就可以理解了,我在默认配置之后添加的iptables配置,这边的4个tcp的配置是后添加的,其链上面一条规则其实以及把输入数据包全部跳转到了REJECT,因此这些配置都是无效的。

解决办法:把这几个配置移到之前就可以了。(当然,我后来选择了直接关闭iptables~~(service iptables stop))

既然iptables完成了防火墙的功能,那么firewall又是个啥?

内容还是很复杂的,简要来说他们是两个不同的防火墙,实现方式不同。但是最终都是和内核中的netfilter通信。

引用:https://blog.csdn.net/weixin_40658000/article/details/78708375

最终

我测了一下又把firewalld开启,iptables关闭,发现端口通,说明服务器默认firewalld应该没怎么拦截。

总结

这里主要大概了解了一下firewalld和iptables的区别,以及iptables规则链的配置方式和实现原理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值