1. 等保2.0与安全计算环境基础认知
等保2.0时代的安全计算环境建设,本质上是对信息系统进行"体检+治疗"的过程。不同于等保1.0时期的 checklist 式合规,2.0版本更强调"一个中心三重防护"的动态防御理念。在CentOS 7这类主流Linux服务器上实施访问控制与安全审计时,需要特别注意标准中的以下核心条款:
-
访问控制(G3):要求实现主体(用户)对客体(文件、进程等)的精细化管理,包括但不限于权限最小化、角色分离、特权命令管控等。实测中发现,超过60%的服务器入侵事件源于权限配置不当。
-
安全审计(G2):需记录用户行为、系统事件和异常操作,审计范围应覆盖所有特权用户。某金融企业案例显示,完善的审计日志曾帮助其追溯出内部员工的数据泄露行为。
CentOS 7作为等保2.0三级系统的典型部署环境,其安全基线配置需特别关注:
bash复制# 基础环境检查命令
cat /etc/redhat-release # 确认系统版本
uname -a # 核对内核版本
sestatus # 查看SELinux状态
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 访问控制实战精要
2.1 文件系统权限治理
/etc目录下的关键配置文件权限必须严格管控。建议采用以下加固方案:
bash复制# 关键文件权限设置示例
chmod 600 /etc/passwd /etc/shadow
chmod 644 /etc/group
chown root:root /etc/crontab
对于需要特殊权限的应用场景,推荐使用ACL(访问控制列表)而非简单的chmod:
bash复制# ACL设置示例:允许dev组读写日志文件
setfacl -Rm g:dev:rw /var/log/app_logs
getfacl /var/log/app_logs # 验证ACL设置
踩坑提示:CentOS 7默认文件系统是xfs,使用
lsattr检查不可变属性时,注意xfs与ext4的特性差异。
2.2 SSH访问控制策略
结合等保要求的"网络边界访问控制",建议采用白名单机制:
bash复制# /etc/ssh/sshd_config 关键配置
AllowUsers admin@192.168.1.* webmaster@10.0.0.5
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 1m
配合TCP Wrappers实现双重控制:
bash复制# /etc/hosts.allow 示例
sshd: 192.168.1.0/24
# /etc/hosts.deny
sshd: ALL
2.3 sudo权限精细化管控
避免直接分配root权限,建议按角色划分sudo规则:
bash复制# /etc/sudoers.d/admin_policy 示例
User_Alias DB_ADMINS = alice,bob
Cmnd_Alias DB_CMDS = /usr/bin/mysql*, /usr/bin/mysqldump
DB_ADMINS ALL=(root) NOPASSWD: DB_CMDS
Defaults logfile=/var/log/sudo.log
3. 安全审计深度配置
3.1 auditd审计系统部署
等保2.0明确要求审计记录包含事件日期、类型、主体标识和结果:
bash复制# 安装并启用服务
yum install audit -y
systemctl enable --now auditd
# 关键审计规则示例
-a always,exit -F arch=b64 -S execve -k process_exec
-w /etc/passwd -p wa -k identity_manage
-w /var/log/secure -p wa -k auth_logs
使用ausearch查询特定事件的技巧:
bash复制ausearch -k identity_manage -ts today # 查身份管理相关事件
ausearch -sc login -i # 格式化显示登录事件
3.2 集中日志管理方案
推荐使用ELK栈实现日志集中分析:
- 安装Filebeat收集日志
bash复制yum install filebeat -y
vim /etc/filebeat/filebeat.yml
- 配置发送到Logstash的模块:
yaml复制filebeat.inputs:
- type: log
paths:
- /var/log/audit/audit.log
- /var/log/secure
output.logstash:
hosts: ["logstash.example.com:5044"]
3.3 数据库审计特别注意事项
MySQL审计插件配置要点:
sql复制INSTALL PLUGIN audit_log SONAME 'audit_log.so';
SET GLOBAL audit_log_format=JSON;
SET GLOBAL audit_log_policy=ALL;
对于Oracle数据库,建议启用统一审计:
sql复制AUDIT ALL BY ACCESS WHENEVER SUCCESSFUL;
AUDIT SELECT TABLE, UPDATE TABLE BY scott;
4. 合规检查与持续运维
4.1 等保自查脚本开发
编写自动化检查脚本示例:
bash复制#!/bin/bash
# 检查密码策略
grep -E '^PASS_MAX_DAYS|^PASS_MIN_DAYS' /etc/login.defs
# 检查空密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow
# 检查SUID文件
find / -perm -4000 -type f 2>/dev/null
4.2 常见不符合项整改
根据测评经验,高频问题包括:
- 审计记录留存不足6个月 → 解决方案:
bash复制# 修改auditd配置
vim /etc/audit/auditd.conf
max_log_file_action = keep_logs
num_logs = 12
- 未禁用不必要的服务 → 处理方案:
bash复制systemctl disable rpcbind
systemctl mask avahi-daemon
4.3 安全加固后的性能调优
审计规则优化策略:
- 使用
-F字段过滤减少冗余日志 - 对高频操作采用抽样审计:
bash复制-a always,exit -F arch=b64 -S open -F success=1 -F dir=/etc -F perm=wa -k config_mod -S 10
对于高负载服务器,建议调整auditd队列参数:
bash复制vim /etc/audit/auditd.conf
q_depth = 1024
overflow_action = syslog
我在某政务云项目中的实际经验是:先通过auditctl -l查看当前规则CPU占用,再用perf top定位热点,最后用-F条件精准缩小审计范围。某次优化后将审计日志量减少了78%,同时不影响合规要求。
