CentOS7默认使用的防火墙是Firewalld,它是一个动态管理防火墙的守护进程,提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。下面就详细介绍CentOS7防火墙的配置与管理。

查看防火墙状态

要了解防火墙当前的运行状态,可以使用以下命令:

systemctl status firewalld

如果防火墙正在运行,输出结果中会显示“active (running)”;若未运行,则显示“inactive (dead)”。若要启动防火墙,可使用命令:

systemctl start firewalld

停止防火墙则使用:

systemctl stop firewalld

若想让防火墙在系统启动时自动启动,可使用:

systemctl enable firewalld

禁止防火墙开机自启,使用:

systemctl disable firewalld

例如,当我们新安装了CentOS7系统,想查看防火墙是否运行,就可以使用“systemctl status firewalld”命令。若发现防火墙未运行,而我们需要它运行,可以使用“systemctl start firewalld”启动它,再使用“systemctl enable firewalld”让它在系统下次启动时自动运行。

查看防火墙规则

查看当前防火墙的所有规则,使用以下命令:

firewall-cmd --list-all

该命令会显示当前防火墙的所有配置信息,包括允许的服务、端口等。若只想查看允许的服务,可使用:

firewall-cmd --list-services

查看允许的端口则使用:

firewall-cmd --list-ports

比如,我们在配置好防火墙后,想确认是否已经允许了HTTP服务,就可以使用“firewall-cmd --list-services”命令查看。

添加允许的服务

若要允许某个服务通过防火墙,可使用以下命令:

firewall-cmd --permanent --add-service=http

这里的“http”是服务名,此命令会将HTTP服务添加到防火墙允许的服务列表中。“--permanent”参数表示该配置会永久生效,若不使用该参数,配置只在本次会话中有效。添加完成后,需要重新加载防火墙配置使新规则生效:

firewall-cmd --reload

例如,我们搭建了一个Web服务器,需要允许HTTP和HTTPS服务,就可以分别使用“firewall-cmd --permanent --add-service=http”和“firewall-cmd --permanent --add-service=https”命令添加服务,然后使用“firewall-cmd --reload”使配置生效。

添加允许的端口

若要允许某个端口通过防火墙,使用命令:

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

这里“8080”是端口号,“tcp”是协议类型。同样,使用“--permanent”参数使配置永久生效,添加后需要重新加载防火墙配置:

firewall-cmd --reload

比如,我们部署了一个应用程序,该程序使用8080端口进行通信,就可以使用上述命令允许8080端口通过防火墙。

删除允许的服务

若要删除已经允许的服务,使用命令:

firewall-cmd --permanent --remove-service=http

删除后同样需要重新加载防火墙配置:

firewall-cmd --reload

例如,我们不再需要Web服务器提供HTTP服务,就可以使用此命令删除HTTP服务的允许规则。

删除允许的端口

删除已经允许的端口,使用:

firewall-cmd --permanent --remove-port=8080/tcp

然后重新加载配置:

firewall-cmd --reload

比如,我们停止了使用8080端口的应用程序,就可以删除该端口的允许规则。

设置防火墙区域

Firewalld有多个预定义的区域,如“public”(公共区域,默认区域,适用于公共网络)、“home”(家庭网络)、“work”(工作网络)等。可以使用以下命令查看所有可用的区域:

firewall-cmd --get-zones

查看当前默认区域:

firewall-cmd --get-default-zone

更改默认区域,例如将默认区域更改为“home”:

firewall-cmd --set-default-zone=home

将某个网络接口添加到指定区域,如将“eth0”接口添加到“home”区域:

firewall-cmd --permanent --zone=home --add-interface=eth0

重新加载配置:

firewall-cmd --reload

例如,当我们的服务器连接到家庭网络时,可以将默认区域设置为“home”,并将相应的网络接口添加到该区域。

配置富规则

富规则可以实现更复杂的防火墙规则配置。例如,允许某个IP地址段访问特定端口:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080" accept'

此规则允许IP地址段“192.168.1.0/24”的设备通过TCP协议访问8080端口。添加后重新加载配置:

firewall-cmd --reload

比如,我们只允许公司内部网络(IP段为192.168.1.0/24)访问服务器的8080端口,就可以使用上述富规则。

备份和恢复防火墙配置

备份防火墙配置可以使用以下命令:

firewall-cmd --permanent --backup

该命令会将当前的永久防火墙配置备份到一个文件中。恢复备份配置使用:

firewall-cmd --permanent --restore <备份文件名>

例如,在进行大规模防火墙配置更改之前,我们可以先进行备份,若更改出现问题,就可以恢复到之前的配置。

通过以上这些方法,我们可以全面地对CentOS7的防火墙进行配置与管理,确保服务器的网络安全。在实际操作中,要根据具体的网络环境和安全需求,合理地设置防火墙规则。