1.命令格式

firewall-cmd [选项] [参数]

2.选项

1.通用选项

-h, --help    # 显示帮助信息
-V, --version # 显示版本信息
-q, --quiet   # 不打印状态消息

2.状态选项

--state                # 显示firewalld的状态;
--reload               # 不中断服务的重新加载;
--complete-reload      # 中断所有连接的重新加载;

3.日志选项

--get-log-denied           # 获取记录被拒绝的日志;
--set-log-denied=<value>   # 设置记录被拒绝的日志,只能为 'all','unicast','broadcast','multicast','off' 其中的一个;

3.启动停止

systemctl start firewalld      # 启动
systemctl status firewalld     # 或者 firewall-cmd --state 查看状态
systemctl stop firewalld       # 停止
systemctl enable firewalld     # 开启开机自启
systemctl disable firewalld    # 禁止开机自启

4.实例

# 将接口添加到区域,默认接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 设置默认接口区域,立即生效无需重启
firewall-cmd --set-default-zone=public
# 查看所有打开的端口:
firewall-cmd --zone=dmz --list-ports
# 加入一个端口到区域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 添加服务
firewall-cmd --zone=work --add-service=smtp
# 移除服务
firewall-cmd --zone=work --remove-service=smtp
# 显示支持的区域列表
firewall-cmd --get-zones
# 设置为家庭区域
firewall-cmd --set-default-zone=home
# 查看当前区域
firewall-cmd --get-active-zones
# 显示所有公共区域(public)
firewall-cmd --zone=public --list-all
# 显示当前服务
firewall-cmd --list-services
# 添加端口
firewall-cmd --add-port=443/tcp
# 永久添加端口
firewall-cmd --permanent --add-port=3690/tcp
# 移除端口
firewall-cmd --remove-port=80/tcp
开放端口段
firewall-cmd --permanent --zone=public --add-port=1000-2000/tcp
允许某个IP访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.21 accept'
禁止某个IP访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.21 drop'
运行某个IP访问某个端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.21 port protocol=tcp port=8089 accept'
禁止某个IP访问某个端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.10.21" port port="8089" protocol="tcp" accept'
允许某个IP段访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.21/24 accept'