nsswitch&PAM认证框架

一、nsswitch概述

1.nsswitch:network/name  service  switch

nsswitch网路名称服务解析是通用框架,与各种类型存储进行交互的公共模块化实现;

实现:/usr/lib64/libnss*,/lib64/libnss*

框架模块:libnss;驱动模块:libnss_files-

2.配置文件:/etc/nsswitch.conf

(1)格式

为每一种用到解析库的应用通过配置定义其位置,格式======解析库: store1  store2  …=======

解析库可以为文件、关系型数据管理系统(MySQL)、NIS、LDAP、DNS

例如:passwd: files        密码通过文件解析

hosts: files  dns    hosts通过文件解析,若没有再通过dns解析

(2)查找结果和状态

每种种存储中的查找结果状态:STATSU => success | notfound | unavail | tryagain

对应于每种状态结果的行为(action):return| continue

例子:

hosts:files  nis [NOTFOUND=return]  dns

3.getent命令:get  entries,从指明库中查找指定名称

getent  DATABASE  [key]

二、PAM概述

1.pam:pluggableauthenticationmodule,可插入式认证模块

通用框架,提供了与各种类型存储进行交互的公共实现、以及多种辅助类的功能:/lib64/security/*

提供认证库有多种类型的存储:文件、关系型数据管理系统、LDAP、NIS… ...

2.配置文件:

(1)为各种调用了pam的应用提供其专用配置

通用:/etc/pam.conf,可为每一种调用pam完成认证功能的应用程序提供配置;

专用:/etc/pam.d/*,通常专用于为某种特定的应用程序提供配置;通常每个应用会使用一个单独的配置文件;

(2)配置文件格式

通用配置文件:application    type    control    module-path    module-arguments

专用配置文件:type    control    module-path  module-arguments

3.配置文件格式详解

(1)type:检查的功能类别

可能使用一个或者多个进行限定认证


auth


账号的认证和授权;


account


与账号管理相关的非认证类的功能;


password


用户修改密码时密码复杂度检查机制;


session


用户获取到服务之前或使用服务完成之后需要进行一些附加性操作;

(2)control:同一种功能的多个检查之间如何进行组合;

1)简单实现:使用一个关键词来定义控制

required:必须通过检查;否则,即为失败;无论成功还是失败,都需继续由后续同种功能的其它模块进行检查;

requisite:一票否决;检测失败就直接返回失败;检测成功,则由由后续同种功能的其它模块进行检查;

sufficient:一票通过,检测成功就直接返回成功;检测失败,则由由后续同种功能的其它模块进行检查;

optional:可选的,参考性控制机制;

include:调用其它配置文件中的同种功能的检测机制;

2)详细实现:使用一个或多个“status=action”

[status1=action1,status2=action2, ...]

status:返回状态

action:采取的行为,比如ok,done, die, bad, ignore, ...

(3)module-path:模块文件路径;

相对路径:相对于/lib64/security/目录而言;

绝对路径:可位于任何可访问路径;

(4)module-arguments:模块的专用参数;

三、pam_limits.so:资源限制

1.pam_linits.so

在用户级别实现对其可使用的资源的限制,例如可打开的文件数量,可运行的进程数量,可用内存空间;

2.修改限制的实现方式:

(1)ulimit命令:用于调整软限制;

-n        最多的打开的文件描述符个数

-u        最大用户进程数

-S        使用 `soft‘(软)资源限制

-H       使用 `hard‘(硬)资源限制

(2)配置文件:/etc/security/limits.conf,/etc/security/limits.d/*.conf

配置文件:每行一个定义;

格式:<domain>       <type>  <item>  <value>

<domain>:应用于哪些对象

username

@group

*:所有用户

<type>:限制的类型

soft:软限制,普通用户自己可以修改;

hard:硬限制,由root用户设定,且通过kernel强制生效;

-:软硬使用相同限制;

<item>:限制的资源类型

nofile:所能够同时打开的最大文件数量;默认为1024;

nproc:所能够同时运行的进程的最大数量;默认为1024;

nsswitch&PAM认证框架

时间: 01-22

nsswitch&PAM认证框架的相关文章

nsswitch && pam

nsswitch & pam: nsswitch: name service switch名称服务解析 名称解析:用户名.组名.主机名.服务名.... 解析:根据已知的信息(key)查找某存储库,获取其它信息的过程: 存储:文件.SQL.NoSQL.LDAP.dns... 文件系统接口:系统调用 SQL: NoSQL: 通用框架,承上启下 启下:用于与各种存储进行交互: 承上:提供统一的配置和调用接口: 实现:库的形式存在 /usr/lib64/libnss*,/lib64/libnss* 框架

什么是PAM认证

PAM(Pluggable Authentication Modules )是由 Sun 提出的一种用于实现应用程序的认证机制.其核心是一套共享库,目的是提供一个框架和一套编程接口,将认证工作由程序员交给管理员,PAM 允许管理员在多种认证方法之间作出选择,它能够改变本地认证方法而不需要重新编译与认证相关的应用程序,同时也便于向系统中添加新的认证手段. PAM 最初是集成在 Solaris 中,目前已移植到其它系统中,如 Linux.SunOS.HP-UX 9.0 等,并在 Linux 中得到广

PAM 认证机制

v PAM:Pluggable Authentication Modules ü  认证库:文本文件,MySQL ,NIS ,LDAP等 等 ü Sun 公司于1995  年开发的 一种 与 认证 相关的通用框架 机制 ü PAM 是关注如何为服务验证用户的 API, 通过提供一些动 态链接库和一套统一的API ,将系统提供的服务和该服务的 认证方式分开 ü  使得系统管理员可以灵活地根据需要给不同的服务配置不 同的认证方式而无需更改服务程序 ü  一种认证框架,自身不做认证 v  它提供了对所

PAM认证

PAM(Pluggable Authentication Modules) Sun公司于1995年开发的一种与认证相关的通用框架机制:PAM. 可插入式认证模块,是实现认证工作的一个模块. 因为每个服务都用到不同的认证方式,所以就需要不同的认证库. 认证库有文本文件,MySQL数据库,NIS ,LDAP等,这些库所对应的系统模块位于/lib64/security/目录下的所有库文件(以".so"后缀的文件). PAM是关注如何为服务验证用户的API(应用程序接口),通过提供一些动态链接

Linux中pam认证详解(下)

Linux中pam认证详解(下) 在上一篇中详细的介绍了pam的介绍.pam认证原理.pam认证构成以及pam验证控制类型,下面向大家详细介绍一下常用的pam服务模块,以及pam认证的应用. 一.常用的pam服务模块 下面是Linux提供的PAM模块列表(只是其中一部分),这其中包含模块文件.模块功能描述和相关配置文件,具体如下: pam_access 提供logdaemon风格登录控制 /etc/security/access.conf pam_chroot 提供类似chroot命令的功能 p

搭建vsftp pam认证

1.yum安装vsftpd程序: [[email protected] other]# yum install vsftpd -y 2.修改配置文件 [[email protected] other]# vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO //是否允许anonymous登录FTP服务器,默认是允许的.local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许write_enable=YES //是否允许用户具有在F

PAM认证机制

PAM:Pluggable Authentication Modules 认证库:文本文件,MySQL,NIS,LDAP等 PAM 是关注如何为服务验证用户的API,通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开 使得系统管理员可以灵活地根据需要给不同的服务配置不 同的认证方式而无需更改服务程序 它提供了对所有服务进行认证的中央机制,适用于login,远 程登录(telnet,rlogin,fsh,ftp,点对点协议(PPP)),su等 应用程序中.系统管理员通

Linux -- 加强Linux服务器安全-PAM认证

PAM(Pluggable Authentication Modules)即可插拔式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式.当然,在不同版本的Linux统中部署PAM认证是有所不同的,本文将以RHEL4版本为例进行解析. 1.部署PAM认证的必要性 我们知道一台Linux服务器会开许多不同的服务,这些服务中很多服务本身并没有认证功能,只是把认证交给用户名及密码.如果这样的话,那么所有服务都用Linux系统的用户名及密码来认证,对于服务

CentOS6.3下vsftpd通过pam认证实现虚拟用户文件共享

FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立连接前就要经过一个"三次握手"的过程.FTP服务还有一个非常重要的特点是它可以独立于平台. LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd. 通常,访问FTP服务器时需