一.启动停止
firewalld 守护进程
systemctl status/start/stop/restart firewalld来控制这个守护进程
激活最新配置:
1.systemctl restart firewalld #重启 firewalld 服务
2.firewall-cmd --reload #重载配置文件之后不会断掉正在连接的 tcp 会话
二.firewall-cmd命令
firewall-cmd --state ##查看防火墙状态,是否是running firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no firewall-cmd --add-service=ftp ##临时开放ftp服务 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 iptables -L -n ##查看规则,这个命令是和iptables的相同的 man firewall-cmd ##查看帮助
runtime:当前正在生效 permanent:永久生效 当策略为永久生效时,必须执行--reload参数后才能立即生效,否则重启后生效
三.配置
irewall-cmd --add-service=mysql # 开放mysql端口 firewall-cmd --remove-service=http # 阻止http端口 firewall-cmd --list-services # 查看开放的服务 firewall-cmd --add-port=3306/tcp # 开放通过tcp访问3306 firewall-cmd --remove-port=80/tcp # 阻止通过tcp访问80 firewall-cmd --add-port=233/udp # 开放通过udp访问233 firewall-cmd --list-ports # 查看开放的端口
可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放 http 服务就是开放了 80 端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp 还是 udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。
查看当前区域 firewall-cmd --get-default-zone 查看所以区域 firewall-cmd --get-active-zones 查看网卡ens224区域 firewall-cmd --get-zone-of-interface=ens224 在public中分别查询ssh与http服务是否被允许 firewall-cmd --zone=public --query-service=ssh firewall-cmd --zone=public --query-service=http 设置默认规则为DMZ: firewall-cmd --set-default-zone=dmz 让永久生效的配置文件立即生效 firewall-cmd --reload 启动/关闭应急状况模式,阻断所以网络连接:应急模式会禁止所有的网络连接,注意 firewall-cmd --panic-on firewall-cmd --panic-off 允许http流量通过public区域,立即生效且永久生效 方法一: firewall-cmd --zone=public --add-service=http #当前生效 firewall-cmd --permanent --zone=public --add-service=http #设置永久生效 方法二: firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --reload 不允许https流量通过public区域,立即生效且永久生效 firewall-cmd --permanent --zone=public --remove-service=http firewall-cmd --reload 允许8080与8081端口通过public区域,立即生效且永久生效 firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp firewall-cmd --reload 查看加入的端口是否生效 firewall-cmd --zone=public --list-ports firewall-cmd --permanent --zone=public --list-ports 伪装IP 防火墙可以实现伪装IP的功能,端口转发会用到 (端口转发配置始终不生效,查询许多资料后,才发现需要开启IP伪装功能,这是个坑) 检测是否允许伪装IP firewall-cmd --query-masquerade 允许防火墙伪装IP firewall-cmd --add-masquerade 禁用防火墙伪装IP firewall-cmd --remove-masquerade 端口转发功能: firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=x.x.x.x 删除转发功能 firewall-cmd --permanent --zone=public --remove-forward-port=port=888:proto=tcp:toport=22:toaddr=x.x.x.x 开启888端口 firewall-cmd --zone=public --add-port=888/tcp