Linux用户密码策略
Linux用户密码的有效期,是否可以修改密码可以通过login.defs文件控制.对login.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令. ??? ??? Linux用户密码的复杂度可以通过pam pam_cracklib module或pam_passwdqc module控制,两者不能同时使用. 个人感觉pam_passwdqc更好用. /etc/login.defs密码策略 PASS_MAX_DAYS?? 99999???? #密码的最大有效期,99999:永久有期 PASS_MIN_DAYS?? 0????????? #是否可修改密码,0可修改,非0多少天后可修改 PASS_MIN_LEN??? 5?? ???????#密码最小长度,使用pam_cracklib module,该参数不再有效 PASS_WARN_AGE?? 7???????? #密码失效前多少天在用户登录时通知用户修改密码 pam_cracklib主要参数说明: tretry=N:重试多少次后返回密码修改错误 ??? ???????????? difok=N:新密码必需与旧密码不同的位数 ??? ???????????? dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字. ??? ???????????? lcredit=N:小宝字母的个数 ??? ???????????? ucredit=N大宝字母的个数 ??? ???????????? credit=N:特殊字母的个数 ??? ???????????? minclass=N:密码组成(大/小字母,数字,特殊字符) pam_passwdqc主要参数说明: mix:设置口令字最小长度,默认值是mix=disabled。 max:设置口令字的最大长度,默认值是max=40。 passphrase:设置口令短语中单词的最少个数,默认值是passphrase=3,如果为0则禁用口令短语。 atch:设置密码串的常见程序,默认值是match=4。 similar:设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是similar=permit允许相似或similar=deny不允许相似。 random:设置随机生成口令字的默认长度。默认值是random=42。设为0则禁止该功能。 enforce:设置约束范围,enforce=none表示只警告弱口令字,但不禁止它们使用;enforce=users将对系统上的全体非根用户实行这一限制;enforce=everyone将对包括根用户在内的全体用户实行这一限制。 non-unix:它告诉这个模块不要使用传统的getpwnam函数调用获得用户信息, retry:设置用户输入口令字时允许重试的次数,默认值是retry=3 ? 密码复杂度通过/etc/pam.d/system-auth实施 如: 要使用pam_cracklib将注释去掉,把pam_passwdqc.so注释掉即可. #password??? requisite???? /lib/security/$ISA/pam_cracklib.so retry=3 difok=1 password??? requisite???? /lib/security/$ISA/pam_passwdqc.so min=disabled,24,12,8,7 passphrase=3 password??? sufficient??? /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow ? #password??? requisite???? /lib/security/$ISA/pam_cracklib.so retry=3 difok=1 新密码至少有一位与原来的不同 ?PASS_MIN_DAYS参数则设定了在本次密码修改后,下次允许更改密码之前所需的最少天数。PASS_WARN_AGE的设定则指明了在口令失效前多少天开始通知用户更改密码(一般在用户刚刚登陆系统时就会收到警告通知)。 你也会编辑/etc/default/useradd文件,寻找INACTIVE和EXPIRE两个关键词: INACTIVE=14 EXPIRE= ??? 这会指明在口令失效后多久时间内,如果口令没有进行更改,则将账户更改为失效状态。在本例中,这个时间是14天。而EXPIRE的设置则用于为所有新用户设定一个密码失效的明确时间(具体格式为“年份-月份-日期”)。 ??? 显然,上述这些设定更改之后,只能影响到新建立的用户。要想修改目前已存在的用户具体设置,需要使用chage工具。 # chage -M 60 joe 这条命令将设置用户joe的PASS_MAX_DAYS为60,并修改对应的shadow文件。 ??? 你可以使用chage -l的选项,列出当前的账户时效情况,而使用-m选项是设置PASS_MIN_DAYS,用-W则是设置PASS_WARN_AGE,等等。chage工具可以让你修改特定账户的所有密码时效状态。 ??? 注意,chage仅仅适用于本地系统的账户,如果你在使用一个类似LDAP这样的认证系统时,该工具会失效。如果你在使用LDAP作为认证,而你又打算使用chage,那么,哪怕仅仅是试图列出用户密码的时效信息,你也会发现chage根本不起作用。 ??? 制定一项策略,定义多长时间一个密码必须进行更改,然后强制执行该策略,是非常不错的一个做法。在解雇了某个雇员后,口令时效策略会保证该雇员不可能在被解雇3个月后发现他的口令依然可用。即使系统管理员忽略了删除他的帐号,该帐号也会因密码时效策略而被自动锁定。当然,这一点并不能成为不及时删除该雇员帐号的理由,但是这个策略的确提供了一层额外的安全防护,尤其是在过去常常忽视及时清理帐号的情况下。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |