需求目的:能正确熟练的掌握firewalld防火墙的配置
能有什么样的效果:能在实际生产过程中熟练的配置防火墙策略,灵活运用于各种实际的生产环境。
理论知识点的描述:1.rhel7默认使用firewalld作为防火墙,管理工具是firewall-cmd,是包过滤机制,底层的调用命令仍然是iptables。
2.rhel7中有几种防火墙共存:firewall,iptables,ebtables,因为这几种daemon是冲突的,所以建议禁用其他几种服务。(systemctl mask iptables ipohtables ebtables)
3.firewaal提供来支持网络/防火墙区域定义网络连接以及接口安全等级的防火墙管理,拥有运行时配置和永久配置选项。它也能支持允许2服务或者应用程序直接添加防火墙规则的接口。
4.firewall daemon动态管理防火墙,不需要重启整个防火墙便可应用更改。网络区域定义了网络连接的可信等级,数据包要进入内核必须要通过这些zone的一个,而不同的zone里定义调度规则不一样。
拓扑图:
预定义的服务:服务是端口或协议人口的组合
端口和协议:定义的tcp或udp端口,端口可以是一个端口或端口范围
icmp阻塞:可以选择internet控制报文协议的报文。这些报文可以是信息请求亦可是对信息请求或错误条件创建的响应。
伪装:是有网络地址可以被映射到公开的ip地址,这是一次正规的地址转换
端口转发:端口可以映射到另一个端口以及或者其他主机。
一:系统自定义的区域(默认有九个区域,而且都会有特别的含义)
在进行firewalld配置之前,我想来讨论一下区域(zones)这个概念。默认情况就有一些有效的区域。由firewalld 提供的区域按照从不信任到信任的顺序排序。
丢弃区域(Drop Zone):如果使用丢弃区域,任何进入的数据包将被丢弃。这个类似与我们之前使用iptables -j drop。使用丢弃规则意味着将不存在响应。
阻塞区域(Block Zone):阻塞区域会拒绝进入的网络连接,返回icmp-host-prohibited,只有服务器已经建立的连接会被通过即只允许由该系统初始化的网络连接。
公共区域(Public Zone):只接受那些被选中的连接,默认只允许 ssh 和 dhcpv6-client。这个 zone 是缺省 zone
外部区域(External Zone):这个区域相当于路由器的启用伪装(masquerading)选项。只有指定的连接会被接受,即ssh,而其它的连接将被丢弃或者不被接受。
隔离区域(DMZ Zone):如果想要只允许给部分服务能被外部访问,可以在DMZ区域中定义。它也拥有只通过被选中连接的特性,即ssh。
工作区域(Work Zone):在这个区域,我们只能定义内部网络。比如私有网络通信才被允许,只允许ssh,ipp-client和 dhcpv6-client。
家庭区域(Home Zone):这个区域专门用于家庭环境。它同样只允许被选中的连接,即ssh,ipp-client,mdns,samba-client和 dhcpv6-client。
内部区域(Internal Zone):这个区域和工作区域(Work Zone)类似,只有通过被选中的连接,和home区域一样。
信任区域(Trusted Zone):信任区域允许所有网络通信通过。
记住:因为trusted是最被信任的,即使没有设置任何的服务,那么也是被允许的,因为trusted是允许所有连接的
二:Firewalld的原则
如果一个客户端访问服务器,服务器根据以下原则决定使用哪个 zone 的策略去匹配
(1)如果一个客户端数据包的源 IP 地址匹配 zone 的 sources,那么该 zone 的规则就适
用这个客户端;一个源只能属于一个zone,不能同时属于多个zone。
(2)如果一个客户端数据包进入服务器的某一个接口(如eth0)区配zone的interfaces,
则么该 zone 的规则就适用这个客户端;一个接口只能属于一个zone,不能同时属于多个zone。
(3)如果上述两个原则都不满足,那么缺省的 zone 将被应用
三:应用
获取firewall的状态
不改变状态下重新加载防火墙
获取支持的区域列表
获取支持的区域列表
进入目录能列出有效的服务
获取所有支持的icmp类型
列出全部启用的区域的特性
输出区域全部启用的特性
输出指定区域启动的特性
查看默认区域
设置默认区域
获取活动区域
根据接口获取区域即需要查看哪个区域和这个接口绑定即是查看某个接口是属于哪个区域的
将接口增加到区域
修接口所属区域
从区域中删除一个接口(firewall-cmd [--zone] --remove-interface=接口名)
查询区域中是否包含某接口
列举区域中启动的服务
查看home区域中启用服务
启用应急模式阻断所有网络连接,防止出现紧急情况
禁用应急模式:firewall-cmd --panic-off
查询应急模式:firewall-cmd --query-panic