CentOS镜像中的防火墙设置教程
导读:CentOS镜像中firewalld防火墙设置教程(适用于CentOS 7及以上版本) 一、firewalld基础认知 firewalld是CentOS 7及以上版本的默认防火墙管理工具,采用动态管理模式,支持IPv4/IPv6双栈,允许实...
CentOS镜像中firewalld防火墙设置教程(适用于CentOS 7及以上版本)
一、firewalld基础认知
firewalld是CentOS 7及以上版本的默认防火墙管理工具,采用动态管理模式,支持IPv4/IPv6双栈,允许实时调整规则(无需重启服务),并通过**区域(Zone)**机制划分网络信任级别(如public、home、internal等)。默认区域为public
,适用于公网服务器。
二、firewalld安装(若未预装)
多数CentOS镜像已默认安装firewalld,可通过以下命令验证:
rpm -q firewalld
若未安装,执行以下命令安装:
sudo yum install -y firewalld
三、firewalld服务管理
- 启动firewalld:
sudo systemctl start firewalld
- 设置开机自启(避免重启后失效):
sudo systemctl enable firewalld
- 停止firewalld(临时禁用,生产环境不推荐):
sudo systemctl stop firewalld
- 禁用开机自启:
sudo systemctl disable firewalld
- 查看服务状态:
sudo systemctl status firewalld 查看服务运行状态 sudo firewall-cmd --state 查看firewalld是否激活
四、核心规则配置
1. 查看当前规则
- 查看所有开放端口与服务:
sudo firewall-cmd --list-all
- 仅查看开放端口:
sudo firewall-cmd --list-ports
- 查看所有可用服务:
sudo firewall-cmd --get-services
2. 添加规则(永久生效)
- 添加端口(如开放HTTP端口80/tcp、HTTPS端口443/tcp):
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
- 添加服务(如开放SSH服务,默认端口22/tcp):
sudo firewall-cmd --permanent --zone=public --add-service=ssh
- 添加富规则(高级场景,如允许特定IP访问):
sudo firewall-cmd --permanent --zone=public --add-rich-rule=& x27; rule family="ipv4" source address="192.168.1.100" accept& x27;
3. 删除规则(永久生效)
- 删除端口:
sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
- 删除服务:
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
- 删除富规则:
sudo firewall-cmd --permanent --zone=public --remove-rich-rule=& x27; rule family="ipv4" source address="192.168.1.100" accept& x27;
4. 重新加载配置
添加/删除规则后,必须执行以下命令使更改生效:
sudo firewall-cmd --reload
五、区域(Zone)管理
- 查看所有可用区域:
sudo firewall-cmd --get-zones
- 更改默认区域(如将默认区域设为
home
):sudo firewall-cmd --set-default-zone=home
- 将接口绑定到指定区域(如将
eth0
接口绑定到public
区域):sudo firewall-cmd --permanent --zone=public --change-interface=eth0 sudo firewall-cmd --reload
六、安全增强建议
- 启用SELinux:SELinux与firewalld配合,提供更细粒度的安全控制。确保SELinux处于
Enforcing
模式:sudo setenforce 1 临时启用 sudo vi /etc/selinux/config 设置SELINUX=enforcing(永久生效)
- 日志记录:开启firewalld日志,便于排查问题:
sudo firewall-cmd --permanent --zone=public --add-log-prefix="Firewall: " sudo firewall-cmd --reload
- 定期审计规则:每月检查一次防火墙规则,移除不必要的开放端口/服务。
七、常见问题解决
- 规则不生效:忘记执行
--reload
命令,或规则未添加--permanent
参数(临时规则重启后失效)。 - 无法启动firewalld:检查是否有其他防火墙工具(如iptables)冲突,可通过
systemctl stop iptables
停止冲突服务。 - 端口未开放:确认服务是否监听正确端口(
ss -tulnp | grep < port>
),并检查云服务商安全组设置(若有)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS镜像中的防火墙设置教程
本文地址: https://pptw.com/jishu/714964.html