一.启动停止
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-serviceftp##查看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的相同的 manfirewall-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