Firewalld防火墙
一.Firewalld高级配置:
1.IP伪装与端口转发:
随着IPv4地址的缺乏,地址的分配不均匀,虽然在原有的IPv4地址空间的基础上划分出来三段私网地址空间:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。虽然这些地址可以在企业或者公司内部重复使用,但是不能用于互联网,因为这三个范围的地址是无法在Internet上路由的。
于是ANT(网络地址转换)技术便产生了,当用户数据包通过NAT设备时,NAT设备将原地址替换为公网IP地址,而返回的数据包就可以被路由。NAT技术一般是在企业边界路由器或防火墙上来配置的。
IP地址伪装:
地址伪装(masquerade);通过地址伪装,NAT设备将通过设备的包转发到制定接受方,同时通过的数据包的源地址更改为自己外网接口上的地址。当返回的数据包到达时,会将目的地址修改为原始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网。类似于NAT技术中的端口多路复用(PAT)。IP地址伪装仅支持IPv4,IPv6是不支持的。
端口转发:
端口转发(forward-port):也称为目的地址转换或端口映射。通过端口转发,将指定IP地址和端口的流量转发到相同的计算机上的不同端口,或不同计算机上的端口。企业内网的服务器一般都采用私网地址,可以通过端口转发将使用私网地址的服务器发布到公网,以便让互联网用户访问。
2.Firewalld中理解直接规则:
Firewalld提供了“direct interface”(直接接口),它允许管理员手动编写的iptables和ebatbles规则插入firewalld管理的区域中,适用于应用程序,而不是用户。
注:如果对iptables不太熟,不建议使用直接借口,可能会无意中导致防火墙被入侵。Firewalld保持对所增加项目的追踪,所以它还能质询firewalld和发现使用直接端口模式的程序造成更改。
3.使用富语言:
Firewalld的富语言(rich language)提供了一种不需要了解iptables语法的通过高级语言配置复杂IPv4和IPv6防火墙规则的机制,为管理员提供了一种表达性语言,通过这种语言可以表达firewalld的基本语法中未涵盖的自定义防火墙规则。
富规则可用于表达基本的允许/拒绝规则。也可以用于配置记录(面向syslog和auditd)以及端口转发,伪装和速率限制。
- 规则排序:
一旦向某个区域(一般是指防火墙)中添加了多个规则,规则的排序会在很大程度上影响防火墙的行为。对于所有的区域,区域内的规则的基本排序是相同的。如果区域中的任何规则与包均不匹配,通常会拒绝该包,但是区域可能具有不用的默认值。列如:可信任域(trsted)将接收任何不匹配的包,此外,在匹配某个记录规则后,将继续正常处理包。
- 测试和调试:
为了便于测试和调试,几乎所有的规则都可以与超时一起添加到运行时配置。当包含超时的规则添加到防火墙时,计时器便针对该规则开始倒计时,一旦规则的计时器达到0秒,便从运行时配置中删除该规则。
- 理解富规则命令:
Firewall-cmd有四个选项可以用于处理富规则,所有这些选项都可以和常规的
—permanent或—zone=<ZONE>选项组合使用。
--add-rich-rule=‘RULE’:向指定区域中添加RULE,如果没有指定区域则为默认区域:
--add-remove-rich-rule=‘RULE’从指定区域中删除RULE:
区别在于一个是add添加一个是remove删除。其命令都一样。
--list-rich-rules:输出指定区域的所有富规则,如果不指定区域则是输出默认规则。
富规则的语法解释:
source:限制源IP地址,源地址可以是一个IPv4、IPv6地址或者一个网络地址段。
destination:限制目标地址,目标地址使用跟源地址相同语法。
element:要素,该项只能是以下几种要素类型之一;service port protocol
icmp-block masquerade和forward-port。
log:注册有内核日志的连接请求到规则中。
andit:审核,审核该类型可以是accept reject或drop中的一种,但不能在audit命令后指定,因为审核类型将会从规则动作中自动收集。
accept|reject|drop:可以是这三个中的其中一个行为。Accept为允许,reject为拒绝,drop为丢弃。
规则案列:
拒绝来自public区域中IP地址192.168.1.1的所有流量:
丢弃来自默认区域中任何位置的所有传入的ipsec esp协议包:
在192.168.1.0/24网段中,接收端口1~82的所有TCP包:
接收work区域到SSH的新连接,以notice级别且每分钟最多三条消息的方式将新连接记录到syslog
在接下来的5min内,拒绝从默认区域中的子网192.168.1.0/24到DNS的新连接,并且拒绝的连接将记录到audit系统,而且每小时最多一条消息。
将源192.168.1.1这个IP地址加入白名单,以允许来自这个原地址的所有连接:
以上是富规则常见配置。