最近工作上处理了很多关系配置服务器防火墙的操作,于是想写一篇理论与实践并存的文章,在这里分享给大家,希望对您有所帮助!
1、防火墙概述
Firewalld是一种提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具,它自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。
他们的作用是维护规则,而真正使用规则干活的是内核netfilter,firewalld和iptables的结构以及使用方法会有点不一样。
从逻辑上可分为:主机防火墙和网络防火墙 从物理上可分为:硬件防火墙和软件防火墙
firewalld和iptables就属于主机层面的防火墙
主机防火墙主要通过netfilter和TCP Wrappers两个机制来管理的。
Netfilter:数据包过滤机制 TCP Wrappers:程序管理机制
关于数据包过滤机制(Netfilter)两个软件:firewalld与iptables
注意:在RHEL7系列中,默认使用firewalld作为防火墙。在7系列之前使用的是iptables作为默认防火墙。
2、Firewalld原理架构
2.1 Firewalld区域管理
通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流。
【例如】互联网是不可信任的区域,而内部网络是高度信任的区域。网络安全模型可以在安装, 初次启动和首次建立网络连接时选择初始化。该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处理方式。
2.2 Firewalld域
网络区名称 | 默认配置 |
---|---|
trusted | 可接受所有的网络连接 |
home | 用于家庭网络 |
internal | 用于内部网络,仅接受ssh,mdns,gp-client,samba-client,dhcpv6-client连接 |
work | 用于工作区,仅接受sshjpp-client,dhcpv6-client服务连接 |
public | 用于工作区, 仅接受ssh,ipp-client,dhcpv6-client服务连接,在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,是firewalld的默认区域 |
dmz | 仅接受ssh服务的连接 |
【温馨提示】firewalld的默认区域是 public
2.3 Firewalld配置文件
firewalld默认提供了九个zone配置文件: block.xml、 dmz.xml、 drop.xml、 external.xml、 home.xml、 internal.xml、 public.xml、 trusted.xml、 work.xml,都保存在 /usr/lib/firewalld/zones/目录下。