Linux账号安全需系统性加固:清理锁定高风险账号、强化密码策略与生命周期管理、严控SSH远程登录、精细化权限分配与审计。

Linux 账号安全是整个系统防护的第一道门。加固不是堆砌命令,而是围绕“谁可以登录、用什么方式登录、能做什么、密码是否可靠”这四个核心问题系统性收口。
清理与锁定高风险账号
先清点系统里有哪些人——尤其要揪出不该存在的“影子账户”:
- 执行 awk -F: '($3 == 0) {print $1}' /etc/passwd,确认 UID 为 0 的只有 root;发现其他账户(如 admin、test)必须立即处理:用 passwd -l 用户名 锁定,或 userdel -r 用户名 彻底删除
- 查空密码账户:awk -F: '($2 == "") {print $1}' /etc/shadow;对结果中的用户强制设密:passwd 用户名
- 禁用默认系统账号(如 sync、shutdown、halt),它们通常不需要登录 shell:usermod -s /sbin/nologin 用户名
强化密码策略与生命周期管理
仅靠“改个密码长度”远远不够,得让策略真正生效并持续约束:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 编辑 /etc/login.defs 设置新用户默认策略:
PASS_MAX_DAYS 90(90天必须换)、
PASS_MIN_DAYS 7(两次修改至少隔7天)、
PASS_WARN_AGE 14(到期前14天提醒)、
PASS_MIN_LEN 12(最小长度12位) - 用 PAM 强制复杂度:在 /etc/pam.d/system-auth 中添加
password requisite pam_pwquality.so minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 retry=3 enforce_for_root
表示密码需含数字、大写、小写、特殊符号各至少1个,root 也受约束 - 对已有用户单独设置:如 chage -M 90 -m 7 -W 14 username
严控远程登录入口(SSH)
SSH 是攻击者最常盯上的通道,必须做到“只放行可信的人,只允许可信的方式”:
- 禁止 root 直接登录:PermitRootLogin no(在 /etc/ssh/sshd_config 中)
- 禁用密码认证,强制密钥登录:PasswordAuthentication no + PubkeyAuthentication yes
- 限制可登录用户范围:AllowUsers user1 user2 或 AllowGroups admin
- 重启服务生效:systemctl restart sshd
精细化权限分配与审计
避免“一权在手,全盘皆通”,把权限切细、管住、看得见:
- 普通用户提权走 sudo,不给 su 权限;编辑 /etc/sudoers(用 visudo):
%admin ALL=(ALL) NOPASSWD: /usr/bin/systemctl start nginx, /usr/bin/journalctl -u sshd
明确授权具体命令,拒绝通配符滥用 - 限制 su 到 root 的资格:在 /etc/pam.d/su 中加一行
auth required pam_wheel.so group=wheel,再把可信用户加入 wheel 组:usermod -aG wheel username - 开启操作留痕:history 记录数调大(HISTSIZE=1000),并配置 auditd 监控关键文件(如 /etc/shadow)和特权命令执行










