一、基本介绍
firewalld是CentOS 7.0推出的管理netfilter的工具,firewalld是配置和监控防火墙规则的系统守护进程,可以实现 iptables,ip6tables,ebtables的功能,firewalld服务由firewalld包提供。
二、Z0NE:区域
firewalld支持划分区域zone,每个zone可以设置独立的防火墙规则.
归入zone顺序:
先根据数据包中源地址,将其纳为某个zone
纳为网络接口所属zone:
纳入默认zone,默认为public zone,管理员可以改为其它zone,
网卡默认属于public zone,lo网络接口属于trusted zone.
Firewalld zone分类
zone名称 默认配置
trusted 允许所有流量
home拒绝除和传出流量相关的,以及ssh,mdsn,ipp-client,samba-client,dhcpv6-client预定义服务之外其它所有传入流量,
internal 和home相同
work 拒绝除和传出流量相关的,以及ssh,ipp-client,dhcpv6-client预定义服务之外的其它所有传入流量
public 拒绝除和传出流量相关的,以及ssh,dhcpv6-client预定义服务之外的其它所有传入流量,新加的网卡默认属于public zone
external 拒绝除和传出流量相关的,以及ssh预定义服务之外的其它所有传入流量,属于external zone的传出ipv4流量的源地址将被伪装为传出网卡的地址。
dmz 拒绝除和传出流量相关的,以及ssh预定义服务之外的其它所有传入流量
block 拒绝除和传出流量相关的所有传入流量
drop 拒绝除和传出流量相关的所有传入流量(甚至不以ICMP错误进行回应)
三、rich规则
当基本firewalld语法规则不能满足要求时,可以使用以下更复杂的规则
rich-rules:富规则,功能强,表达性语言
direct configuration rules:直接规则,灵活性差
帮助:man 5 firewalld.direct
1.rich规则简介
rich规则比基本的firewalld语法实现更强的功能,不仅实现允许/拒绝,还可以实现日志syslog和auditd,也可以实现端口转发,伪装和限制速率
rich语法
rule[source][destination]service|port|protocol|icmp-block|masquerade|forward-port[log][audit][accept|reject|drop]man5 firewalld.richlanguage
2.rich规则实施顺序:
该区域的端口转发,伪装规则
该区域的日志规则
该区域的允许规则
该区域的拒绝规则
每个匹配的规则生效,所有规则都不匹配,该区域默认规则生效
3.rich规则选项
--add-rich-rule='<RULE>'
添加rich规则至指定zone,若未指明zone则为默认zone
--remove-rich-rule='<RULE>'
从指定zone删除rich规则,若未指明zone则为默认zone
--query-rich-rule='<RULE>'
查询指定zone中是否有RULE规则,若未指定zone则为默认zone,返回值0代表存在,返回值1代表不存在
--list-rich-rules
列出指定zone的所有rich规则,若未指定zone则为默认zone
四、rich日志规则
log[prefix="<PREFIX TEXT>" [level=<LOGLEVEL>] [limit value="<RATE/DURATION>"]
<LOGLEVEL>
可以是emerg, alert, crit, error, warning, notice, info, debug
<DURATION>
s:秒,m:分钟,h:小时,d:天
audit [limit value="<RATE/DURATION>"]
五、伪造和端口转发
NAT网络地址转换,firewalld支持伪造和端口转发两种NAT方式伪造NAT格式:firewall-cmd --zone=<ZONE> --add-masqueradefirewall-cmd --permanent --zone=<ZONE> --add-masqueradefirewall-cmd --query-masquerade #检查是否允许伪装
firewall-cmd --add-masquerade #允许防火墙伪装
IPfirewall-cmd --remove-masquerade #禁止防火墙伪装IP
说明:toport=和toaddr=至少要指定一个
rich规则语法:
格式:forward-port port=<PORTNUM> protocol=tcp|udp [to-port=<PORTNUM>] [to-addr=<ADDRESS>]
Copyright © 2011-2020 10isp.com. All Rights Reserved. 中光电信 版权所有 陕西中光电信高科技有限公司 陕ICP备09019267号-3