CentOS防火墙(firewalld)使用指南
firewalld是CentOS 7及以上版本默认的防火墙管理工具,支持动态配置、区域(Zone)划分和富规则(Rich Rules),能有效控制网络流量。以下是其核心用法:
systemctl status firewalld # 查看服务状态(active表示运行中)
firewall-cmd --state # 直接查看防火墙状态(running表示运行中)
systemctl start firewalld # 启动防火墙
systemctl stop firewalld # 停止防火墙
systemctl enable firewalld # 开机自启
systemctl disable firewalld # 禁止开机自启
systemctl restart firewalld # 重启服务
--permanent表示永久生效(需重载配置)。firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放80端口
firewall-cmd --reload # 重载配置使变更生效
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 关闭80端口
firewall-cmd --reload # 重载配置
firewall-cmd --zone=public --list-ports # 查看public区域的开放端口
firewalld内置了常见服务(如SSH、FTP、MySQL)的规则,可直接通过服务名管理,无需记忆端口号。
firewall-cmd --zone=public --add-service=ssh --permanent # 开放SSH服务(默认端口22)
firewall-cmd --reload # 重载配置
firewall-cmd --zone=public --remove-service=ssh --permanent # 关闭SSH服务
firewall-cmd --reload # 重载配置
firewall-cmd --zone=public --list-services # 查看public区域的开放服务
富规则(Rich Rules)支持更细粒度的控制,如限制特定IP地址、端口范围或协议。
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept'
firewall-cmd --reload # 重载配置
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.200" reject'
firewall-cmd --reload # 重载配置
firewall-cmd --permanent --zone=public --add-port=3000-4000/tcp
firewall-cmd --reload # 重载配置
区域是firewalld的核心概念,代表不同的信任级别(如public、home、internal),每个区域包含预定义的规则集。
firewall-cmd --get-zones # 查看所有可用区域
firewall-cmd --get-default-zone # 查看默认区域
firewall-cmd --set-default-zone=home # 设置默认区域为home
firewall-cmd --get-active-zones # 查看活动区域及接口
firewall-cmd --reload # 重新加载配置
firewall-cmd --complete-reload # 完全重载配置
firewall-cmd --flush-rules # 清空所有规则
--permanent参数,否则重启后会失效。/etc/firewalld/目录下的文件(如public.xml)。通过以上命令,可满足CentOS系统日常防火墙管理需求,保障服务器网络安全。