ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

系统安全加固4——输入密码错误5次锁定账户900秒

2021-08-24 12:29:44  阅读:695  来源: 互联网

标签:faillock 900 系统安全 required auth ignore so 加固 pam


  本章节设置在登录界面或者通过ssh远程连接到系统时,输入错误密码5次,锁定15分钟。此配置可以很好的用来防范系统密码被暴力破解。

1、环境操作系统

Server 8.3 (衍生自 CentOS 8.3)

2 、修改配置文件/etc/pam.d/system-auth和/etc/pam.d/password-auth

修改内容参考《CIS_CentOS_Linux_8_Benchmark_v1.0.1》5.4.2章节内容
pam_faillock模块
其中deny后面的数字:表示输错对应的次数,达到对应次数之后,账户登录功能会被锁定;unlock_time后面的数字表示锁定的时间(单位:秒),达到锁定时间之后,账户登录功能会解锁。

  因为我要将修改固化到Server 8.3系统中,所以我需要修改软件包来实现。/etc/pam.d/system-auth和/etc/pam.d/password-auth属于软件包authselect。下面是我的修改patch

diff --git a/profiles/sssd/password-auth b/profiles/sssd/password-auth
index 3e1886f..7155a1f 100644
--- a/profiles/sssd/password-auth                                                                                                                                                             
+++ b/profiles/sssd/password-auth
@@ -1,4 +1,5 @@
 auth        required                                     pam_env.so
+auth        required                                     pam_faillock.so preauth silent deny=5 even_deny_root unlock_time=900
 auth        required                                     pam_faildelay.so delay=2000000
 auth        required                                     pam_deny.so # Smartcard authentication is required     {include if "with-smartcard-required"}
 auth        required                                     pam_faillock.so preauth silent                         {include if "with-faillock"}
@@ -7,6 +8,7 @@ auth        required                                     pam_u2f.so cue nouserok
 auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
 auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
 auth        sufficient                                   pam_unix.so {if not "without-nullok":nullok} try_first_pass
+auth        required                                     pam_faillock.so  authfail  deny=5 even_deny_root unlock_time=900
 auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
 auth        sufficient                                   pam_sss.so forward_pass
 auth        required                                     pam_faillock.so authfail                               {include if "with-faillock"}
@@ -20,7 +22,7 @@ account     sufficient                                   pam_usertype.so issyste
 account     [default=bad success=ok user_unknown=ignore] pam_sss.so
 account     required                                     pam_permit.so
diff --git a/profiles/sssd/system-auth b/profiles/sssd/system-auth
index 4b4b43e..95b8fff 100644
--- a/profiles/sssd/system-auth
+++ b/profiles/sssd/system-auth
@@ -1,5 +1,6 @@
 {imply "with-smartcard" if "with-smartcard-required"}
 auth        required                                     pam_env.so
+auth        required                                     pam_faillock.so preauth silent deny=5 even_deny_root unlock_time=900
 auth        required                                     pam_faildelay.so delay=2000000
 auth        required                                     pam_faillock.so preauth silent                         {include if "with-faillock"}
 auth        [success=1 default=ignore]                   pam_succeed_if.so service notin login:gdm:xdm:kdm:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid {include if "with-smartcard-required"}
@@ -12,6 +13,7 @@ auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
 auth        [default=2 ignore=ignore success=ok]         pam_localuser.so                                       {include if "with-smartcard"}
 auth        [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth           {include if "with-smartcard"}
 auth        sufficient                                   pam_unix.so {if not "without-nullok":nullok} try_first_pass
+auth        required                                     pam_faillock.so  authfail  deny=5 even_deny_root unlock_time=900
 auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
 auth        sufficient                                   pam_sss.so forward_pass
 auth        required                                     pam_faillock.so authfail                               {include if "with-faillock"}
@@ -25,7 +27,7 @@ account     sufficient                                   pam_usertype.so issyste
 account     [default=bad success=ok user_unknown=ignore] pam_sss.so
 account     required                                     pam_permit.so

至于为什么是修改的sssd/目录下的内容,通过authselect命令可以看出一二。

需要注意的是1)修改了源码包、编译之后,直接安装是看不到修改内容!我重新打iso之后可以看到修改内容。2)此处只是限制了账户登录,从其他用户通过su命令切换时并不受影响

3 系统对外提供的接口——faillock

  既然要判断用户输入错误的次数,那么系统中肯定有一个地方用来记录当前输入错误的次数,这个数据默认记录在/var/run/faillock。

3.1 faillock

  Linux系统提供了一个查看和修改认证失败记录文件的工具——faillock。

NAME
       faillock - Tool for displaying and modifying the authentication failure record files

SYNOPSIS
       faillock [--dir /path/to/tally-directory] [--user username] [--reset]

3.1.1 不间断输错密码5次,系统中认证失败记录情况

faillock显示
   开始时,执行faillock命令,因为是正确登录到系统,所以此处没有内容。我从另一个终端通过ssh连接到主机,故意输错密码,输错一次,在之前终端执行一次faillock查看系统中认证失败记录数据,上面这张图记录的是输错3次密码的情况。
   因为在第二节中设置的规则是输错5次之后,登录账户将锁定,下面我们继续实验,这图是输错5此的情况。此时账户登录已经锁定,输入正确密码也不能登录到系统。
faillock输错5次情况

3.1.2 锁定时间15分钟之后,输入正确密码,系统中认证失败记录情况

在这里插入图片描述
  过了锁定时间之后,输入正确密码登录到系统,查看登录失败记录没有变化。此时退出系统,再次验证输入错误密码,然后查看faillock信息,如下:
在这里插入图片描述
  记录文件中Vaild列除了“V”表示的有效之外,还出现了“I”表示的无效。此处只是看文章可能不会很清楚,自己动手验证一下,就会明白!

3.1.3 执行faillock清除系统中认证失败记录

[root@bogon faillock]# faillock 
loongson:
When                Type  Source                                           Valid
2021-08-24 09:54:27 RHOST x.x.x.x                                          V
2021-08-24 09:26:27 RHOST x.x.x.x                                          I
2021-08-24 09:26:35 RHOST x.x.x.x                                           I
2021-08-24 09:33:44 RHOST x.x.x.x                                         I
2021-08-24 09:33:52 RHOST x.x.x.x                                          I
2021-08-24 09:54:48 RHOST x.x.x.x                                          V
2021-08-24 09:55:10 RHOST x.x.x.x                                           V
[root@bogon faillock]# faillock --reset
[root@bogon faillock]# faillock 
loongson:
When                Type  Source                                           Valid
[root@bogon faillock]# 

3.1.4 输入错误4次,输入正确密码,系统中认证失败记录情况

在这里插入图片描述
  这一章我要验证的是,输入4次错误密码之后,输入1次正确密码登录到系统。系统的认证失败记录会不会被清0,重新开始计数。现在我退出登录,然后输入错误2次密码之后,输入正确密码,验证能否登录到系统
在这里插入图片描述
  结论:登录错误4次之后,输入正确密码登录到系统并没有将登录失败次数清0!(需要注意的是:这个结论的前提是按照第二章配置文件配置的结果)

标签:faillock,900,系统安全,required,auth,ignore,so,加固,pam
来源: https://blog.csdn.net/weixin_46254656/article/details/119876843

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有