主要为了防止暴力破解用户密码
1、修改PAM配置
限制终端方式登录:
[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: 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time: 设定普通用户锁定后,多少时间后解锁,单位是秒
root_unlock_time: 设定root用户锁定后,多少时间后解锁,单位是秒
2、限制ssh方式登录
[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版本区别,有些版本在/etc/pam.d/sshd添加是不生效的,需要修改ssh配置文件开启PAM模块
[root@localhost ~]# vim /etc/ssh/sshd_config
#修改并取消注释
UsePAM yes
重启服务
systemctl restart sshd.service
[root@localhost ~]# vim /etc/pam.d/sshd
#%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命令扩展
查看用户登录失败的次数:
pam_tally2 -u root
解锁aihuidi用户
pam_tally2 -r -u root
Linux开启日志审计功能
将下面这段内容添加在/etc/profile文件末尾,执行source /etc/profile使之生效。
HISTSIZE=1000
HISTTIMEFORMAT="%Y/%m/%d %T ";export HISTTIMEFORMAT
export HISTORY_FILE=/var/log/audit.log
export PROMPT_COMMAND='{ thisHistID=`history 1|awk "{print \\$1}"`;lastCommand=`history 1| awk "{\\$1=\"\" ;print}"`;user=`id -un`;whoStr=(`who -u am i`);realUser=${whoStr[0]};logMonth=${whoStr[2]};logDay=${whoStr[3]};pid=${whoStr[6]};ip=${whoStr[7]};if [ ${thisHistID}x != ${lastHistID}x ];then echo -E `date "+%Y/%m/%d %H:%M:%S"` $user\($realUser\)@$ip[IP:$pid][LOGIN:$logMonth $logDay] --- $lastCommand ;lastHistID=$thisHistID;fi; } >> $HISTORY_FILE'
[root@localhost ~]# more /var/log/audit.log
2021/07/30 08:17:55 root(root)@[IP:(172.16.8.78)][LOGIN:2021-07-30 08:09] --- 2021/07/30 08:17:54 source /etc/profile
2021/07/30 08:17:55 root(root)@[IP:(172.16.8.78)][LOGIN:2021-07-30 08:09] --- 2021/07/30 08:17:55 ls
2021/07/30 08:17:56 root(root)@[IP:(172.16.8.78)][LOGIN:2021-07-30 08:09] --- 2021/07/30 08:17:56 pwd
Linux开启用户无操作90秒自动退出终端
[root@localhost ~]# echo "TMOUT=90" >> ~/.bashrc
[root@localhost ~]# source .bashrc
## 如果用户90秒内没有进行任何操作那么终端就会自动退出。
[root@localhost ~]# 等待输入超时:自动登出