对于 Linux 系统管理员来讲,用户管理是最重要的事之一。这涉及到不少因素,实现强密码策略是用户管理的其中一个方面。移步后面的 URL 查看如何 在 Linux 上生成一个强密码。它会限制系统未受权的用户的访问。linux
全部人都知道 Linux 的默认策略很安全,然而咱们仍是要作一些微调,这样才更安全。弱密码有安全隐患,所以,请特别注意。移步后面的 URL 查看生成的强密码的密码长度和分值。本文将教你在 Linux 中如何实现最安全的策略。git
在大多数 Linux 系统中,咱们能够用 PAM(可插拔认证模块)来增强密码策略。在下面的路径能够找到这个文件。github
/etc/pam.d/system-auth
。/etc/pam.d/common-password
。关于默认的密码过时时间,能够在 /etc/login.defs
文件中查看详细信息。安全
为了更好理解,我摘取了文件的部份内容:ruby
# vi /etc/login.defs
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
复制代码
详细解释:bash
PASS_MAX_DAYS
:一个密码可以使用的最大天数。PASS_MIN_DAYS
:两次密码修改之间最小的间隔天数。PASS_MIN_LEN
:密码最小长度。PASS_WARN_AGE
:密码过时前给出警告的天数。咱们将会展现在 Linux 中如何实现下面的 11 个密码策略。dom
这一参数限制一个密码可以使用的最大天数。它强制用户在过时前修改他/她的密码。若是他们忘记修改,那么他们会登陆不了系统。他们须要联系管理员才能正常登陆。这个参数能够在 /etc/login.defs
文件中设置。我把这个参数设置为 90 天。ui
# vi /etc/login.defs
PASS_MAX_DAYS 90
复制代码
这个参数限制两次修改之间的最少天数。举例来讲,若是这个参数被设置为 15 天,用户今天修改了密码,那么在 15 天以内他都不能修改密码。这个参数能够在 /etc/login.defs
文件中设置。我设置为 15 天。spa
# vi /etc/login.defs
PASS_MIN_DAYS 15
复制代码
这个参数控制密码警告的前置天数,在密码即将过时时会给用户警告提示。在警告天数结束前,用户会收到平常警告提示。这能够提醒用户在密码过时前修改他们的密码,不然咱们就须要联系管理员来解锁密码。这个参数能够在 /etc/login.defs
文件中设置。我设置为 10 天。unix
# vi /etc/login.defs
PASS_WARN_AGE 10
复制代码
注意: 上面的全部参数仅对新帐号有效,对已存在的帐号无效。
这个参数控制密码历史。它记录曾经使用过的密码(禁止使用的曾用密码的个数)。当用户设置新的密码时,它会检查密码历史,若是他们要设置的密码是一个曾经使用过的旧密码,将会发出警告提示。这个参数能够在 /etc/pam.d/system-auth
文件中设置。我设置密码历史为 5。
# vi /etc/pam.d/system-auth
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
复制代码
这个参数表示密码的最小长度。当用户设置新密码时,系统会检查这个参数,若是新设的密码长度小于这个参数设置的值,会收到警告提示。这个参数能够在 /etc/pam.d/system-auth
文件中设置。我设置最小密码长度为 12。
# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12
复制代码
try_first_pass retry=3
:在密码设置交互界面,用户有 3 次机会重设密码。
这个参数表示密码中至少须要的大写字母的个数。这些是密码强度参数,可让密码更健壮。当用户设置新密码时,系统会检查这个参数,若是密码中没有大写字母,会收到警告提示。这个参数能够在 /etc/pam.d/system-auth
文件中设置。我设置密码(中的大写字母)的最小长度为 1 个字母。
# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 ucredit=-1
复制代码
这个参数表示密码中至少须要的小写字母的个数。这些是密码强度参数,可让密码更健壮。当用户设置新密码时,系统会检查这个参数,若是密码中没有小写字母,会收到警告提示。这个参数能够在 /etc/pam.d/system-auth
文件中设置。我设置为 1 个字母。
# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=-1
复制代码
这个参数表示密码中至少须要的数字的个数。这些是密码强度参数,可让密码更健壮。当用户设置新密码时,系统会检查这个参数,若是密码中没有数字,会收到警告提示。这个参数能够在 /etc/pam.d/system-auth
文件中设置。我设置为 1 个数字。
# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=-1
复制代码
这个参数表示密码中至少须要的特殊符号的个数。这些是密码强度参数,可让密码更健壮。当用户设置新密码时,系统会检查这个参数,若是密码中没有特殊符号,会收到警告提示。这个参数能够在 /etc/pam.d/system-auth
文件中设置。我设置为 1 个字符。
# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 ocredit=-1
复制代码
这个参数控制用户连续登陆失败的最大次数。当达到设定的连续失败登陆次数阈值时,锁定帐号。这个参数能够在 /etc/pam.d/system-auth
文件中设置。
# vi /etc/pam.d/system-auth
auth required pam_tally2.so onerr=fail audit silent deny=5
account required pam_tally2.so
复制代码
这个参数表示用户解锁时间。若是一个用户帐号在连续认证失败后被锁定了,当过了设定的解锁时间后,才会解锁。设置被锁定中的帐号的解锁时间(900 秒 = 15分钟)。这个参数能够在 /etc/pam.d/system-auth
文件中设置。
# vi /etc/pam.d/system-auth
auth required pam_tally2.so onerr=fail audit silent deny=5 unlock_time=900
account required pam_tally2.so
复制代码
via: www.2daygeek.com/how-to-set-…
做者:Magesh Maruthamuthu 选题:lujun9972 译者:lxbwolf 校对:wxy