问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

银河麒麟V10桌面系统账户登录失败锁定安全加固指南

创作时间:
作者:
@小白创作中心

银河麒麟V10桌面系统账户登录失败锁定安全加固指南

引用
CSDN
1.
https://m.blog.csdn.net/Whenbeen/article/details/141332012

本文将介绍如何通过配置PAM(可插拔认证模块)来实现银河麒麟V10桌面系统的账户登录失败锁定功能。通过设置合理的锁定策略,可以有效防止恶意暴力破解,保护系统账户安全。

一、账户登录失败锁定

1. 加固说明

为防止遭受恶意暴力破解,设置账户登录尝试次数并进行锁定,有效保护账户的安全。

2. 加固准备

/etc/pam.d/common-auth文件是Linux系统中PAM(可插拔认证模块)认证系统的一个重要配置文件。该文件主要用于定义系统中应用程序或服务的身份验证配置,因此账户锁定策略可以通过修改此配置文件实现。配置文件中包含了多个模块及其参数,这些模块和参数共同决定了系统如何验证用户的身份。以下是一些常见的模块及其参数解读:

  • pam_unix.so模块
pam_unix.so是PAM中最常用的模块之一,它用于基于本地/etc/passwd和/etc/shadow文件的身份验证。
    常用参数:
    nullok:允许空密码。
    nullok_secure:则禁止通过远程登录的方式进行无密码登录,但可以在本地无密码登录。
    try_first_pass:尝试使用先前模块(如pam_unix.so用于密码更改时)提供的密码,而不是提示用户输入新密码。
    use_first_pass:类似于try_first_pass,但如果先前模块没有提供密码,则不会提示	用户。
    unlock_time:这个参数指定了账号被锁定后的恢复时间,即账号锁定的时长。当账号被锁定后,用户需要等待这个时长过后才能再次尝试登录。这个参数的值通常以秒为单位,例如unlock_time=600表示账号锁定时间为10分钟。
    root_unlock_time:仅针对root用户单独设置的解锁时间。
    pwquality:检查新密码是否符合管理员定义的策略要求。如果密码不符合要求,系统将拒绝接受该密码,并可能向用户提供有关密码策略的反馈。
  
  • pam_deny.so模块
pam_deny.so模块总是拒绝身份验证请求。它通常用于测试或禁用某个服务。
    常用参数:
    无特殊参数,通常仅用于拒绝所有身份验证请求。
  
  • pam_permit.so模块
pam_permit.so模块总是允许身份验证请求。与pam_deny.so相反,它通常用于测试目的。
    常用参数:
    无特殊参数,通常仅用于允许所有身份验证请求。
  
  • pam_cracklib.so模块
pam_cracklib.so用于检查新密码的复杂度。此模块在V10系统中已被pam_pwquality.so替代,并且/etc/security/pwquality.conf配置文件的优先级高于/etc/pam.d/common-auth。
    常用参数:
    minlen:密码的最小长度。
    dcredit:要求密码中包含的小写字母的最小数量。
    ucredit:要求密码中包含的大写字母的最小数量。
    lcredit:要求密码中包含的数字的最小数量。
    ocredit:要求密码中包含的其他字符(如特殊符号)的最小数量。
  
  • pam_faillock.so模块
pam_faillock.so模块通过配置文件中指定的参数来控制账号锁定的行为。
    常用参数:
    deny:这个参数用于指定锁定账号的失败次数阈值。当用户的连续认证失败次数达到这个阈值时,账号将被锁定。例如,deny=3表示当用户连续3次输入错误的密码后,账号将被锁定。
    unlock_time:这个参数指定了账号被锁定后的恢复时间,即账号锁定的时长。当账号被锁定后,用户需要等待这个时长过后才能再次尝试登录。这个参数的值通常以秒为单位,例如unlock_time=600表示账号锁定时间为10分钟。
    fail_interval:这个参数用于指定两个认证失败事件之间的最小间隔时间。在此间隔时间内,认证失败次数不会被计数。这有助于防止因为短时间内多次尝试登录而导致的账号被误锁。例如,fail_interval=900表示两次认证失败事件之间的最小间隔为15分钟。
    fail_delay:这个参数指定了认证失败后的延迟时间。在认证失败后,系统会等待这个时长后再进行下一次认证尝试。这有助于防止暴力破解攻击。
    even_deny_root:root 账户登录达到失败次数也会锁定。
    audit:用于控制是否将认证失败的事件记录到系统审计日志中,以便后续分析和审计。
  
  • 控制标志
在/etc/pam.d/common-auth文件中,除了模块和参数外,还有一些控制标志,它们决定了身份验证的流程。
    常用模块:
    required:该模块必须成功,否则整个认证流程将失败,但其他后续模块仍会尝试。
    requisite:类似于required,但如果该模块失败,整个认证流程将立即失败,不会尝试其他后续模块。
    sufficient:如果该模块成功,则整个认证流程成功,不会尝试其他后续模块。
    optional:该模块是可选的,其成功或失败不会影响整个认证流程。
  

3. 加固建议

编辑/etc/pam.d/common-auth文件,使用pam_faillock.so模块配置相应参数实现账户登录失败锁定。
    在V10桌面系统中默认的账户登录失败锁定参数如下(连续错误三次锁定60秒):
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass deny=3 unlock_time=60  root_unlock_time=60  pwquality
    以连续失败5次、普通用户锁定时间为180秒、root锁定时间为60秒为例,可以按照如下参数修改:
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass deny=5 unlock_time=180  root_unlock_time=60  pwquality
  

4. 操作示范

编辑配置文件:sudo vim /etc/pam.d/common-auth
  

默认参数配置:

修改后参数配置:

5. 配置验证

test用户锁定验证:

图形化登录界面显示剩余锁定时间:

注意:此时图形界面不接受输入密码,如果字符终端再继续输入错误的密码,会重新锁定3分钟。

解锁后字符终端切换test用户,登录成功:su - test
  

解锁后图形化登录成功:

root用户锁定验证:

解锁后字符终端切换root用户,登录成功:su - root
  
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号