加固Linux系统账号与远程登录安全的核心是控权限、减暴露、强验证、留痕迹:清理锁定非必要账号,禁用root远程直连并强制密钥认证+sudo提权,实施密码时效/复杂度/失败锁定三重策略,并配置会话超时、命令历史限制及rsyslog审计。

加固 Linux 系统的账号与远程登录安全,核心是“控权限、减暴露、强验证、留痕迹”。不能只改一个配置就以为万事大吉,必须从用户生命周期、登录通道、认证强度和行为审计四个层面同步收紧。
清理并锁定非必要账号
系统预装的大量服务账号(如 daemon、ftp、nobody)默认可被枚举,若 Shell 未禁用,可能成为提权跳板。
- 将所有非交互式账号的 Shell 改为 /sbin/nologin:
usermod -s /sbin/nologin username - 长期不用的账号直接锁定:
usermod -L username(或passwd -l username) - 确认无用账号可删除(慎删系统关键账号):
userdel -r username - 锁定关键账号文件防篡改:
chattr +i /etc/passwd /etc/shadow /etc/group
禁止 root 远程直连,建立安全登录链路
允许 root 通过 SSH 直接登录,等于把万能钥匙挂在公网门口。必须强制走“普通用户 → 密钥认证 → sudo 提权”路径。
- 编辑 /etc/ssh/sshd_config,确保以下配置生效:
PermitRootLogin noPubkeyAuthentication yesPasswordAuthentication no - 创建具备 sudo 权限的管理用户:
useradd -m -G wheel adminuserpasswd adminuser - 限制仅该用户可登录(可选但推荐):
AllowUsers adminuser@192.168.1.0/24(支持 IP 白名单) - 修改后务必重启服务:
systemctl restart sshd
强化密码与认证策略
弱口令仍是多数入侵的起点。单纯设长度不够,要结合时效、复杂度、失败锁定三重控制。
- 设置新用户默认密码有效期(90天):
修改 /etc/login.defs 中:PASS_MAX_DAYS 90PASS_MIN_LEN 10PASS_WARN_AGE 7 - 对已有用户单独设置:
chage -M 90 -W 7 username - 启用 PAM 密码强度校验(CentOS/RHEL):
在 /etc/pam.d/system-auth 中追加:password requisite pam_pwquality.so minlen=10 minclass=3 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 - 登录失败 3 次锁定 5 分钟:
在 /etc/pam.d/system-auth 和 password-auth 中添加:auth [default=die] pam_faillock.so deny=3 unlock_time=300
收紧会话与操作行为管控
没人盯着的终端、无限长的历史记录、永不超时的连接,都是事后溯源和应急响应的盲区。
- 限制命令历史数量(全局生效):
在 /etc/profile 中添加:HISTSIZE=200export HISTSIZE - 设置空闲自动登出(10分钟):
同样在 /etc/profile 中添加:TMOUT=600export TMOUT - SSH 层面增强心跳检测与断连控制:
在 /etc/ssh/sshd_config 中添加:ClientAliveInterval 300ClientAliveCountMax 0MaxAuthTries 3 - 启用详细登录日志审计:
systemctl enable --now rsyslog
常用排查命令:last(成功登录)lastb(失败尝试)journalctl -u sshd | grep "Failed"


















