【Centos7】 firewalld命令行

时间:2021-09-06 21:49:39

使用命令行管理firewall之前,说明有关于防火墙的策略独立性:明确的策略,策略之间无关联。 比如mysql使用3306,firewall添加mysql服务但未添加3306,当查询3306端口状态会显示no; 同理,添加3306端口,但未添加mysql服务,当查询mysql服务是否被firewalld允许时,显示no。在这两种情况下,外网都可以正常访问,也必须能访问,这里的逻辑不存在问题。同样,拿Java程序开发来类比:往hashMap.put进service与port,当get的时候就成了两码事,即便所操作的是关于mysql服务

1.查看防火墙状态

systemctl status firewalld

2.查看开放的服务/端口:

firewall-cmd --list-service
firewall-cmd --list-port

3.查询指定的端口是否永久开放

firewall-cmd --permanent --query-port=/tcp

4.查询指定的服务/端口:

 firewall-cmd --query-service ssh
 firewall-cmd --query-port=/tcp

5.添加服务:

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --remove-service=ftp

6.添加端口

 方式1:

   firewall-cmd --permanent --add-port=/tcp
   firewall-cmd --permanent --add-port=/tcp
   firewall-cmd --reload

方式2:

   cp  /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
   vi  /etc/firewalld/services/ssh.xml
   vi /etc/firewalld/zones/public.xml

7.查看存在的zones:

 firewall-cmd --get-zones

8.当前使用的zone:

 firewall-cmd --get-active-zones

9.zone为public的所有策略:

 firewall-cmd --zone=public --list-all

10.设置默认的zone: (public是最合适的,也是firewall默认的)

firewall-cmd --set-default-zone=public