如何在 Linux 上设置密码策略

如何在 Linux 上设置密码策略,第1张

1.准备 安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。 在Debin,Ubuntu或者Linux Mint使用命令:sudo apt-get install libpam-cracklib

这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。

如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。

请注意,本教程中的密码规则只有在非root用户更改密码时强制执行。

2.避免重复使用旧密码 寻找同时包含“password”和"pam_unix.so"的行,然后再这行后面加上“remember=5”。这将防止5个最近使用过的密码被用来设置为新密码(通过将它们存放在/etc/security/opasswd文件中)。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password

修改内容:password[success=1 default=ignore]pam_unix.so obscure sha512 remember=5

在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth

修改内容:password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

3.设置最小密码长度 寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中<# of types>多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password

修改内容:password requisitepam_cracklib.so retry=3 minlen=10 difok=3

在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth

修改内容:password requisite pam_cracklib.so retry=3 difok=3 minlen=10

4.设置密码复杂度 寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password

修改内容:password requisitepam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth

修改内容:password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

5.设置密码的有效期 要设置当前密码的最大有效期,就修改/etc/login.defs文件的下列变量:sudo vi /etc/login.def

修改内容:PASS_MAX_DAYS 150

PASS_MIN_DAYS 0

PASS_WARN_AGE 7

这将迫使每一位用户每半年更改一次他们的密码,并且在密码过期之前七天发送密码过期还有几天到等等的警告信息给用户(到最后甚至在用户开机登录时强制用户更改密码,不然无法进入系统(个人在linux程序设计中看到的知识,非原作者观点))。如果你想基于不同的用户使用密码期限功能,那就使用chage命令。要查看针对特别用户的密码过期策略使用的命令如下:sudo chage -l xmodulo

注意:xmodule是原作者在linux系统中使用的用户名。 显示如下:Last password change: Dec 30, 2013

Password expires: never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

默认设置中,用户的密码是不会过期的。 为用户的xmodulo更改有限期限的命令如下:$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo

以上命令将密码设置为在2014年6月30日过期。并且,密码更改时间间隔的最大/最小数量分别为5和90。在一个密码过期后,这个账号将被锁30天。在密码过期前14天,警告信息就会发送到对应的账户。

设置某个用户的密码过期时间可以用usermod -e来设置,如果要统一设置用户的密码过期时间,那么就要修改/etc/login.defs里面的PASS_MAX_DAYS,比如修改所有用户的密码过期时间是30天:

PASS_MAX_DAYS 30

如果这个值是99999,那么表示密码永不过期。

或者就是直接修改/etc/shadow

root:XXXXXX:15::"U"::::

把"U"位置设为空或者99999就是不过期

Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。在 Linux 上设置密码策略,分三个部分,具体是:

1、准备。安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。在Debin,Ubuntu或者Linux Mint使用命令:

sudo apt-get install libpam-cracklib  这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。

2、设置最小密码长度。寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中<# of types>多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。

在Debin,Ubuntu或者Linux Mint使用命令:

sudo  vi  /etc/pam.d/common-password

修改内容:

password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3

在Fedora,CentOS或RHEL使用命令:

sudo  vi  /etc/pam.d/system-auth

3、设置密码复杂度。寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。

在Debin,Ubuntu或者Linux Mint使用命令:

sudo  vi  /etc/pam.d/common-password

修改内容:password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8728440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存