linux用pam_faillock.so配置deny=5、unlock_time=900、fail_interval=60三参数协同;windows通过组策略设账户锁定阈值5次、锁定时间30分钟、重置计数器30分钟,并需叠加防火墙限流与日志告警。

设置服务器账户锁定策略是防范暴力破解的核心手段,关键在于根据系统类型(Linux 或 Windows)选择对应机制,并合理配置阈值与时间参数,避免误锁又保留防护效力。
Linux 系统:用 pam_faillock 启用登录失败计数
Linux 默认不锁定账户,必须手动启用 PAM 模块。主流发行版(RHEL 8+/Ubuntu 22.04+)推荐使用 pam_faillock.so:
- 编辑对应 PAM 配置文件:
– Ubuntu/Debian:修改/etc/pam.d/common-auth
– RHEL/CentOS:修改/etc/pam.d/system-auth - 在 auth 段开头插入三行(顺序不可调换):
auth [default=ignore] pam_faillock.so preauth silent deny=5 unlock_time=900 fail_interval=60auth [default=die] pam_faillock.so authfail deny=5 unlock_time=900 fail_interval=60auth [default=ok] pam_faillock.so authsucc - 参数说明:
–deny=5:5 次失败后锁定
–unlock_time=900:900 秒(15 分钟)后自动解锁
–fail_interval=60:仅统计最近 60 秒内的失败次数,防长周期试探 - 配置后用
faillock --user testuser查状态,用faillock --user testuser --reset清除测试记录
Windows 服务器:通过组策略配置域账户锁定
域环境必须在域控制器上配置组策略(本地策略对域用户无效):
- 打开组策略管理控制台(GPMC),编辑链接到域根 OU 的 GPO
- 路径:
计算机配置 → 策略 → Windows 设置 → 安全设置 → 账户策略 → 账户锁定策略 - 三项关键设置:
– 账户锁定阈值:建议普通用户设为 5,高权限账户设为 3;禁用(0)或设为 1 均不安全
– 账户锁定时间:建议 15 或 30 分钟(单位:分钟),设为 0 表示永不自动解锁
– 重置账户锁定计数器:应与“账户锁定时间”一致,否则逻辑冲突 - 配置后执行
gpupdate /force,用gpresult /h report.html验证是否生效
补充加固:限制访问源头 + 监控响应
单靠账户锁定不够,需叠加网络层防护和快速响应能力:
- 防火墙限流:如 Linux 上用 UFW 限制单 IP 的 SSH 尝试频率,或 Windows 防火墙配置连接速率限制
- SSH 专用加固:禁用 root 远程登录、改默认端口、启用密钥认证,从根源减少密码爆破面
-
日志监控告警:集中采集
/var/log/auth.log(Linux)或 Windows 安全日志(事件 ID 4740),对短时高频失败触发邮件或短信告警 -
临时应急解锁:Linux 用
faillock --user xxx --unlock;Windows 域环境用 AD 用户和计算机工具取消“账户已锁定”勾选,或命令行net user username /active:yes(仅限本地账户)
账户锁定不是越严越好,核心是让攻击者无法在自动解锁前完成有效尝试,同时保证日常操作不会频繁触发。参数调优后建议用非管理员账号做真实错输测试,确认行为符合预期。











