CentOS防火墙安全策略如何制定
导读:CentOS防火墙安全策略制定指南 CentOS系统中,firewalld是默认的防火墙管理工具(CentOS 7及以上版本),其通过“区域(Zone)”概念组织规则,实现分级流量控制。以下是制定安全策略的具体步骤: 1. 基础准备:安装与...
CentOS防火墙安全策略制定指南
CentOS系统中,firewalld
是默认的防火墙管理工具(CentOS 7及以上版本),其通过“区域(Zone)”概念组织规则,实现分级流量控制。以下是制定安全策略的具体步骤:
1. 基础准备:安装与启动firewalld
确保firewalld已安装并运行:
# 安装firewalld(若未安装)
sudo yum install firewalld -y
# 启动服务并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld
验证状态:
sudo firewall-cmd --state # 应返回“running”
2. 配置默认区域策略(第一道防线)
firewalld预定义了public
(公共)、home
(家庭)、work
(工作)等区域,其中public
为默认区域(适用于对外提供服务的主机)。核心原则:默认拒绝所有未明确允许的流量。
- 查看当前默认区域:
sudo firewall-cmd --get-default-zone
- 修改默认区域(如设为
public
,更严格):sudo firewall-cmd --set-default-zone=public
- 将网络接口绑定到对应区域(如eth0绑定到
public
):sudo firewall-cmd --zone=public --add-interface=eth0 --permanent sudo firewall-cmd --reload
3. 最小化开放端口(减少攻击面)
仅开放业务必需的端口,避免不必要的服务暴露:
- 开放单个端口(如HTTP的80/tcp、SSH的22/tcp):
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
- 开放服务(更便捷,自动关联端口)(如
http
、https
、ssh
):sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --add-service=https --permanent
- 移除不必要的端口(如关闭闲置的9001/tcp):
sudo firewall-cmd --zone=public --remove-port=9001/tcp --permanent
- 重新加载配置使更改生效:
sudo firewall-cmd --reload
- 查看当前开放的端口和服务:
sudo firewall-cmd --zone=public --list-ports # 查看开放端口 sudo firewall-cmd --zone=public --list-services # 查看开放服务
4. 使用富规则(Rich Rules)实现精细化控制
富规则支持基于IP地址、协议、时间段、用户等条件的复杂过滤,提升安全性:
- 允许特定IP访问SSH(如仅允许公司IP 192.168.1.100访问22端口):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
- 拒绝特定IP段访问Web服务(如拒绝192.168.2.0/24访问80端口):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="80" reject'
- 限制时间段访问(如仅允许上班时间(9:00-18:00)访问80端口):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept time start="09:00" end="18:00"'
- 重新加载配置:
sudo firewall-cmd --reload
5. 配置日志记录(监控与审计)
启用日志记录可追踪防火墙活动,便于排查异常:
- 设置日志前缀(如“Firewall:”):
sudo firewall-cmd --permanent --add-log-prefix="Firewall: "
- 调整日志级别(如记录拒绝的流量):
sudo firewall-cmd --permanent --set-log-denied=all # 记录所有拒绝的流量(可选:all/unicast/broadcast/multicast)
- 查看实时日志(过滤firewalld相关记录):
sudo tail -f /var/log/messages | grep firewalld
6. 结合SELinux增强安全(深度防御)
SELinux是CentOS的安全增强模块,可与firewalld协同工作:
- 启用SELinux(临时生效):
sudo setenforce 1
- 永久生效:编辑
/etc/selinux/config
,将SELINUX=enforcing
(强制模式,推荐)。 - 配置SELinux端口标签(如允许SSH使用非标准端口2222):
sudo semanage port -a -t ssh_port_t -p tcp 2222
7. 定期维护与优化
- 定期审查规则:每月检查一次
firewall-cmd --list-all
,移除不再需要的端口或规则。 - 更新firewalld:及时升级firewalld以修复安全漏洞:
sudo yum update firewalld -y
- 备份规则:定期备份配置文件(
/etc/firewalld/
目录),便于恢复:sudo tar -czvf firewalld_backup.tar.gz /etc/firewalld/
通过以上步骤,可构建一个最小化开放、精细化控制、可监控审计的CentOS防火墙安全策略,有效降低服务器遭受攻击的风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS防火墙安全策略如何制定
本文地址: https://pptw.com/jishu/723526.html