等保三级服务器合规配置细则:等保三级服务器合规配置细则
符合等保三级要求的服务器配置,核心包括身份鉴别、访问控制、安全审计、入侵防范和数据备份五大部分。
下面按零基础可执行的方式,以 CentOS 7/8(或其他 RHEL 系)为例逐步说明。
准备条件
- 一台已安装 CentOS 7/8 或 Ubuntu 20.04 以上版本的服务器(云服务器或物理机均可)。
- 使用 root 用户或具有 sudo 权限的普通用户登录。
- 建议先通过快照或备份做好系统恢复点。
第一步:系统安全基线设置(密码策略与登录控制)
等保三级要求密码长度不少于 8 位,包含大小写字母、数字和特殊字符,且定期更换。
修改密码复杂度策略
编辑 /etc/security/pwquality.conf:
vim /etc/security/pwquality.conf
设置以下行:
minlen = 8
minclass = 4
maxrepeat = 3
保存后执行 authconfig --update 使配置生效。
锁定连续失败登录
编辑 /etc/pam.d/password-auth 和 /etc/pam.d/system-auth,在 auth 部分添加:
auth required pam_tally2.so deny=3 unlock_time=300
表示连续输错 3 次密码后锁定 5 分钟。
第二步:身份鉴别与访问控制加固
SSH 密钥登录并禁用 root 密码登录
编辑 /etc/ssh/sshd_config:
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
保存后重启 sshd:systemctl restart sshd。
配置 sudo 权限最小化
为日常管理用户单独创建 sudo 规则,例如允许 adminuser 执行所有命令但记录日志:
visudo -f /etc/sudoers.d/adminuser
内容:
adminuser ALL=(ALL) ALL
第三步:启用并配置审计服务(auditd)
etc/audit/rules.d/audit.rules 添加关键文件或系统调用的审计规则,例如监控 /etc/passwd 变更:
-w /etc/passwd -p wa -k identity
重启 auditd:service auditd restart。
查看审计日志:ausearch -k identity。
第四步:入侵防范与日常扫描
安装并启用 fail2ban 防御暴力登录:
yum install epel-release -y
yum install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
systemctl enable fail2ban --now
检查状态:fail2ban-client status。
第五步:数据备份与恢复方案
使用 cron 和 rsync 实现每日备份到远程存储(如另一台服务器或对象存储)。
示例备份脚本(/usr/local/bin/backup.sh)
#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
rsync -avz --delete /data/ remote_user@192.168.1.100:/data_backup/
tar czf $BACKUP_DIR/etc.tar.gz /etc
添加定时任务:
crontab -e
0 2 * * * /usr/local/bin/backup.sh
验证合规状态
- 检查密码策略是否生效:
chage -l查看密码最大天数(应 ≤90)。 - 测试登录失败锁定:连续输入错误密码 3 次,观察是否锁定。
- 确认审计日志生成:
auditctl -l查看已加载规则,ausearch –start today查看今日事件。 - 检查备份文件是否存在:
ls /backup/应有当天日期目录。
高频问题解答
Q1:等保三级一定要用防火墙吗?
是的。
建议启用 firewalld(CentOS)或 ufw(Ubuntu),并只放行业务所需端口,策略默认丢弃。
Q2:审计日志占用太多磁盘怎么办?
调整 /etc/audit/auditd.conf 中的 max_log_file_action = ROTATE 并设置 max_log_file = 50(单位 MB),
避免日志撑爆磁盘。
Q3:备份策略需要满足什么要求?
等保三级要求至少每天全量备份一次,保留至少 30 天,且备份数据与生产环境物理隔离(如异地存储)。
Q4:为什么配置了 fail2ban 还是被暴力破解?
检查 jail.local 中 action 是否设为 action_mwl(发邮件+封禁),以及 bantime 是否足够长(建议至少 600 秒)。
同时确认 fail2ban 状态为 active。