千家信息网

什么是ssh黑洞 pam_tally2

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章给大家介绍什么是ssh黑洞 pam_tally2,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、修改sshd本身配置:默认端口 、尝试密码次数、禁止root、客户端连接
千家信息网最后更新 2024年11月27日什么是ssh黑洞 pam_tally2

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

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.0auth required pam_tally2.so deny=2 unlock_time=120 even_deny_root root_unlock_time=120   # 添加 1  auth       required      pam_sepermit.soauth       substack     password-authauth       include      postlogin# Used with polkit to reauthorize users in remote sessions-auth      optional     pam_reauthorize.so prepareaccount     required      pam_tally2.so   # 添加 2account    required     pam_nologin.soaccount    include      password-authpassword   include      password-auth# pam_selinux.so close should be the first session rulesession    required     pam_selinux.so closesession    required     pam_loginuid.so# pam_selinux.so open should only be followed by sessions to be executed in the user contextsession    required     pam_selinux.so open env_paramssession    required     pam_namespace.sosession    optional     pam_keyinit.so force revokesession    include      password-authsession    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 5000Password:Account locked due to 5 failed loginsPassword:Account locked due to 6 failed loginsPassword:$ pam_tally2 -u rootLogin           Failures Latest failure     Fromroot                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 rootLogin           Failures Latest failure     Fromroot                6    09/14/19 12:46:33  47.93.185.255# root @ web-devops-01 in /home/hlnmroot [12:47:28]$ pam_tally2 -u rootLogin           Failures Latest failure     Fromroot                0再登陆➜  ~ ssh root@xxxx.com -p 5000Password:Last failed login: Sat Sep 14 12:46:33 CST 2019 from 47.93.185.255 on ssh:nottyThere were 5 failed login attempts since the last successful login.Last login: Sat Sep 14 11:59:40 2019 from 47.94.129.79Welcome to Alibaba Cloud Elastic Compute Service !

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

0