HCRM博客

如何在CentOS中配置防火墙?

在CentOS系统中配置防火墙是确保网络安全的关键步骤,CentOS 7使用firewalld作为默认的防火墙管理工具,它提供了一个动态的、基于区域的防火墙管理框架,使得防火墙的配置更加灵活和强大,以下是对CentOS配置防火墙的详细介绍:

基础概念

1、Zone的概念:在firewalld中,zone(区域)定义了防火墙对某个连接、网口或源地址的信任等级,不同的zone有不同的规则,从而允许防火墙针对不同的连接、网口或源地址做出不同的行为。

如何在CentOS中配置防火墙?-图1
(图片来源网络,侵权删除)

2、Service的概念:firewalld中的service配置文件用于定义服务相关的指令,这些指令可以用于添加或删除防火墙规则。

3、ipset的概念:ipset是一种IP集合,它可以用于定义一组IP地址,并在防火墙规则中使用这些集合来简化规则的编写和管理。

4、direct.xml:direct.XML是firewalld中的一个配置文件,用于直接定义防火墙规则。

配置文件位置

CentOS 7中的firewalld配置文件存放在两个位置:/etc/firewalld和/usr/lib/firewalld,前者是用户配置目录,后者是系统配置目录,用户配置目录下的配置文件才会生效,而系统配置目录下的配置文件一般不随意改变。

预定义的Zone

CentOS 7中firewalld为用户预定义了9个zone,分别为drop, block, public, external, dmz, work, home, internal, trusted,每个zone的防火墙规则是通过/etc/firewalld/zones目录下的xml配置文件来配置的。

四、将Interface和Source划分到Zone

如何在CentOS中配置防火墙?-图2
(图片来源网络,侵权删除)

可以使用firewallcmd命令将某个source或interface划分到某个zone,将某个IP地址划分到trusted zone的命令为:firewallcmd permanent zone=trusted addsource=<IP地址>;将某个网口划分到block zone的命令为:firewallcmd permanent zone=block addinterface=<接口名>

常用命令

1、启动firewalld:systemctl start firewalld

2、关闭firewalld:systemctl stop firewalld

3、查看状态:systemctl status firewalld

4、设置开机启动:systemctl enable firewalld

5、取消开机启动:systemctl disable firewalld

如何在CentOS中配置防火墙?-图3
(图片来源网络,侵权删除)

6、查看版本:firewallcmd version

7、查看帮助:firewallcmd help

8、显示状态:firewallcmd state

9、更新防火墙规则:firewallcmd reload

10、查看区域信息:firewallcmd getactivezones

11、查看指定接口所属区域:firewallcmd getzoneofinterface=<接口名>

12、拒绝所有包:firewallcmd panicon

13、取消拒绝状态:firewallcmd panicoff

14、查看是否拒绝:firewallcmd querypanic

15、开启端口:开启80端口的命令为:firewallcmd permanent addport=80/tcp

16、删除端口:删除80端口的命令为:firewallcmd permanent removeport=80/tcp

17、查看已开启端口:firewallcmd listports

18、查看防火墙规则:firewallcmd listall

19、查看允许协议:firewallcmd listprotocols

20、获取所有支持的服务:firewallcmd getservices

21、增加服务:firewallcmd permanent addservice=<服务名>

22、删除服务:firewallcmd permanent removeservice=<服务名>

23、允许指定IP访问所有流量:firewallcmd permanent addrichrule="rule family="ipv4" source address="<IP地址>" accept"

24、允许指定IP访问指定端口:firewallcmd permanent addrichrule="rule family="ipv4" source address="<IP地址>" port protocol="<协议>" port="<端口号>" accept"

25、允许指定IP访问指定协议:firewallcmd permanent addrichrule="rule family="ipv4" source address="<IP地址>" protocol value="<协议>" accept"

26、允许指定IP访问指定服务:firewallcmd permanent addrichrule="rule family="ipv4" source address="<IP地址>" service name="<服务名>" accept"

27、移除某个服务:firewallcmd removerichrule="rule family="ipv4" source address="<IP地址>" service name="<服务名>" drop"

FAQs

1、如何查看当前防火墙的状态?:使用命令systemctl status firewalld可以查看当前防火墙的状态,如果显示“active (running)”,则表示防火墙正在运行;如果显示“inactive (dead)”,则表示防火墙已经关闭。

2、如何开启一个特定的端口?:要开启一个特定的端口,例如80端口,可以使用命令firewallcmd permanent addport=80/tcp,使用命令firewallcmd reload重新加载防火墙规则以使更改生效。

分享:
扫描分享到社交APP
上一篇
下一篇