一、身份鉴别(等保要求:强密码 + 登录控制)

✅ 1.1 密码复杂度策略(必须启用 pam_pwquality

# CentOS/RHEL/麒麟
echo "password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1" >> /etc/pam.d/system-auth

# Ubuntu/统信
echo "password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1" >> /etc/pam.d/common-password

要求:至少8位,含大小写字母、数字、特殊字符

✅ 1.2 密码有效期 ≤ 90天,到期前7天提醒

# 修改 /etc/login.defs
sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS   90/' /etc/login.defs
sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS   0/' /etc/login.defs
sed -i 's/^PASS_WARN_AGE.*/PASS_WARN_AGE   7/' /etc/login.defs

✅ 1.3 登录失败5次,锁定30分钟

# 配置 PAM faillock(CentOS 7+/麒麟 V10+)
echo "auth required pam_faillock.so preauth silent deny=5 unlock_time=1800" >> /etc/pam.d/system-auth
echo "auth [default=die] pam_faillock.so authfail deny=5 unlock_time=1800" >> /etc/pam.d/system-auth
echo "account required pam_faillock.so" >> /etc/pam.d/system-auth

验证:faillock --user testuser

二、访问控制(最小权限 + 账号清理)

✅ 2.1 禁用或删除无用账号(如 games、ftp、news)

# 锁定无用账号
for user in games ftp news uucp; do
  if id "$user" &>/dev/null; then
    usermod -L "$user"
    echo "已锁定账号: $user"
  fi
done

✅ 2.2 root 账号禁止远程 SSH 登录

# 修改 /etc/ssh/sshd_config
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd

✅ 2.3 设置超时自动登出(10分钟)

echo "TMOUT=600" >> /etc/profile
echo "readonly TMOUT" >> /etc/profile
echo "export TMOUT" >> /etc/profile

三、安全审计(等保核心!必须开!)

✅ 3.1 启用 rsyslog + auditd 双审计

# 启用 auditd(记录关键系统调用)
systemctl enable --now auditd
# 配置关键审计规则(/etc/audit/rules.d/protect.rules)
cat > /etc/audit/rules.d/protect.rules <<EOF
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/sudoers -p wa -k priv_esc
-a always,exit -F arch=b64 -S execve -k exec
EOF

# 重启生效
augenrules --load

✅ 3.2 日志留存 ≥ 180天,且不可篡改

# 配置 rsyslog 远程备份(建议对接 SIEM)
echo "*.info;mail.none;authpriv.none;cron.none @your-siem-server:514" >> /etc/rsyslog.conf

# 本地日志权限加固
chmod 600 /var/log/*.log
chown root:root /var/log/*.log

四、入侵防范(漏洞 + 补丁管理)

✅ 4.1 关闭不必要的服务(如 avahi、cups、postfix)

systemctl disable --now avahi-daemon cups postfix

✅ 4.2 定期更新系统(建立补丁管理流程)

# 创建补丁检查脚本(每月执行)
echo "0 3 1 * * /usr/bin/yum check-update --security | mail -s 'Security Updates' admin@company.com" >> /var/spool/cron/root

要求:高危漏洞 7天内修复,中危 30天内

五、恶意代码防范

✅ 5.1 部署主机防病毒软件(等保三级强制要求)

国产环境推荐:
奇安信网神主机卫士
启明星辰天珣
华为云主机安全(HSS)

✅ 5.2 禁用 USB 自动挂载(防摆渡攻击)

# 创建 udev 规则禁用 USB 存储
echo 'SUBSYSTEM=="usb", ATTR{bDeviceClass}=="00", ACTION=="add", RUN+="/bin/sh -c \"echo 0 > /sys$DEVPATH/authorized\"'" > /etc/udev/rules.d/99-disable-usb-storage.rules

六、资源控制(防 DoS)

✅ 6.1 限制用户进程数 & 内存(通过 limits.conf)

# /etc/security/limits.conf
cat >> /etc/security/limits.conf <<EOF
* soft nproc 100
* hard nproc 200
* soft as 2048000
* hard as 4096000
root soft nproc unlimited
root hard nproc unlimited
EOF

✅ 6.2 配置内核参数防 SYN Flood

# /etc/sysctl.conf
cat >> /etc/sysctl.conf <<EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_syn_retries = 2
EOF
sysctl -p

写在最后

等保不是“打补丁”,而是“建基线”。

一个合规的 Linux 系统,

不是装完就安全,

而是每一行配置,都经得起审计。

建议将本文清单纳入你的《系统上线 checklist》,

让安全,从第一天开始!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐