在CentOS中,配置防火墙是确保服务器安全的重要一环,本文将全面介绍如何在CentOS中配置firewalld,包括开启和关闭防火墙、查看防火墙状态、配置防火墙规则等操作。
一、防火墙基本操作
1、切换到root用户:

- su root
2、查看防火墙服务状态:
- systemctl status firewalld
3、查看firewall的状态:
- firewallcmd state
4、启动防火墙:
- systemctl start firewalld
5、重启防火墙:
- systemctl restart firewalld
6、关闭防火墙:
- systemctl stop firewalld
7、设置开机自启动防火墙:

- systemctl enable firewalld.service
8、查看防火墙设置是否开机自启:
- systemctl isenabled firewalld.service
二、防火墙端口配置
1、查看已开启端口:
- firewallcmd listports
2、查看防火墙规则:
- firewallcmd listall
3、查看允许协议:
- firewallcmd listprotocals
4、查询端口是否开放:
- firewallcmd queryport=80/tcp
5、添加永久开放的端口:

- firewallcmd permanent addport=80/tcp
- firewallcmd permanent addport=998/tcp
6、删除端口:
- firewallcmd removeport=999/tcp
三、防火墙IP指向限制配置
1、允许指定IP访问所有流量:
- firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"192.168.43.100\" accept"
2、允许指定IP访问指定端口:
- firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"8.8.8.8\" port protocol=\"tcp\" port=\"80\" accept"
- firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" port protocol=\"tcp\" port=\"22\" accept"
3、阻止ICMP包:
- firewallcmd permanent addrichrule="rule protocol value=\"icmp\" drop"
4、允许特定地址通过ICMP:
- firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"120.12.23.136\" protocol value=\"icmp\" accept"
5、允许指定IP访问指定服务:
- firewallcmd permanent addrichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" service name=\"ssh\" accept"
6、移除某个服务:
- firewallcmd removerichrule="rule family=\"ipv4\" source address=\"10.168.186.25\" service name=\"ssh\" drop"
四、zone的概念与配置
1、预定义的zone:CentOS 7中firewalld为用户预定义了9个zone,分别为drop、block、public、external、dmz、work、home、internal、trusted。
- firewallcmd permanent zone=trusted addsource=192.168.5.112
2、将interface和source划分到某个zone:
- firewallcmd permanent zone=trusted addinterface=eth0
- firewallcmd permanent zone=block addinterface=ens33
五、Service的概念与配置
1、service配置文件:每个service都有相应的配置文件,用于定义该service的规则。
- firewallcmd addservice=http permanent
2、service相关的指令:可以添加、删除或修改service。
- firewallcmd permanent removeservice=http
六、ipset的概念与应用
iPSet是一个强大的工具,用于创建和管理复杂的IP地址列表,可以在firewalld中使用。
- firewallcmd permanent addipset=my_ipset type=hash:ip f /etc/firewalld/my_ipset.txt
- firewallcmd reload
七、direct.xml文件的配置
direct.xml文件用于直接配置firewalld的规则,适用于高级用户。
- <rule family="ipv4">
- <source address="192.168.1.0/24"/>
- <protocol value="tcp"/>
- <port>="80"/>
- <accept/>
- </rule>
相关FAQs问答
1、如何更改默认的zone?:可以使用以下命令更改默认的zone。
- firewallcmd setdefaultzone=trusted
2、如何查看当前活动的zone?:可以使用以下命令查看当前活动的zone。
- firewallcmd getactivezones
通过以上内容,您可以全面了解并掌握CentOS中firewalld的配置方法,从而有效地保障服务器的网络安全。