首页 >> 大全

身份鉴别——Linux配置登录失败处理功能

2023-10-07 大全 30 作者:考证青年

对于一台服务器而言,有两种登录方式:本地登录和远程登录,登录失败处理功能的配置也从这两个方面来配置。由于系(例如Red Hat Linux和)和系(例如)在配置上稍有不同,所以分开来说。

RHEL(Red Hat Linux) 配置

红帽的登录失败处理功能主要由/etc/pam.d/-auth和/etc/pam.d/-auth来实现。其中,/etc/pam.d/-auth控制本地登录失败处理,/etc/pam.d/-auh控制远程登录失败处理。

首先配置/etc/pam.d/-auth,在第一个auth行插入一行如下:

auth        required      pam_tally2.so deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60

完成后如下:

[root@Oracle ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_tally2.so deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60 
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.soaccount     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.sopassword    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.sosession     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

参数解释:

deny:触发登录失败锁定功能的次数;

:锁定时间,单位为秒;

:触发登录失败处理功能后锁定的时长,单位为秒;

:启用对root账户的登录失败处理;

:root账户触发登录失败锁定后锁定的时长,单位为秒。

测试 本地登录:

登录鉴权失败什么意思_登录鉴权失败_

可以看到,在输入错误一次密码后,系统返回了账户被临时封锁,剩余时间8秒,然后我输入了正确的密码,登录还是失败了。root账户在登录失败3次后也被锁定了。

远程登录:

但是当我们使用SSH远程登录的时候,却没有收到登录失败的锁定提示,说明上面的配置对于远程登录是无效的。

我们将相同的配置再添加到/etc/pam.d/-auth中:

[root@Oracle ~]# cat /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_tally2.so deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.soaccount     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.sopassword    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtokpassword    required      pam_deny.sosession     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

此时我们再使用SSH进行远程登录测试:

我们使用命令查看一下账户的锁定状态,发现账户已经被锁定了:

[root@Oracle ~]# pam_tally2 --user shenji
Login           Failures Latest failure     From
shenji              8    03/02/22 08:39:09  192.168.0.102
[root@Oracle ~]#date
Wed Mar  2 08:39:13 EST 2022

只要登录成功一次后,登录失败的计数将清零。

配置

的登录失败处理功能主要由/etc/pam.d/login和/etc/pam.d/-auth来实现。其中,/etc/pam.d/login控制本地登录失败处理,/etc/pam.d/-auth控制远程登录失败处理。

首先配置/etc/pam.d/login,在第一个auth行插入一行如下:

auth       required   pam_tally2.so     deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60

root@Server01:~# cat /etc/pam.d/login | grep -v "#"auth       required   pam_tally2.so     deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60
auth       optional   pam_faildelay.so  delay=3000000auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.soauth       requisite  pam_nologin.sosession [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so closesession       required   pam_env.so readenv=1
session       required   pam_env.so readenv=1 envfile=/etc/default/locale@include common-authauth       optional   pam_group.sosession    required   pam_limits.sosession    optional   pam_lastlog.sosession    optional   pam_motd.so motd=/run/motd.dynamic
session    optional   pam_motd.so noupdatesession    optional   pam_mail.so standardsession    required     pam_loginuid.so@include common-account
@include common-session
@include common-passwordsession [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
root@Server01:~#

测试 本地登录

通过shell查询,发现账户已被锁定。

root@Server01:~# pam_tally2 -u shenji
Login           Failures Latest failure     From
shenji              4    03/02/22 22:01:12  

远程登录

root@Server01:~# pam_tally2 -u shenji
Login           Failures Latest failure     From
shenji              4    03/02/22 22:01:12

通过shell查询,通过远程登录产生的登录失败未被记入到计数。

现在我们将相同的配置添加到/etc/pam.d/-auth:

root@Server01:~# cat /etc/pam.d/common-auth | grep -v "#"auth       required   pam_tally2.so     deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60
auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
root@Server01:~#

root@Server01:~# pam_tally2 -u shenji
Login           Failures Latest failure     From
shenji              1    03/02/22 22:26:12  192.168.141.1
root@Server01:~# pam_tally2 -u shenji
Login           Failures Latest failure     From
shenji              1    03/02/22 22:26:12  192.168.141.1
root@Server01:~# pam_tally2 -u shenji
Login           Failures Latest failure     From
shenji              2    03/02/22 22:26:38  192.168.141.1

在测试的时候,发现当设置了的时候,如果在指定的时间内连续输入多次密码,那么也只会被记为一次,只有两次登录失败的时间大于指定的时间时才会被记录为两次;如果不指定,那么连短时间内多次输入错误密码,错误几次就会被记录为几次。无论是本地登录还是远程登录都是一样的结果。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了