作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,如何实现安全的密码策略?

在Linux中实现安全的密码策略涉及到多个方面,主要包括设置密码复杂度规则、密码过期策略、密码历史限制以及尝试失败后的账户锁定等。以下是实现这些策略的详细步骤和方法:

1. 修改/etc/login.defs配置文件

/etc/login.defs文件是控制用户密码和其他账户属性的主要配置文件。你可以在这里设置密码的最小长度、密码过期时间、密码历史等。

  • 设置密码最小长度:

    PASS_MIN_LEN   12
    

    这里设置密码最小长度为12个字符。

  • 密码过期时间:

    PASS_MAX_DAYS   90
    

    设置密码最大使用天数为90天,之后用户必须更改密码。

  • 密码过期警告天数:

    PASS_WARN_AGE   7
    

    用户在密码过期前7天开始收到警告。

  • 密码历史:

    ENCRYPT_METHOD SHA512
    PASSWORD_HISTORY 5
    

    设置使用SHA512加密算法,并限制用户不能重复使用最近5次的密码。

2. 使用PAM模块增强密码复杂度

安装并配置pam_cracklib.so模块,以强制执行密码复杂度规则。

  • 安装模块(如果尚未安装):
    在Debian、Ubuntu或Linux Mint上:

    sudo apt-get install libpam-cracklib
    

    在CentOS、Fedora上:

    sudo yum install pam_cracklib
    
  • 编辑PAM配置文件(通常在/etc/pam.d/system-auth/etc/pam.d/common-password):
    添加或修改以下行来启用复杂度检查:

    password    requisite     pam_cracklib.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
    

    这里,minlen=12指定了密码最小长度,difok=3表示新密码至少有3个字符不同于旧密码,其余选项限制了字母、数字、特殊字符的使用。

3. 防止密码猜测攻击

使用pam_tally2.so模块来限制密码尝试次数并锁定账户。

  • 编辑PAM配置文件(如/etc/pam.d/sshd/etc/pam.d/common-auth):
    添加以下行以在失败尝试后锁定账户:

    auth            required        pam_tally2.so deny=5 unlock_time=1800
    

    这里,deny=5表示在账户被锁定前允许的失败登录尝试次数为5次,unlock_time=1800设置锁定时间为30分钟。

4. 测试与应用
  • 重启服务:对于某些服务,如SSH,可能需要重启才能应用新的PAM配置。

    sudo systemctl restart sshd
    
  • 测试策略:尝试创建或更改密码,验证新的策略是否生效。

综上所述,你可以显著提升Linux系统中密码的安全性,减少因弱密码或密码攻击而导致的安全风险。记得在实施任何策略更改后进行充分的测试,确保系统的正常运行。

posted @ 2024-05-13 09:35  黄嘉波  阅读(252)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波