Linux用户密码策略要求
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统版本:
Red Hat Enterprise Linux AS release 4
Linux用户密码策略
Linux用户密码的有效期,是否可以修改密码可以通过login.defs文件控制.对l ogin.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令.
Linux用户密码的复杂度可以通过pam pam_cracklib module或pam_pass wdqc 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大宝字母的个数
ocredit=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,2 4,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
新密码至少有一位与原来的不同.
#########################################
服务器的系统安全确实是一件让大多数用户头痛的事情:如何确保系统中使用应用程序或服务的用户确是用户本人?如何给这些用户指定限制访问服务的时间段?以及如何限制各种应用程序或服务对系统资源的使用率等等?所有的这些问题,常规的安全措施并不能妥善地解决。在使用Linux内核的RedHat企业Linux3中,已经集成了一种叫做可插入式认证模块(Pluggable Authentication Modules)的安全验证方式,能够用它来完成上面所示的任务。
可插入认证模块(简称PAM)是基于模块化设计、具有可插入功能的一种独立于应用程序之外的验证方式。使用PAM后,应用程序可以不需要集成验证功能,而由PAM来完成。例如,在Linux系统中,Login
服务为用户提供系统登录服务,它提示用户输入相应的用户名和密码来验证用户的有效性,当使用PAM后,这个验证过程可以由PAM来代替。PAM具有很大的灵活性,系统管理员可以通过它为应用程序自由选择需要使用的验证方式。鉴于PAM有这么多优点,在本文中,将以RedHat企业Linux3为应用平台,来讨论如何使用PAM来增强Linux服务器的安全性能。
一、PAM入门必读
当LINUX服务器中的某个应用程序或服务需要使用PAM来进行验证时,只要此应用程序或服务支持PAM 验证功能,就可以通过修改其相应的PAM配置文件,加放相应的验证方式,当重新启用些服务或应用程序时,PAM模块就会通过其专用API来读取它的配置文件,根据配置文件中的内容来提供相应的验证功能。所有验证功能都是通过一些库文件来提供的。
因此,在使用PAM之前,先掌握PAM配置文件的设置方法,了解一些常用的验证模块就显得非常必要。当某个支持PAM验证的应用程序启动时,就会通过PAM的API读取它的PAM配置文件,然后根据配置文件中验证项指定的内容,再由API调用所需的验证模块来完成配置文件中指定的验证任务。从这里可以看出,要掌握PAM的使用,就必需了解配置文件的配置规则,以及各种验证模块的意义和作用。
在这里还要注意的是,一个Linux系统下的应用程序能够使用PAM功能,最关键的是它已经将支持PAM 功能的代码集成到了原代码当中。如果你能够得到一个应用程序的原代码,你也可以自行将支持PAM的功能代码加入其中。但是,如果你得到的二进制文件不具有这些PAM功能代码,那么,此应用程序就不支持PAM验证功能。查看应用程序是否具有PAM验证功能,可以使用ldd命令查看其动态连接库中有没有libpam和libpam_misc,有就支持。
1、设置PAM的配置文件
在RedHat企业Linux3系统中,每个支持PAM验证的应用程序或服务,都有一个相应的PAM配置文件,存放在/etc/pam.d/目录。要想这些配置文件有效,就必需将这些配置文件名字编写进程序源代码中。通常,这些配置文件的名字与其对应的应用程序的名字是一样的。
要想设置这些配置文件,只需要通过VI或VIM来打开它们,然后添加或删除其中的验证项就可以。
打开/etc/pam.d/目录下的任何一个配置文件,其中每行的验证规则都使用如下所示的语法格式:Type Control-flag Module-path Module-arguments
其中每行代表一个独立的验证方式,每个配置文件可以由多种验证规则相互叠加而成。验证时PAM-API 会按照从上往下的方式一一读取这些验证规则,并根据其中的控制标志做出相应的动作。
在编辑配置文件时一定要小心谨慎,由于规则的验证是有上下顺序之分的,因此你要小心确定某些危险的验证规则处于配置文件中的正确位置。因为一旦出错,可能会导致系统的部分功能或整个系统不能访问,这样你就不得不重新恢复它们的备份。
要正常配置PAM配置文件,就应当了解配置文件方法格式中每列的所包括的内容,下面是这些列的简短说明:
(1)、Type列,主要用来指定需要验证的类型。一共有以下四种验证类型:
1、 auth 验证使用者身份,提示输入帐号和密码;
2、 account 提供对帐户的进一步验证,例如验证帐户的此操作是否已经过期,权限多大,拥有此权限的时间期限是否已经过期等等;
3、 password 提供对密码的细致控制,例如控制密码的使用期限,重复输入的次数,密码锁定后的解禁时限等等。
4、 session 对每个会话进行跟踪和记录,记录的内容包括登录的用户名及登录的时间和次数等等。
(2)、Control-flag列,主要用来控制在验证过程中动作和返回结果的方式。它有两种类型的表达方式:简单的就是使用一个简单的关键字,复杂的可以使用方括号来嵌套控制标志,并可在方括号中使用value=action的方式表达。
简单的关键字有四个: