CentOS7防火墙firewalld配置

时间:2022-02-15 05:43:18

配置文件路径

firewalld的配置存储在/usr/lib/firewalld//etc/firewalld/上的各种XML文件中。
1. 系统配置目录:/usr/lib/firewalld/services
目录中存放定义好的网络服务和端口参数,系统参数,不能修改
2. 用户配置目录:/etc/firewalld/
公共规则定义在/etc/firewalld/zones/public.xml 中。内容如下:

<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
</zone>

如何添加端口

这里指开放端口。两种方法:
1. 命令的方式添加端口

firewall-cmd --permanent --add-port=80/tcp
  • firewall-cmd:是Linux提供的操作firewalld的一个工具;
  • –permanent:表示设置为持久;
  • –add-port:标识添加的端口和协议;

另外举几个我感觉有用的例子:

#添加一个范围,9000到9100
firewall-cmd --permanent --add-port=9000-9100/tcp

#移除80端口
firewall-cmd --permanent --remove-port=80/tcp

2.修改配置文件的方式添加端口

<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>...</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>

#这里添加规则
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="8080"/>
</zone>

实际上执行命令跟这是一样的效果。
最后重启防火墙,service firewalld restart,使配置生效。
附上常用命令:

#查看状态
firewall-cmd --state

#查看规则
firewall-cmd --list-all

#重启
service firewalld restart

#开启
service firewalld start

#关闭
service firewalld stop

#查看服务状态
systemctl status firewalld.service

#停止服务并取消开机启动
systemctl stop firewalld.service
systemctl disable firewalld.service