Centos 用户登录失败N次后锁定用户禁止登陆

针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁

Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。

1、修改配置文件

# vim /etc/pam.d/login

#%PAM-1.0

auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10 onerr=succeed file=/var/log/tallylog

auth [user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.so

auth include system-auth

account required pam_nologin.so

account include system-auth

password include system-auth

# pam_selinux.so close should be the first session rule

session required pam_selinux.so close

session optional pam_keyinit.so force revoke

session required pam_loginuid.so

session include system-auth

session optional pam_console.so

# pam_selinux.so open should only be followed by sessions to be executed in the user context

session required pam_selinux.so open

各参数解释

even_deny_root 也限制root用户;

deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户

unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;

root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;

2、限制用户从tty登录

在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

# vim /etc/pam.d/login

#%PAM-1.0

auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10

3、验证ssh是否加载pam_tally2身份验证模块

ldd /usr/bin/passwd | grep libpam

libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x00007fb74f748000)

libpam.so.0 => /lib64/libpam.so.0 (0x00007fb74eb45000)

如看到有类似的输出,说明该程序使用了PAM,没有输出,则没有使用。

4、查看root用户登录失败次数

[root@bigdata ~]# pam_tally2 --user root

Login Failures Latest failure From

root 18 12/24/20 13:39:28 10.10.76.22

5、解锁指定用户

[root@bigdata ~]# pam_tally2 -r -u root

Login Failures Latest failure From

6、Linux中普通用户配置sudo权限(带密或免密)

配置步骤如下:

6.1、登陆或切换到root用户下;

6.2、添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers

6.3、编辑sudoers文件:vi /etc/sudoers或者visudo

找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (注:这里的xxx是你的用户名)

你可以根据实际需要在sudoers文件中按照下面四行格式中任意一条进行添加:

youuser ALL=(ALL) ALL

%youuser ALL=(ALL) ALL

youuser ALL=(ALL) NOPASSWD: ALL

%youuser ALL=(ALL) NOPASSWD: ALL

Defaults:bbders timestamp_timeout=-1,runaspw

第一行:允许用户youuser执行sudo命令(需要输入密码)。

第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码)。

第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码。

第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码。

第五行:timestamp_timeout=-1 只需验证一次密码,以后系统自动记忆,runaspw 需要root密码,如果不加默认是要输入普通账户的密码

6.4、撤销sudoers文件写权限,命令:chmod u-w /etc/sudoers