CentOS系统防火墙(firewalld)基础设置指南
CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,支持动态规则调整、区域化控制和持久化配置。以下是常见操作的详细步骤:
若系统未预装firewalld,可通过以下命令安装:
sudo yum install firewalld -y
安装完成后,启动服务并设置为开机自启:
sudo systemctl start firewalld # 启动firewalld
sudo systemctl enable firewalld # 开机自动启动
sudo systemctl status firewalld
若显示“active (running)”,则表示服务正常运行。sudo firewall-cmd --get-default-zone
默认区域通常为public(适用于公共网络环境)。sudo firewall-cmd --get-active-zones
若需允许外部访问特定端口(如HTTP的80端口、HTTPS的443端口),可使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp # 开放HTTP端口
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp # 开放HTTPS端口
说明:--permanent表示规则永久生效,需配合--reload命令使更改立即生效。
firewalld内置了常见服务(如SSH、FTP、MySQL)的规则,可直接开放服务而非手动指定端口:
sudo firewall-cmd --permanent --zone=public --add-service=ssh # 开放SSH服务(22端口)
sudo firewall-cmd --permanent --zone=public --add-service=http # 开放HTTP服务
sudo firewall-cmd --permanent --zone=public --add-service=https # 开放HTTPS服务
若需限制仅特定IP可访问服务器(如运维人员的管理IP),可使用rich-rule:
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.1.100' accept" # 允许单个IP
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' accept" # 允许IP段
若需屏蔽恶意IP,可使用reject规则:
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.1.200' reject" # 禁止单个IP
修改规则后,必须执行以下命令使更改生效:
sudo firewall-cmd --reload
注意:--reload不会中断现有连接,仅应用新规则;若需彻底重置防火墙,可使用sudo firewall-cmd --complete-reload(会中断现有连接)。
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services
sudo firewall-cmd --list-all
若需临时关闭防火墙(不推荐生产环境使用):
sudo systemctl stop firewalld
若需永久禁用防火墙(关闭开机自启):
sudo systemctl disable firewalld
--reload命令,或检查是否有其他防火墙工具(如iptables)冲突。netstat -tulnp | grep 端口号检查),并检查SELinux是否阻止访问(可通过setenforce 0临时关闭SELinux测试)。通过以上步骤,可完成CentOS系统防火墙的基本配置,保障系统安全的同时允许合法流量访问。