在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系统中密码的安全性,减少因弱密码或密码攻击而导致的安全风险。记得在实施任何策略更改后进行充分的测试,确保系统的正常运行。
标签:策略,配置文件,etc,过期,密码,Linux,pam From: https://www.cnblogs.com/huangjiabobk/p/18188639