firewalld防火墙
Redhat Enterprise Linux7已经默认使用firewalld作为防火墙,其使用方式已经变化。 基于iptables的防火墙被默认不启动,但仍然可以继续使用。
RHEL7中有几种防火墙共存:firewalld、iptables、ebtables等,默认使用firewalld作为防 火墙,管理工具是firewall-cmd。
Firewalld提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的防火墙管理工具。
区域:网络区域定义了网络连接的可信等级
数据包要进入到内核必须要通过这些zone中的一个,而不同的zone里定义的规则不一样 (即信任度不一样,过滤的强度也不一样)。可以根据网卡所连接的网络的安全性来判断, 这张网卡的流量到底使用哪个zone,比如上图来自eth0的流量全部使用zone1的过滤规 则,eth1的流量使用zone2。一张网卡同时只能绑定到一个zone '一张网卡同时只能绑定到一个zone'
预定义的服务:服务是端口和/或协议入口的组合。
端口和协议:定义了 tcp 或 udp 端口,端口可以是一个端口或者端口范围
ICMP 阻塞:可以选择 Internet 控制报文协议的报文。这些报文可以是信息请求亦可是对 信息请求或错误条件创建的响应
伪装:私有网络地址可以被映射到公开的IP地址。这是一次正规的地址转换
端口转发:端口可以映射到另一个端口以及/或者其他主机
区域 | 默认规则策略 |
信任区域trusted | 允许所有的数据包。 |
家庭区域home | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,mdns,ipp-client,samba-client与dhcpv6-client服务则允许。 |
内部区域internal | 等同于home区域 |
工作区域work | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,ipp-client与dhcpv6-client服务则允许。 |
公共区域public | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,dhcpv6-client服务则允许。 |
外部区域external | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。 |
隔离区域 dmz | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。 |
阻塞区域block | 拒绝流入的数据包,除非与输出流量数据包相关。 |
丢弃区域drop | 拒绝流入的数据包,除非与输出流量数据包相关。 |
firewalld原则
如果一个客户端访问服务器,服务器根据以下原则决定使用哪个 zone 的策略去匹配
- 如果一个客户端数据包的源IP地址匹配zone的sources,那么该zone的规则就适用这个客 户端;一个源只能属于一个zone,不能同时属于多个zone
- 如果一个客户端数据包进入服务器的某一个接口(如eth0)区配zone的interfaces,则该 zone 的规则就适用这个客户端;一个接口只能属于一个zone,不能同时属于多个zone。
- 如果上述两个原则都不满足,那么缺省的zone将被应用