等保三级配置入门:零基础也能用的服务器安全加固指南
为什么你需要等保三级配置?
等保三级是国家对非银行类信息系统的基本安全要求。
很多人在实际配置时看到几十项条款就蒙了,其实核心就十几条。
本文挑出最常见、最容易违规的部分,用命令告诉你每一步怎么做,配完还能用命令验证。
适合CentOS 7/8、Ubuntu 20.04+。
第一步:加固密码策略
等保要求密码必须满足长度、复杂度、定期更换。
编辑 /etc/pam.d/system-auth 和 /etc/security/pwquality.conf(若不存在则创建)。
# 设置密码最少8位,至少包含1个大写、1个小写、1个数字、1个特殊字符
# 在 /etc/security/pwquality.conf 中设置:
minlen = 8
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
然后设置密码过期天数90天,提前警告7天:
vi /etc/login.defs
# 找到以下行修改:
PASS_MAX_DAYS 90
PASS_WARN_AGE 7
验证:chage -l <用户名> 可以看到密码最大天数是否90。
第二步:登录失败锁定及超时退出
防止暴力破解,连续5次失败锁定账号5分钟。
编辑 /etc/pam.d/system-auth 或 password-auth,在 auth 首行添加:
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300
同时设置SSH空闲超时自动退出,编辑 /etc/ssh/sshd_config:
ClientAliveInterval 300
ClientAliveCountMax 0
然后重启ssh服务 systemctl restart sshd。
验证:故意输错密码5次,看是否被锁定;pam_tally2 -u <用户名> 可查看失败次数。
第三步:最小权限与禁用root远程登录
创建普通用户加入wheel组,分配sudo权限:
useradd -m -G wheel zhangsan
passwd zhangsan
在 /etc/sudoers 中确保 %wheel ALL=(ALL) ALL 前面没有注释。
禁用root直接SSH登录:
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
systemctl restart sshd
验证:用root尝试ssh,应该被拒绝;
用普通用户ssh后通过sudo执行命令正常。
第四步:开启审计日志与时间同步
安装auditd并启动:
yum install -y audit; systemctl enable --now auditd
配置监控关键文件(如 /etc/passwd、/etc/shadow),在 /etc/audit/rules.d/audit.rules 添加:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
重启auditd service auditd restart。
时间同步用chrony或ntp:
yum install -y chrony
systemctl enable --now chronyd
chronyc sources -v # 查看同步状态
验证:ausearch -k identity -ts today 可看到今天对passwd文件的改动记录。
避坑指南
- 修改pam配置前先备份原文件,以免导致所有用户无法登录。
- auditd规则过多会占满磁盘,建议同时配置审计日志轮转(logrotate)。
- 禁用root登录后,务必确保有sudo权限的普通用户能登录,否则会被锁在外面。
常见问题
Q1:配置完密码策略,现有用户密码不符合怎么办?
强制用户下次登录修改密码:chage -d 0 <用户名>
Q2:auditd日志多大合适?
默认50MB,可修改 /etc/audit/auditd.conf 中的 max_log_file 调整。
Q3:时间同步不成功怎么办?
检查防火墙是否放行NTP端口(123/UDP),或者换国内时间服务器,比如 ntp.aliyun.com。
效果验证汇总
完成上述所有步骤后,你可以用以下命令一次性检查核心配置是否生效:
# 查看密码策略
chage -l root | grep -E "Maximum|Warning"
# 查看登录失败锁定配置
grep pam_tally2 /etc/pam.d/system-auth
# 查看SSH禁用root
grep PermitRootLogin /etc/ssh/sshd_config
# 查看审计规则
auditctl -l
# 查看时间同步状态
timedatectl status
只要命令返回预期的值,你的服务器就基本满足等保三级的核心要求了。
如果遇到报错,先看对应日志 /var/log/messages 或 /var/log/secure,大部分问题都能找到线索。