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系统防火墙的基本配置,保障系统安全的同时允许合法流量访问。