主要用于防止暴力破解用户密码
1. 修改 PAM 配置限制登录失败次数
要限制终端方式的登录失败次数,可以在 /etc/pam.d/login 中加入一条 pam_tally2 规则:
[root@localhost ~]# vim /etc/pam.d/login
添加如下内容:
auth required pam_tally2.so deny=3 unlock_time=100 even_deny_root root_unlock_time=300
这几个参数的含义分别是:
deny=3:普通用户和 root 连续输错密码的最大次数,超过后就锁定unlock_time=100:普通用户锁定后,多少秒自动解锁even_deny_root:让 root 也参与失败次数限制root_unlock_time=300:root 被锁定后,多少秒自动解锁
2. 限制 SSH 方式登录
如果要限制 SSH 登录,可以先在 /etc/pam.d/sshd 中加入同样的规则:
[root@localhost ~]# vim /etc/pam.d/sshd
追加:
auth required pam_tally2.so deny=3 unlock_time=100 even_deny_root root_unlock_time=300
有些 openssh 版本里,单独改 PAM 文件还不够,这时还要确认 SSH 服务启用了 PAM:
[root@localhost ~]# vim /etc/ssh/sshd_config
把下面这一项取消注释并设置为 yes:
UsePAM yes
修改完成后重启 SSH 服务:
systemctl restart sshd.service
如果你想在登录成功后自动清零失败次数,也可以在 /etc/pam.d/sshd 中补上 account 段:
#%PAM-1.0
auth required pam_tally2.so deny=3 unlock_time=100 even_deny_root root_unlock_time=300
account required pam_tally2.so
3. 查看和重置登录失败次数
pam_tally2 还可以直接查看某个用户的失败记录:
pam_tally2 -u root
如果需要手动解锁用户,可以执行:
pam_tally2 -r -u root
Linux 开启日志审计功能
如果希望把用户在终端里执行过的命令记录下来,可以把下面这段配置追加到 /etc/profile 的末尾,然后执行 source /etc/profile 让它立刻生效。
HISTSIZE=1000
HISTTIMEFORMAT="%Y/%m/%d %T "
HISTTIMEFORMAT
HISTORY_FILE=/var/log/audit.log
PROMPT_COMMAND=


