龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

常见的PAM认证模块简介(1)

时间:2011-03-20 22:37来源:未知 作者:admin 点击:
分享到:
概述:本文介绍常见的PAM认证模块,包括每一个模块的所属类型、功能描述以及可识别的参数,有配置文件的,我们给出了配置文件的简单说明,其中一部分模块,我们还给出了配置实

  概述:本文介绍常见的PAM认证模块,包括每一个模块的所属类型、功能描述以及可识别的参数,有配置文件的,我们给出了配置文件的简单说明,其中一部分模块,我们还给出了配置实例。希望通过我们的介绍,使读者对常用的PAM认证模块有一定的了解。本文的介绍是基于RedHat7.x系统。水平有限,不足之处请读者批评指正。

  

  1.pam_access认证模块

  

  所属类型:account

  

  功能描述:该模块提供基于登录用户名、客户ip/主机名、网络号以及登录终端号的访问控制。缺省的,该模块的配置文件是/etc/security/access.conf,可以使用accessfile参数指定自定义的配置文件。

  

  可带参数:accessfile=/path/to/file.conf

  

  配置文件说明:

  该文件的每一行由如下三个字段构成,中间使用冒号分割:

  权限 : 用户 : 来源

  权限字段可以是”+”(即允许访问),”-”(禁止访问);

  用户字段可以是用户名、组名以及诸如user@host格式的用户名,ALL表示任何人,

  具有多个值时,可以用空格分开。

  来源字段可以是tty名称(本地登录时)、主机名、域名(以”.”开始),主机ip地址,网络号(以”.”结束)。ALL表示任何主机,LOCAL表示本地登录。

  可以使用EXCEPT操作符来表示除了…之外。

  

  配置实例:

  只有bye2000可以从本地登录主机。

  编辑/etc/pam.d/login如下所示:

   #%PAM-1.0

  auth required /lib/security/pam_securetty.so

  auth required /lib/security/pam_stack.so service=system-auth

  auth required /lib/security/pam_nologin.so

  account required /lib/security/pam_stack.so service=system-auth

  account required /lib/security/pam_access.so

  password required /lib/security/pam_stack.so service=system-auth

  session required /lib/security/pam_stack.so service=system-auth

  session optional /lib/security/pam_console.so

  也即加上

  account required /lib/security/pam_access.so

  然后在/etc/security/access.conf中加上:

  -:ALL EXCEPT bye2000 : LOCAL

  假如禁止root以外的任何人从任何地方登录,可以在/etc/security/access.conf中加上:

  -:ALL EXCEPT root: ALL

  

  2.pam_chroot认证模块

  

  所属类型:account, session, auth

  

  功能描述:该模块为一般用户提供一个虚根环境,该模块的配置文件是/etc/security/chroot.conf。

  

  可带参数:

  debug:将调试信息写入日志

  onerr:定义当配置文件无法打开、chroot()函数失败以及配置文件中没有用户信息时的动作,缺省为”succeed”。

  

  附加说明:该模块文档不全,没有对chroot.conf的相关配置说明。

  

  3.pam_cracklib认证模块

  

  所属类型:password

  

  功能描述:该模块对用户密码提供强健性检测。换句话说,您可以定义用户密码的方方面面,比如密码长度、密码的复杂程度等等。

  

  可带参数:

  debug:将调试信息写入日志

  type=xxx:添加/修改密码时,系统的缺省提示符是” New UNIX password:”以及” Retype UNIX password:”,使用该参数可以自定义提示符中的UNIX,比如指定type=your.

  retry=N:定义添加/修改密码失败时,可以重试的次数。

  Difok=N:定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受。

  minlen=N:定义密码最小长度。

  dcredit=N:定义密码中可以包含数字的最大数目。

  ucredit=N:定义密码中可以包含的大写字母的最大数目。

  lcredit=N:定义密码中可以包含的小写字母的最大数目。

  ocredit=N:定义密码中可以包含的其他字符(除数字、字母之外)的最大数目。

  

  配置实例:

  请参考/etc/pam.d/system-auth文件

  

  4.pam_deny认证模块

  

  所属类型:account, session, auth,password

  

  功能描述:该模块仅仅返回一个错误。用来拒绝用户访问。通常该模块被用来作为缺省的验证规则。

  

  可带参数:无

  

  配置实例:

  请参考/etc/pam.d/system-auth文件

  

  5.pam_env认证模块

  所属类型: auth

  

  功能描述:该模块可以用来设置任意的环境变量,缺省的,该模块的配置文件是/etc/security/pam_env.conf,可以使用conffile参数指定自定义的配置文件。

  

  配置文件说明:该配置文件每一行(一个条目)的语法如下:

  变量名 [DEFAULT=[值]] [OVERRIDE=[值]]

  选项DEFAULT说明这是一个缺省值;OVERRIDE则说明可以覆盖缺省值。在该配置文件中,可以使用${变量名}的形式应用变量。除此之外,该模块还可以从/etc/environment文件中读入形如“变量名=值”的环境变量,当然该文件也可以用readenv参数自己指定。需要注意的是,该文件的读入的值,将覆盖conffile文件中的缺省值。

  

  可带参数:

  debug:将调试信息写入日志

  conffile=filename:指定自定义的配置文件;

  readenv=filename:指定自定义包含“变量名=值”形式的环境变量配置文件;

  readenv=1/0:设置是否从readenv中读入环境变量,缺省是1,也即读入。

  

  配置实例:

  请参考/etc/pam.d/system-auth文件

  

  6.pam_filter认证模块

  

  所属类型:account, session, auth,password

  

  功能描述:该模块提供对用户和应用程序交互内容的访问控制功能,目前仅仅具有大小写转换功能。该模块还有待完善。

  

  7.pam_ftp认证模块

  

  所属类型:auth

  

  功能描述:该模块提供匿名ftp用户认证机制。

  

  可带参数:

  debug:将调试信息写入日志

  users=xxx,yyy:指定采用该模块进行认证的用户名,缺省为ftp和anonymous,可以用逗号进行分割;

  

  ignore:不对用户输入的密码(邮件地址)进行检验。

  

  

精彩图集

赞助商链接