Linux登录失败处理功能
本文要实现的功能:如果有人恶意尝试破解你的服务器密码,那么这个功能就能帮你起到一定的作用,当尝试密码错误超过设定的次数后,就会锁定该账户多长时间(自行设定),时间过后即可自行解锁,这样可以增加攻击者的成本。
服务器系统:centos6.5(centos其他版本应该也是可以的,请自行测试)
1.备份要操作的两个配置文件
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
cp /etc/pam.d/login /etc/pam.d/login.bak
2.检查是否有pam_tally2.so模块
[root@iZ25dd99ylmZ security]# find /lib* -iname "pam_tally2.so" /lib64/security/pam_tally2.so [root@iZ25dd99ylmZ security]# find /lib* -iname "pam_tally.so" [root@iZ25dd99ylmZ security]# cat /etc/pam.d/sshd
3.登录失败处理功能策略(服务器终端)
编辑系统/etc/pam.d/system-auth 文件,在 auth 字段所在的那一部分策 略下面添加如下策略参数:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=40 even_deny_root root_unlock_time=30
注意添加的位置,要写在第一行,即#%PAM-1.0的下面。
以上策略表示:普通帐户和 root 的帐户登录连续 3 次失败,就统一锁定 40 秒, 40 秒后可以解锁。如果不想限制 root 帐户,可以把 even_deny_root root_unlock_time
这两个参数去掉, root_unlock_time 表示 root 帐户的 锁定时间,onerr=fail 表示连续失败,deny=3,表示 超过3 次登录失败即锁定。
注意:
用户锁定期间,无论在输入正确还是错误的密码,都将视为错误密码,并以最后一次登录为锁定起始时间,若果用户解锁后输入密码的第一次依然为错误密码,则再次重新锁定。
查看日志 tail -f /var/log/secure 可以看出下面的提示
4.登录失败处理功能策略(ssh远程连接登录)
上面只是限制了从终端登陆,如果想限制ssh远程的话, 要改的是
/etc/pam.d/sshd这个文件,添加的内容跟上面一样!
如果在操作中间出现下面这个错误:
Dec 7 15:06:51 iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory Dec 7 15:06:51 iZ2zee7gmy40tbverl53rfZ sshd[15747]: PAM adding faulty module: /lib64/security/pam_tally.so
上面的错误意思是在/lib64/security/ 下面找不到pam_tally.so,而我进入到目录下,确实没找到这个文件,解决方法是将现有的 pam_tally2.so做个软连接到pam_tally.so
[root@iZ2zee7gmy40tbverl53rfZ ~]# cd /lib64/security/
[root@iZ2zee7gmy40tbverl53rfZ ~]#ln -s pam_tally2.so pam_tally.so
5.测试
可以故意输错密码超过三次,然后第五次输入正确密码,如果正确密码进入不了系统,说明配置生效。以上的配置是即时生效的,不用重启配置文件或系统,但是请注意多开个ssh
窗口,防止配置文件更改错误,将自己关在服务器外面。
6.解锁账户
如果密码在锁定时间内,但是又要立即进入系统,可使用下面方法解锁被锁定用户,当然这是对于root用户解锁普通用户来说的。如果root用户被锁,请等待锁定期过后在操作。
查看用户失败次数
[root@localhost ~]# pam_tally2 --------------------查看所有用户登录失败次数
[root@localhost ~]# pam_tally2 --user root ------------指定查看登录失败的用户次数
解锁指定用户
[root@iZ25dsfp6c3dZ ~]# pam_tally2 -r -u albert
[root@iZ2zee7gmy40tbverl5Z ~]# pam_tally2 --user root Login Failures Latest failure From root 5 12/07/17 17:05:54 49.4.151.18 [root@iZ2zee7gmy40tbverl5Z ~]# pam_tally2 -r -u root Login Failures Latest failure From root 5 12/07/17 17:05:54 49.4.151.18 [root@iZ2zee7gmy40tbverlfZ ~]# pam_tally2 -r -u root ###解锁之后随即失败次数归零,此时即可登录系统 Login Failures Latest failure From root 0 [root@iZ2zee7gmy40tbverlfZ ~]#
相关文章
- nagios安装check_linux_stats.pl插件报错Can't locate Sys/Statistics/Linux.pm in @INC的处理?
- linux中如何对一个文件的内容进行处理,文件中每行有多个字段的值,中间用空格分隔开?
- Linux的linux aarch64和linux x86_64
- Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法
- Linux有问必答:如何检查我是否处于一个运行着的screen会话中
- 如何安装 Debian 的非 systemd 复刻版本 Devuan Linux
- 用 screenfetch 和 linux_logo 显示带有酷炫 Linux 标志的基本硬件信息
- linux多线程随机数,随机数SecureRandom在Linux下阻塞
- linux 复制粘贴
- linux内核发生Oops时怎么办?
- 【Linux】linux中自动定时备份mysql数据
- 【转】Linux Shell脚本面试25问
- linux下用sox音频处理常用方法
- Mac和Linux系统的:Arp欺骗源码
- Linux终端会话实时共享(kibitz)
- Linux下快速比较两个目录的不同
- Linux 内核总线
- Linux 内核 标准 PCI 配置寄存器
- Linux问题情报分享(2):grub-install工具不能处理/dev/xvda*路径
- Linux 系统网络问题处理集[包含VM处理]
- Linux时间处理总结
- Linux C高级编程——网络编程之以太网(2)
- Linux生成随机密码教程
- Linux学习笔记(19)linux定时任务(crontab)
- 5 款最酷的 Linux 终端模拟器
- Linux中文乱码问题终极解决方法