什么是ssh黑洞pam_tally2

这篇文章给大家介绍什么是ssh黑洞 pam_tally2,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有莒县免费网站建设让你可以放心的选择与我们合作。

1、修改sshd本身配置:默认端口 、尝试密码次数、禁止root、客户端连接时间、取消DNS解析

2、系统级别 host allow deny

3、pam级别

4、其他工具辅助

本文介绍pam pam_tally2 模块的用法。

前提:

/etc/ssh/sshd_config 里设置 UsePAM yes ,一般默认允许PAM。

主要功能:

限制用户M次密码错误后锁定该用户N秒

/etc/pam.d 下有很多文件:

/etc/pam.d/login   中配置只在本地文本终端上做限制;

/etc/pam.d/kde    在配置时在kde图形界面调用时限制;

/etc/pam.d/sshd    中配置时在通过ssh连接时做限制;

/etc/pam.d/system-auth   中配置凡是调用 system-auth 文件的服务,都会生效。

预警:

因为pam_tally没有自动解锁的功能,所以,在设置限制时,要多加注意,万一全做了限制,而 root用户又被锁定了,就只能够进单用户模式解锁了,当然,也可以添加crontab任务,达到定时自动解锁的功能,但需要注意的是,如果在/etc /pam.d/system-auth 文件中添加了pam_tally的话,当root被锁定后,crontab任务会失效,所以,最好不要在system-auth 文件中添加pam_tally。

现在只针对sshd :

锁定所有用户(包括root)2次密码错误后锁定2分钟。

修改 /etc/pam.d/sshd 文件,添加2处文件(网上很多文件只添加第一处,误人误己)

1、必须在 #%PAM-1.0  下添加 :  auth required pam_tally2.so deny=2 unlock_time=120 even_deny_root root_unlock_time=120   # 添加 1

2、-auth 段下 添加   account     required      pam_tally2.so   # 添加 2

$ cat /etc/pam.d/sshd
#%PAM-1.0
auth required pam_tally2.so deny=2 unlock_time=120 even_deny_root root_unlock_time=120   # 添加 1
  
auth	   required	pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account     required      pam_tally2.so   # 添加 2
account    required     pam_nologin.so

account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

如果不限制root用户,则可以写成 auth required pam_tally2.so deny=M  unlock_time=N*60

解释:

配置格式:

pam_tally2.so [file=/path/to/counter] [onerr=[fail|succeed]] [magic_root] [even_deny_root] [deny=n] [lock_time=n] [unlock_time=n]
              [root_unlock_time=n] [serialize] [audit] [silent] [no_log_info]


参数相关:

1、全局参数
file       用于指定统计次数存放的位置,默认保存在/var/log/tallylog文件中;
onerr   当意外发生时,返加PAM_SUCCESS或pam错误代码,一般该项不进行配置;
audit   如果登录的用户不存在,则将访问信息写入系统日志;
silent   静默模式,不输出任何日志信息;
no_log_info 不打印日志信息通过syslog
上面的五项全局参数,一般在使用中都不需要单独配置。

2、认证选项
deny  指定最大几次认证错误,如果超出此错误,将执行后面的策略。如锁定N秒,如果后面没有其他策略指定时,默认永远锁定,除非手动解锁。
lock_time  一次失败,锁定多长时间,按秒为单位;
unlock_time 指定认证deny次数被锁后,多长时间自动解锁用户;
magic_root 如果用户uid=0(即root账户或相当于root的帐户)在帐户认证时调用该模块发现失败时,不计入统计;
no_lock_time 不使用.fail_locktime项在/var/log/faillog 中记录用户 ---按英文直译不太明白,个人理解即不进行用户锁定;
even_deny_root    root用户在认证出错时,一样被锁定(该功能慎用,搞不好就要单用户时解锁了)
root_unlock_time  root用户在失败时,锁定多长时间。该选项一般是配合even_deny_root 一起使用的。

命令行管理:

pam_tally2  查看所有用户失败状态

pam_tally2 --user=root   指定查看该用户失败状态  简写  pam_tally2  -u root

pam_tally2 --user=root  --reset   解除用户限制      简写  pam_tally2  -r -u root

试验:

请使用终端ssh命令去尝试,xshell貌似不会显示错误,只会一直要求输入。

输入账号密码后才会去验证,不是说锁定了都不用输入密码就直接报错。

➜  ~ ssh root@xxxx.com -p 5000
Password:
Account locked due to 5 failed logins
Password:
Account locked due to 6 failed logins
Password:


$ pam_tally2 -u root
Login           Failures Latest failure     From
root                6    09/14/19 12:46:33  47.93.185.255



# 重置 
# root @ web-devops-01 in /home/hlnmroot [12:46:40]
$ pam_tally2 -r -u root
Login           Failures Latest failure     From
root                6    09/14/19 12:46:33  47.93.185.255

# root @ web-devops-01 in /home/hlnmroot [12:47:28]
$ pam_tally2 -u root
Login           Failures Latest failure     From
root                0



再登陆
➜  ~ ssh root@xxxx.com -p 5000
Password:
Last failed login: Sat Sep 14 12:46:33 CST 2019 from 47.93.185.255 on ssh:notty
There were 5 failed login attempts since the last successful login.
Last login: Sat Sep 14 11:59:40 2019 from 47.94.129.79

Welcome to Alibaba Cloud Elastic Compute Service !

关于什么是ssh黑洞 pam_tally2就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章名称:什么是ssh黑洞pam_tally2
本文网址:http://csdahua.cn/article/jhjjsg.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流