《安全配置基线标准应用》
第4章 操作系统基线-Linux
4. 操作系统基线-Linux:用户权限管理、SSH安全配置、PAM模块配置
在Linux操作系统的安全基线建设中,用户权限管理、SSH安全配置与PAM模块配置是三大核心支柱。用户权限管理确保最小特权原则得以落地;SSH作为远程管理的生命线,其安全配置直接决定系统边界防护能力;PAM(可插拔认证模块)则提供了灵活的认证框架,是账户安全策略的“守门人”。本节将深入剖析这三项关键配置的标准与最佳实践。
4.1 用户权限管理
核心原则:最小权限、职责分离、默认拒绝。
4.1.1 用户与组管理基线
4.1.2 文件权限与特殊属性
- SUID/SGID 排查:查找并移除不必要的 SUID 文件
find / -perm /4000 -type f - 粘滞位设置:/tmp 目录必须设置粘滞位
chmod +t /tmp - umask 策略:全局 umask 设置为 027,确保新建文件默认权限安全
4.2 SSH安全配置
SSH 是远程管理的“大门”,安全配置至关重要。
4.2.1 核心配置项(/etc/ssh/sshd_config)
# 禁止 root 直接登录 PermitRootLogin no # 仅允许特定用户组登录 AllowGroups sshusers # 禁用密码认证,强制使用密钥 PasswordAuthentication no PubkeyAuthentication yes # 修改默认端口(非22) Port 2222 # 限制最大认证尝试次数 MaxAuthTries 3 # 空闲超时断开 ClientAliveInterval 300 ClientAliveCountMax 0 # 禁用不安全的协议版本 Protocol 2
4.2.2 密钥管理与轮换策略
- 密钥算法:优先使用 Ed25519,其次 RSA (4096位以上)
- 密钥轮换:每180天更换一次主机密钥和用户密钥
- known_hosts 管理:启用
StrictHostKeyChecking yes - SSH 代理转发:默认禁用
AllowAgentForwarding no
4.3 PAM模块配置
PAM(Pluggable Authentication Modules)提供灵活的认证机制,是账户安全的“策略引擎”。
4.3.1 PAM 配置结构
PAM 配置文件位于 /etc/pam.d/ 目录,每个服务对应一个文件。配置语法格式:
# 类型 控制标志 模块路径 参数 auth required pam_unix.so nullok_secure auth requisite pam_succeed_if.so uid >= 1000 quiet account required pam_unix.so password required pam_pwhistory.so remember=5 password required pam_cracklib.so minlen=12 dcredit=-1 ucredit=-1 session required pam_limits.so
4.3.2 关键安全配置项
4.3.3 账户锁定策略示例
# /etc/pam.d/system-auth 中添加 auth required pam_tally2.so deny=5 unlock_time=900 even_deny_root account required pam_tally2.so # 查看锁定状态 pam_tally2 --user=username # 手动解锁 pam_tally2 --user=username --reset
4.4 综合检查脚本示例
以下脚本可用于快速检查 Linux 系统在用户权限、SSH 和 PAM 方面的安全基线合规情况:
#!/bin/bash
# Linux 安全基线检查脚本(用户权限 + SSH + PAM)
echo "===== 用户权限检查 ====="
echo "UID 0 用户:"
awk -F: '($3==0){print $1}' /etc/passwd
echo "空口令账户:"
awk -F: '($2==""){print $1}' /etc/shadow 2>/dev/null
echo "SUID 文件列表:"
find / -perm /4000 -type f 2>/dev/null
echo -e "\n===== SSH 安全配置 ====="
grep -E "^(PermitRootLogin|PasswordAuthentication|Port)" /etc/ssh/sshd_config
echo -e "\n===== PAM 密码策略 ====="
grep -E "pam_cracklib|pam_pwhistory|pam_tally2" /etc/pam.d/system-auth 2>/dev/null || \
grep -E "pam_cracklib|pam_pwhistory|pam_tally2" /etc/pam.d/common-password 2>/dev/null
echo -e "\n检查完成。"
📌 核心要点:用户权限管理是基础,SSH 配置是防线,PAM 模块是策略引擎。三者联动构建 Linux 系统的纵深防御体系。