1.富规则语法
[root@web02 ~]# man firewalld.richlanguage
rule
[source]
[destination]
service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
[log]
[audit]
[accept|reject|drop|mark]
rule [family="ipv4|ipv6"]
source [not] address="address[/mask]"|mac="mac-address"|ipset="ipset"
destination [not] address="address[/mask]"
service name="service name"
port port="port value" protocol="tcp|udp"
protocol value="protocol value"
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="addr
ess"
source-port port="port value" protocol="tcp|udp"
[accept|reject|drop|mark]
#富语言规则相关命令
--add-rich-rule='<RULE>' #在指定的区域添加一条富语言规则
--remove-rich-rule='<RULE>' #在指定的区删除一条富语言规则
--query-rich-rule='<RULE>' #找到规则返回0,找不到返回1
--list-rich-rules #列出指定区里的所有富语言规则
2.富规则实例一
允许10.0.0.1主机能够访问http服务,允许172.16.1.0/24能访问111端口
#允许10.0.0.1主机能够访问http服务
[root@web02 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1 service name=http accept'
success
#允许172.16.1.0/24能访问111端口
[root@web02 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 port port=111 protocol=tcp accept'
success
3.富规则实例二
默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器
[root@web02 ~]# firewall-cmd --add-service=ssh
#但拒绝172.16.1.0/24网段通过ssh连接服务器
1.方式一:
[root@web02 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name=ssh reject'
success
#连接返回结果
[root@web01 ~]# ssh 172.16.1.8 22
ssh: connect to host 172.16.1.8 port 22: Connection refused
2.方式二:
[root@web02 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name=ssh drop'
success
#连接返回结果
[root@web01 ~]# ssh 172.16.1.8 22
ssh: connect to host 172.16.1.8 port 22: Connection timed out
#drop和reject区别
reject直接拒绝,返回拒绝
drop是丢弃,直到超时
4.富规则实例三
当用户来源IP地址是10.0.0.1主机,则将用户请求的5555端口转发至后端172.16.1.7的22端口
[root@web02 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1 forward-port port=5555 protocol=tcp to-port=22 to-addr=172.16.1.7'
success
[root@web02 ~]# firewall-cmd --add-masquerade
success
5.防火墙配置网站禁ping
[root@web02 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 protocol value=icmp drop'
success