关于linux系统密码策略的设置 【百科全说】-凯发k8官方旗舰厅

腾讯视频/爱奇艺/优酷/外卖 充值4折起

由于工作需要最近需要将公司的多台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 #密码失效前多少天在用户登录时通知用户修改密码

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



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

04/22 03:16
linux系统下telnet的设置方法 linux系统下telnet服务的配置步骤: 一、安装telnet软件包(通常要两个) 1、 telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序; 2、 telnet-server ,这个软件包提供的是 telnet 服务器端程序; 安装之前先检测是否这些软件包已安装,方法如下: [root@echo root]#rpm –q telnet或[root@wljs root]#rpm –q telnet-clien
07/25 07:46
(一)linux 系统密码破解 1.在grub选项菜单按e进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按b重启 4.进入后执行下列命令 root@#passwd root (设置root的密码) enter new unix password:输入新的密码 root@#init 6 (二)debian linux 系统密码破解 1.在grub选项菜单'debian gnu/linux,...(recovery mode)',按e进入编辑模式 2.编辑kern
12/06 18:14
 linux系统网卡绑定的设置方法 简介 端口绑定就是将多个物理网卡绑定为一个逻辑网卡;根据模式不同可以网卡绑定的作用可分为提升吞吐量和热备份两个主要作用,一般都是提升吞吐量.另外需要bonding内核模块的支持. 配置 挂载模块 修改模块挂载配置文件vim /etc/modprobe.conf alias bond0 bonding options bond0 mode=balance-alb miimon=100 use_carrier=0 修改网卡参数 添加bond0配置vim /etc/
06/26 01:25
独立主机 rm -rf /etc/localtime ln -s /usr/share/zoneinfo/asia/shanghai /etc/localtime #修改时区到东8区. date -r #查看的时区设置. 接下来调整系统时间与时间服务器同步 debian系统安装ntp校时包: 代码如下: apt-get install ntpdate #安装ntp centos系统安装ntp校时包: 代码如下: yum -y install ntpdate ntp #安装ntp ubuntu系统
05/01 10:23
我们都知道,在win7系统的硬盘中记录着重要系统文件、程序、个人隐私等。如果用户将电脑借给他人使用的话,很容易被他人拷贝、查看。那么遇到这种情况我们应该怎么办呢?其实我们可以通过策略组设置硬盘为不可访问,从根本上解决这个问题。下面小编就为大家讲解下具体的设置方法! 1、系统开始菜单上选择运行对话框,在运行窗口中输入gpedit.msc命令点击确定; 2、接着在组策略下展开“用户配置”-“管理模板”-“windows组件”-“windows资源管理器”; 3、双击打开“防止从我的电脑访问驱动器”,
02/24 03:31
windows server 2008默认强制要求定期更改密码,这个功能有时实在是让人烦不胜烦,适当情况下可以考虑关闭。 方法如下: 1、按windows键 r(或者点开始---动行)打开运行窗口,输入gpmc.msc并回车,弹出”组策略管理控制台”窗口 2、左侧树形目录中,点开“组策略对象”——>找到“default domain policy”,点击鼠标右键,选择“编辑”,打开“组策略管理编辑器”窗口,按下图依次展开菜单: 在这里有对应的密码策略,按自已要求更改即可,不建议全部禁用。
12/10 04:29
linux挂载iscsi存储的方式 iscsi 提供给linux挂载有两种方式,一种通过iscsi 协议的ip映射,一种通过文件共享 nfs挂载。其中通过iscsi 协议的ip映射 方式挂载到linux中以磁盘形式展现,ip映射之后还需要对该磁盘分区,并格式化分区。 挂载步骤: 1:检查iscsi rpm包 2:启动iscsi服务并设置开机自启动 3:查找存储对外提供的逻辑卷 4:映射逻辑卷到linux系统中 5:设置开机自动映射 6:对映射出来的磁盘进行分区 7:分区之后进行格式化 8:挂载分
05/11 08:22
方法如下: 1、按windows键 r(或者点开始---动行)打开运行窗口,输入gpmc.msc并回车,弹出”组策略管理控制台”窗口 2、左侧树形目录中,点开“组策略对象”——>找到“default domain policy”,点击鼠标右键,选择“编辑”,打开“组策略管理编辑器”窗口,按下图依次展开菜单: 在这里有对应的密码策略,按自已要求更改即可,不建议全部禁用。 3、打开“运行”,输入“cmd”并回车,打开dos窗口,输入”gpupdate /force”强制更新策略。 4、密码策略
12/06 12:28
1.在"开始"菜单中搜索输入"gpedit.msc"命令按回车键,打开组策略编辑器. 2.依次展开"计算机配置"→"windows设置"→"安全设置"→"账户策略"→"密码策略",双击"密码必须符合复杂性要求"策略,打开其属性对话框,将属性设置为"已启用",然后单击"确定". 虽然在上面设置了密码要符合复杂性
网站地图