1、CentOS 防火墙
基本概念:CentOS 7 及更高版本的默认防火墙是firewalld
,它提供了动态管理防火墙规则的功能。firewalld
支持网络/防火墙区域(zones)、服务和端口的配置,并且可以实时更新防火墙规则而无需重启服务。
主要功能:firewalld
允许用户通过命令行工具firewallcmd
来管理防火墙规则,包括添加、删除、修改端口和服务的规则,查看防火墙状态和配置等。
2、启动和停止防火墙
启动防火墙:使用systemctl start firewalld
命令可以启动firewalld
服务,启动后,可以使用systemctl status firewalld
命令确认防火墙已运行。
停止防火墙:使用systemctl stop firewalld
命令可以停止firewalld
服务,停止后,可以使用systemctl status firewalld
命令确认防火墙已停止。
重启防火墙:使用systemctl restart firewalld
命令可以重启firewalld
服务,这通常用于在修改防火墙规则后使新规则生效。
3、防火墙开机自启动设置
启用开机自启动:使用systemctl enable firewalld
命令可以将firewalld
设置为开机自启动,这意味着系统每次启动时都会自动启动防火墙服务。
禁用开机自启动:使用systemctl disable firewalld
命令可以取消firewalld
的开机自启动设置,这意味着系统启动时不会自动启动防火墙服务。
4、查看防火墙状态和版本
查看防火墙状态:使用systemctl status firewalld
命令可以查看firewalld
服务的当前状态,包括是否正在运行、是否有错误信息等。
查看防火墙版本:使用firewallcmd version
命令可以查看firewalld
的版本号,这对于了解特定版本的功能和特性很有帮助。
5、配置和管理防火墙规则
查看防火墙状态:使用firewallcmd state
命令可以查看防火墙的当前状态,例如是否处于运行状态。
查看所有打开的端口:使用firewallcmd zone=public listports
命令可以查看在public
区域内所有打开的端口。
开放或关闭端口:使用firewallcmd zone=public addport=80/tcp permanent
命令可以永久开放 80 端口,使用firewallcmd reload
命令可以使更改生效,同样,可以使用removeport
参数来关闭端口。
添加和移除服务:使用firewallcmd zone=public addservice=http permanent
命令可以永久添加 HTTP 服务到防火墙规则中,使用firewallcmd reload
命令使更改生效,同样,可以使用removeservice
参数来移除服务。
配置 IP 地址伪装和端口转发:使用firewallcmd zone=external addmasquerade
命令可以开启 IP 地址伪装,使用firewallcmd zone=external addforwardport=22:port=3753
命令可以将 TCP 端口 22 的流量转发到 3753 端口。
6、常见问题解答
如何更改防火墙的区域?:可以使用firewallcmd setdefaultzone=<zone_name>
命令来更改默认的区域,例如firewallcmd setdefaultzone=drop
将默认区域设置为drop
。
如何恢复默认的防火墙设置?:可以使用firewallcmd resettodefault
命令来重置防火墙到默认设置,然后使用firewallcmd runtimetopermanent
命令将当前的运行时配置保存为永久配置。
CentOS 防火墙的启动和管理主要依赖于firewalld
服务和firewallcmd
命令,通过这些工具,用户可以方便地管理防火墙的状态、规则和配置,以确保系统的安全性和可靠性。