PAM认证模块应用实训 :对SSH远程登录多次失败的用户账号进行锁定及解锁

任务背景:

     真实场景中的企业服务器,有时需要限制远程用户的登录次数,避免恶意用户多次尝试输入不同的密码,进行碰运气的撞库攻击,这个功能可以通过PAM认证模块的pam_tally2.so动态库来实现

操作步骤:

1)对Linux的进行基本网络配置,使得win7和Linux能互相ping通对方的Ip地址,确保win7和Linux网络是联通的

2)启动远程登录工具Xshell,新建SSH协议的远程连接,远程主机填写Linux的IP地址,点连接后按照提示,依次输入用户名和正确的密码,可以成功地用ssh协议远程登录Linux;

3)然后断开远程连接并重新登录,先输入正确用户名,再无论多次输入错误的密码后,只要再次输入正确的密码,发现仍然可以成功的登录

4)修改PAM认证模块针对ssh协议的配置文件/etc/pam.d/sshd,方法是输入gedit /etc/pam.d/sshd,打开gedit文本编辑器,在第一行后插入一行配置(红色字体)后存盘退出:

#%PAM-1.0

auth required pam_tally2.so even_deny_root deny=3 unlock_time=60

参数说明:

even_deny_root:甚至会拒绝超级用户root

unlock_time=60:设定解锁时长为60秒,超过60秒这个解锁时长不进行任何登录尝试后,重新输入正确密码又可以重新登录了

deny=3:设定拒绝次数deny为3次,连续deny次输入错误密码后,即使第deny+1次输入正确密码,仍然会被拒绝登录(既用户被锁定)

5)首先用超级用户root进行ssh远程登录,输入3次错误密码后,即使第4次输入正确的密码,仍然被拒绝登录(既root用户被锁定),even_deny_root参数生效;除非执行了命令pam_tally2 --user root --reset重置登录失败次数为0后(即root用户被解锁),输入正确密码又可以成功登录;

6)用普通用户redhat执行登录测试,超过deny=3设定的拒绝次数后看,即使用户输入正确的密码仍然无法登录成功(既redhat用户被锁定),除非执行了命令pam_tally2 --user redhat --reset重置登录失败次数为0后(即redhat用户被解锁),输入正确密码又可以成功登录

7)修改配置文件/etc/pam.d/sshd,在第一行添加以下配置:

auth required pam_tally2.so deny=3 unlock_time=60

去掉even_deny_root,意思是不对超级用户进行限制

8)重复执行第4)步和第5)步,发现root连续输入超过3次错误密码后,输入正确密码仍可以登录成功,但是redhat连续输入超过3次错误密码后,输入正确密码仍然被拒绝登录

说明:

1)在终端执行pam_tally2命令可以查看当前用户登录情况

2)ssh是secure shell协议的简称,sshd是ssh的服务器端的守护进程,为远程客户端提供使用ssh协议远程连接并登录Linux的服务

3)终端输入ps -aux | grep ssh,可以查看到sshd守护进程正在运行,如果执行kill -9 sshd强行杀掉sshd进程后,会发现用Xshell客户端无法再用ssh协议连接到Linux服务器了

4)终端输入netstat -anp | grep ssh 可以查看到sshd守护进程正在侦听22端口,如果客户端已经成功连接,会看到establish了一个TCP连接

课后思考:本次实训是三个Linux知识点的层层递进,第一个是Linux服务,必须sshd服务已经启动,第二是Linux网络基本配置,必须确保网络连通,前两个条件满足,客户端才能用ssh协议成功远程登录Linux服务器;第三个是PAM认证,加了PAM认证配置才能实现对SSH远程登录次数的限定

你可能感兴趣的:(PAM认证模块应用实训 :对SSH远程登录多次失败的用户账号进行锁定及解锁)