关于linux系统密码策略的设置

由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度。

操作步骤如下,不会的同学可以参考:

操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处)

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段。PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX 9.0等。

PAM的配置是通过单个配置文件/etc/pam.conf。RedHat还支持另外一种配置方式,即通过配置目录/etc/pam.d/,且这种的优先级要高于单 个配置文件的方式。

1、使用配置文件/etc/pam.conf

该文件是由如下的行所组成的:

service-name module-type control-flag module-path arguments

service-name 服务的名字,比如telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务。

module-type 模块类型有四种:auth、account、session、password,即对应PAM所支持的四种管理方式。同一个服务可以调用多个 PAM模块进行认证,这些模块构成一个stack。

control-flag 用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。它有四种可能的 值:required,requisite,sufficient,optional。

required 表示本模块必须返回成功才能通过认证,但是如果该模块返回失败的话,失败结果也不会立即通知用户,而是要等到同一stack 中的所有模块全部执行完毕再将失败结果返回给应用程序。可以认为是一个必要条件。

requisite 与required类似,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直 接将控制权返回给应用程序。是一个必要条件。注:这种只有RedHat支持,Solaris不支持。

sufficient 表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack内的其它模块,但是如果本模块返回失败的话可以 忽略。可以认为是一个充分条件。

optional表明本模块是可选的,它的成功与否一般不会对身份认证起关键作用,其返回值一般被忽略。

对于control-flag,从Linux-PAM-0.63版本起,支持一种新的语法,具体可参看LinuxPAM文档。

module-path 用来指明本模块对应的程序文件的路径名,一般采用绝对路径,如果没有给出绝对路径,默认该文件在目录/usr/lib/security下面。

arguments 是用来传递给该模块的参数。一般来说每个模块的参数都不相同,可以由该模块的开发者自己定义,但是也有以下几个共同 的参数:

debug 该模块应当用syslog( )将调试信息写入到系统日志文件中。

no_warn 表明该模块不应把警告信息发送给应用程序。

use_first_pass 表明该模块不能提示用户输入密码,而应使用前一个模块从用户那里得到的密码。

try_first_pass 表明该模块首先应当使用前一个模块从用户那里得到的密码,如果该密码验证不通过,再提示用户输入新的密码。

use_mapped_pass 该模块不能提示用户输入密码,而是使用映射过的密码。

expose_account 允许该模块显示用户的帐号名等信息,一般只能在安全的环境下使用,因为泄漏用户名会对安全造成一定程度的威胁。

2、使用配置目录/etc/pam.d/(只适用于RedHat Linux)

该目录下的每个文件的名字对应服务名,例如ftp服务对应文件/etc/pam.d/ftp。如果名为xxxx的服务所对应的配置文件/etc/pam.d/xxxx不存 在,则该服务将使用默认的配置文件/etc/pam.d/other。每个文件由如下格式的文本行所构成:

module-type control-flag module-path arguments

每个字段的含义和/etc/pam.conf中的相同。

由于公司使用的是RedHat的linux故此我将使用pam.d这个配置目录。密码复杂度通过/etc/pam.d/system-auth这个文件来实现的故此我们先看一下默认有什么内容然后将这个文件备份一个:



在这个文件中我们会用到pam_cracklib.so这个模块。pam_cracklib.so是一个常用并且非常重要的PAM模块。该模块主要的作用是对用户密码的强健性进行检测。即检查和限制用户自定义密码的长度、复杂度和历史等。如不满足上述强度的密码将拒绝使用。

pam_cracklib.so比较重要和难于理解的是它的一些参数和计数方法,其常用参数包括:

debug:将调试信息写入日志;

type=xxx:当添加/修改密码时,系统给出的缺省提示符是“New UNIX passwZhttp://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcmQ6obHS1LywobBSZXR5cGUgVU5JWDxicj4KcGFzc3dvcmQ6obGjrLb4yrnTw7jDss7K/b/

J0tTX1Lao0uXK5Mjrw9zC67XEzOHKvrf7o6yxyMjn1ri2qHR5cGU9eW91ciBvd24gd29yZKO7PGJyPgpyZXRye

T1Oo7q2qNLltcfCvC/Q3rjEw9zC68qnsNzKsaOsv8nS1NbYytS1xLTOyv2juzxicj4KRGlmb2s9TqO6tqjS5d

DCw9zC69bQsdjQ69PQvLi49tfWt/vSqtPrvsnD3MLrsrvNrKGjtavKx8jnufvQwsPcwuvW0NPQMS8y0tTJz7XE

19a3+9PrvsnD3MLrsrvNrMqxo6y4w9DCw9zC672rsbu908rco7s8YnI+Cm1pbmxlbj1Oo7q2qNLl08O7p8

Pcwuu1xNfu0KGzpLbIo7s8YnI+CmRjcmVkaXQ9TqO6tqjS5dPDu6fD3MLr1tCx2NDrsPy6rLbgydm49sr919ajuzxicj4Kd

WNyZWRpdD1Oo7q2qNLl08O7p8PcwuvW0LHY0Ouw/LqstuDJ2bj2tPPQtNfWxLijuzxicj4KbGNyZWRpdD1Oo7q2q

NLl08O7p8PcwuvW0LHY0Ouw/LqstuDJ2bj20KHQqdfWxLijuzxicj4Kb2NyZWRpdD1Oo7q2qNLl08O7p8Pcwuv

W0LHY0Ouw/LqstuDJ2bj2zNjK4tfWt/ujqLP9yv3X1qGi19bEuNauzeKjqaO7PGJyPgo8L3A+CjxwPrj5vt3O0r

XE0OjSqs7SvavD3MLrst/C1NbGtqjI58/Co7qx2NDrsPy6rNbBydnSu7j20KHQtNfWxLihosr919ahoszYyuLX1rf7o6z

D3MLrs6S2yNbBydk3zrujrNTac3lzdGVtLWF1dGjOxLz+1Pa808jnz8LE2sjdo6yxo7TmuvPNy7P2o7o8L3A+CjxwPjxpb

Wcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140924/2014092409230757.png" alt="/">

(注)*credit=-1表示至少有一个的意思。

然后配置login.defs,这个文件主要是配置密码有效期,其中的PASS_MIN_LEN这个参数在我们配置了上一个文件之后在这里是不起作用的。其他



PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期

PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改

PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效

PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码

当设置完成这些之后我们可以去验证一下系统中已经存在的用户在设置密码的时候是否会强制验证密码复杂度,如下图所示如果不符合密码复杂度会提示错误信息:



如果符合了你的密码复杂度就可以正常设置密码了。

(0)

相关推荐

  • Linux系统下Telnet的设置方法

    Linux系统下Telnet的设置方法 Linux系统下Telnet服务的配置步骤: 一、安装Telnet软件包(通常要两个) 1、 Telnet-clIEnt (或 Telnet),这个软件包提供的 ...

  • Linux 系统密码破解的几种常用方法

    (一)Linux 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 root@#passwd ...

  • Linux系统网卡绑定的设置方法

     Linux系统网卡绑定的设置方法 简介 端口绑定就是将多个物理网卡绑定为一个逻辑网卡;根据模式不同可以网卡绑定的作用可分为提升吞吐量和热备份两个主要作用,一般都是提升吞吐量.另外需要bonding内 ...

  • 在Linux系统中,如何设置中文语言

    这里针对linux系统,Ubuntu和centos系统 操作方法 01 首先打开linux系统,root用户或非root用户都可以.输入locale命令,可以看到此时系统的语言是,zh_CN.GB18 ...

  • 在各种Linux系统的服务器上设置时间同步的方法

    独立主机 rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区到东8区. date -R ...

  • 如何设置Windows系统密码

    系统通过密码来辨认用户的身份,以管理分配权限.获得了密码就获得了相应的访问权限,因此密码的保护和系统安全息息相关.那么windows系统密码该如何设置呢? 接下来我就给大家简单的介绍一下. windo ...

  • 浅谈win7系统如何通过策略组设置硬盘为不可访问的方法

    我们都知道,在Win7系统的硬盘中记录着重要系统文件、程序、个人隐私等。如果用户将电脑借给他人使用的话,很容易被他人拷贝、查看。那么遇到这种情况我们应该怎么办呢?其实我们可以通过策略组设置硬盘为不可访 ...

  • Windows 2008定期更改密码策略关闭方法

    Windows Server 2008默认强制要求定期更改密码,这个功能有时实在是让人烦不胜烦,适当情况下可以考虑关闭。 方法如下: 1、按windows键+R(或者点开始---动行)打开运行窗口,输 ...

  • Linux系统是如何挂载iscsi存储的?

    Linux挂载iscsi存储的方式 iscsi 提供给Linux挂载有两种方式,一种通过iscsi 协议的ip映射,一种通过文件共享 nfs挂载。其中通过iscsi 协议的ip映射 方式挂载到Linu ...