CentOS 系统安全检查清单
一 身份鉴别与账户安全
awk -F: '($2 == "") {print $1}' /etc/shadow;任何输出即为风险账户。awk -F: '($3 == 0) {print $1}' /etc/passwd | grep -v root;如有结果需立即核查与整改。/etc/login.defs 中 PASS_MAX_DAYS、PASS_MIN_LEN、PASS_MIN_DAYS、PASS_WARN_AGE 是否满足复杂度与更换周期要求;同时检查 PAM 复杂度模块(如 pam_cracklib 或 pam_pwquality)是否启用。/etc/pam.d/system-auth 或相应 PAM 配置中查看是否配置 pam_tally2.so/pam_faillock.so(如 deny=6 unlock_time=300);在 /etc/profile、/etc/bashrc 或 /etc/profile.d/*.sh 中检查 TMOUT=600(10 分钟无操作自动退出)。/etc/pam.d/su 是否限制仅特定组(如 wheel)可 su 到 root;核查 /etc/securetty 是否限制 root 远程登录终端。二 日志审计与完整性
service auditd status 或 systemctl status auditd;查看规则 auditctl -l;审计日志与配置应受保护并定期备份。/var/log/secure(认证日志)、/var/log/messages 正常采集;使用 journalctl -xe 排查异常;对关键日志配置日志轮转(/etc/logrotate.conf 与 /etc/logrotate.d/*)。/var/log/secure 中检索 Failed、refused 等关键字,配合 fail2ban 是否已部署并有效拦截。rpm -Va 校验关键系统包(关注 /sbin、/bin、/usr/sbin、/usr/bin);查找SUID/SGID 文件:find / -type f \( -perm -4000 -o -perm -2000 \) -ls;查找无属主/异常权限文件:find / \( -nouser -o -nogroup \) -ls、find / -perm -777 -ls;查找隐藏/可疑大文件:find / -name ".*" -ls、find / -size +10000k -ls。三 网络与端口安全
systemctl status firewalld;firewall-cmd --list-all;仅开放业务必需端口与服务,遵循最小暴露面原则。netstat -ntlp 或 ss -lntp;识别并关闭不必要/高危端口与进程。ip link | grep PROMISC;非嗅探/安全设备处于混杂模式需重点核查。/etc/hosts.allow、/etc/hosts.deny 是否对管理终端与来源网段做了白名单/黑名单限制。cat /etc/ssh/sshd_config 确认 Protocol 2、PermitRootLogin no、PasswordAuthentication no(已部署密钥时)、AllowUsers/AllowGroups 已收紧;Banner none 或自定义 /etc/motd,避免泄露系统信息。四 服务、进程与文件系统
ps -aux 关注 UID=0 的异常进程;lsof -p <PID> 查看进程打开的文件、端口与库;lsof -i 检查异常网络连接。crontab -u root -l、cat /etc/crontab、ls /etc/cron.*;排查异常定时任务与未知脚本。systemctl list-units --type=service --state=running;关闭不需要的系统服务与高危端口;遵循最小安装原则,减少攻击面。/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/root/ 等应为仅 root 可写;必要时使用 chattr +i 保护关键口令文件;核查 umask 设置与全局可写目录。五 漏洞扫描与持续监控
yum update -y;仅安全更新可用 yum update --security;离线环境建立本地仓库/镜像与补丁台账。