Redhat Enterprise Linux7已默认使用firewalld防火墙,其管理工具是firewall-cmd。使用方式也发生了很大的改变。

基于iptables的防火墙已默认不启动,但仍然可以继续使用。

RHEL7中有这几种防火墙共存:firewalldiptablesip6tablesebtables

RHEL7的内核版本是3.10,在此版本的内核里防火墙的包过滤机制是firewalld,使用firewalld来管理netfilter,不过底层调用的命令仍然是iptables等。

@



Firewalld zone

什么是zone(区域)?网络区域定义了网络链接的可信等级。

【RHEL7/CentOS7防火墙之firewall-cmd命令详解】-LMLPHP

如上图,数据包若要进入内核,必须经过其中一个zone。而不同的zone里定义的规则也不一样(即信任度不一样,过滤的强度也不一样)。

.

可根据网卡所连接的网络的安全性来判断某张网卡的流量使用的是哪个zone。比如上图中来自eth0网卡的流量全部使用zone1的过滤规则,eth1网卡的流量全部使用zone2的过滤规则。一张网卡同时只能绑定到一个zone.


firewall-cmd

你可以使用任何一种firewalld配置工具来配置区域和防火墙策略。

工具例如firewall-config图形化工具;firewall-cmd命令行工具,命令行工具支持全部防火强特性。

你也可以在配置文件目录中创建或者拷贝区域文件。

/usr/lib/firewalld/zones目录下的文件被用于默认和备用配置。

/etc/firewalld/zones目录下的文件被用于用户创建和自定义的配置文件。

【RHEL7/CentOS7防火墙之firewall-cmd命令详解】-LMLPHP


开始配置防火墙策略

这里所有的对区域进行的配置都不是永久生效的,重新加载或重启服务后都将失效。

可在命令后面加上--permanent指定为永久生效,重载服务后配置生效。


总结

netfilter防火墙总是容易受到规则顺序的影响,因为一条规则在链中没有固定的位置。在一 条规则之前添加或者删除规则都会改变此规则的位置。在静态防火墙模型中,改变防火墙就是重建一个干净和完善的防火墙设置,默认链通常也没有安全的方式添加或删除规则而不影响其它规则。

动态防火墙有附加的防火墙功能链。这些特殊的链按照已定义的顺序进行调用,因而向链中添加规则将不会干扰先前调用的拒绝和丢弃规则。从而利于创建更为合理完善的防火墙配置。 下图是一些由守护进程创建的规则,过滤列表中启用了在公共区域对ssh、mdns和ipp-client的支持:

【RHEL7/CentOS7防火墙之firewall-cmd命令详解】-LMLPHP

想要了解更多关于firewall防火墙的知识可以查看其相关手册页:

【RHEL7/CentOS7防火墙之firewall-cmd命令详解】-LMLPHP

rich-rule手册页:

【RHEL7/CentOS7防火墙之firewall-cmd命令详解】-LMLPHP



05-11 22:13