检查防火墙运行状态
firewall-cmd --state
重载防火墙配置
firewall-cmd --reload
防火墙默认区域
查看(初始默认是public)
firewall-cmd --get-default-zone
修改
firewall-cmd --set-default-zone=internal
查看所有区域配置
firewall-cmd --list-all-zones
查看区域配置
firewall-cmd --zone=public --list-all
端口管理
查看当前端口规则
firewall-cmd --zone=dmz --list-ports
增加规则
firewall-cmd --add-port=80/tcp --permanent
--permanent参数是让配置持久化,不加这个参数就是配置本次运行时才生效
删除规则
firewall-cmd --remove-port=80/tcp --permanent
配置转发
内核开启转发
sysctl -w net.ipv4.ip_forward=1
然后在文件/etc/sysctl.conf里面修改参数,以保持永久开启
net.ipv4.ip_forward = 1
配置masquerade
firewall-cmd --zone=public --add-masquerade --permanent
以上配置是否需要开启,主要是作用于是否需要将流量转发到外部主机
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.1.102 --permanent
firewall-cmd --reload
删除规则
firewall-cmd --zone=public --remove-masquerade --permanent
firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.1.102 --permanent
firewall-cmd --reload
服务管理
查看当前服务规则
firewall-cmd --list-services
自定义服务
vim /etc/firewalld/services/custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>custom</short>
<description>自定义描述</description>
<port protocol="udp" port="80"/>
<port protocol="tcp" port="80"/>
</service>
查看服务配置
firewall-cmd --reload
firewall-cmd --get-services | grep "custom"
开启服务规则
firewall-cmd --add-service=custom --permanent
firewall-cmd --reload
删除服务规则
firewall-cmd --remove-service=custom --permanent
firewall-cmd --reload
富规则管理
查看手册查询参数
man firewalld.richlanguage
查找当前生效规则
firewall-cmd --list-rich-rules
添加规则
#允许192.168.1.102访问80端口
firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.1.102 port port="80" protocol="tcp" accept'
#禁止192.168.1.102访问22端口
firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.1.102 port port="22" protocol="tcp" drop'
#当192.168.1.101访问80端口时,将流量转发到192.168.1.102的8080端口
firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.1.101 forward-port port=80 protocol="tcp" to-port="8080" to-addr=192.168.1.102'
删除规则
firewall-cmd --remove-rich-rule 'rule family=ipv4 source address=192.168.1.102 port port="80" protocol="tcp" accept'