CentOS防火墙管理指南(基于firewalld)
CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,替代了传统的iptables。以下是firewalld的核心管理操作,涵盖生命周期、端口/服务配置及状态检查等场景:
通过systemctl命令控制firewalld服务的启动、停止及开机自启:
systemctl start firewalld.servicesystemctl stop firewalld.servicesystemctl restart firewalld.service(修改规则后需重启使配置生效)systemctl status firewalld.service(显示“active (running)”表示运行中)systemctl enable firewalld.service(系统启动时自动启动)systemctl disable firewalld.service(禁止系统启动时自动启动)查看防火墙整体状态:
firewall-cmd --state:快速确认防火墙是否运行(返回“running”表示运行中)。systemctl status firewalld:查看更详细的运行状态(包括是否开机自启)。查看当前开放的端口与服务:
firewall-cmd --zone=public --list-ports:列出public区域(默认区域)下所有开放的TCP/UDP端口。firewall-cmd --zone=public --list-services:列出public区域下所有允许的服务(如http、https、ssh等,服务名称对应预定义的端口规则)。查看指定接口所属区域:
firewall-cmd --get-zone-of-interface=eth0(将“eth0”替换为实际网卡名称):确认网卡所属的安全区域,不同区域的规则独立配置。firewalld支持临时(重启后失效)和永久(重启后保留)两种规则配置,生产环境建议使用永久规则+reload生效。
firewall-cmd --zone=public --add-port=80/tcp --permanent(开放TCP协议的80端口,适用于HTTP服务)firewall-cmd --zone=public --add-port=443/tcp --permanent(开放HTTPS服务的443端口)--permanent参数,如firewall-cmd --zone=public --add-port=8080/tcp(仅当前会话有效)。firewall-cmd --zone=public --remove-port=80/tcp --permanent(移除80端口的开放规则)。--permanent参数,如firewall-cmd --zone=public --remove-port=8080/tcp。firewall-cmd --reload(重新加载配置),否则临时规则不会更新,永久规则不会应用。firewalld内置了常见服务(如http、ssh、ftp等)的端口规则,可通过服务名称快速配置,避免手动输入端口号。
firewall-cmd --zone=public --add-service=http --permanent(开放http服务,默认端口80/tcp)firewall-cmd --zone=public --add-service=https --permanent(开放https服务,默认端口443/tcp)firewall-cmd --zone=public --add-service=ssh --permanent(开放ssh服务,默认端口22/tcp,允许远程登录)firewall-cmd --zone=public --remove-service=http --permanent(移除http服务的开放规则)。firewall-cmd --get-services(列出所有预定义的服务名称,如ftp、mysql、smtp等)。firewall-cmd --query-service ssh(返回“yes”表示ssh服务已开放,“no”表示未开放)。firewall-cmd --get-active-zones(显示当前活动的安全区域及绑定的接口);firewall-cmd --zone=public --list-all(查看public区域的完整配置,包括端口、服务、源IP等)。firewall-cmd --panic-on(启用紧急模式,拒绝所有入站流量,仅允许本地回环);firewall-cmd --panic-off(关闭紧急模式,恢复正常访问)。firewall-cmd --query-panic(返回“yes”表示处于紧急模式,“no”表示正常)。/etc/firewalld/目录下的配置文件(如public.xml),便于恢复。http://服务器IP:80),确认规则生效。