PAM认证机制

1.PAM介绍

认证库:文本文件,MySQL,NIS,LDAP等
PAM 是关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开
使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序
一种认证框架,自身不做认证
它提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp,点对点协议(PPP)),su等应用程序中。系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略;应用程序开发者通过在服务程序中使用PAM API(pam_xxxx( ))来实现对认证方法的调用;而PAM服务模块的开发者则利用PAM SPI来编写模块(主要是引出一些函数pam_sm_xxxx( )供PAM接口库调用),将不同的认证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应的PAM服务模块联系起来。

2.PAM架构

Paste_Image.png

pam认证原理
 PAM认证一般遵循这样的顺序:
Service(服务)→PAM(配置文件)→pam_\*.so
 PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证

3. PAM认证过程:(以passwd为例)

(1)使用者执行/usr/bin/passwd 程序,并输入密码
(2)passwd开始呼叫PAM模块,PAM模块会搜寻passwd程序的PAM相关设定文件,这个
  设定文件一般在/etc/pam.d/里边的与程序同名的文件,即PAM会寻/etc/pam.d/passed这个设置文件
(3)经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证
(4)将验证结果回传给passwd这个程序,而passwd这个程序会根据PAM回传的结果决定下一个动作(重新输入密码或者通过验证)

eg:passwd→PAM模块→/etc/pam.d/passwd→调用库文件来生效/lib64/seturity/*.so

4. PAM相关文件

 模块文件目录:/lib64/security/*.so
 环境相关的设置,独立的配置文件,完成用户对系统资源的使用和控制:/etc/security/
主配置文件:/etc/pam.conf,默认不存在
 为每种应用模块提供一个专用的配置文件:
/etc/pam.d/APP_NAME
注意:如/etc/pam.d存在,/etc/pam.conf将失效

5.文件格式

(1)通用配置文件/etc/pam.conf格式

application type control module-path arguments

(2)专用配置文件/etc/pam.d/* 格式

type control module-path arguments

Paste_Image.png

 说明:

 服务名(application)telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
 模块类型(type)
 control PAM库该如何处理与该服务相关的PAM模块的成功或失败情况
 module-path 用来指明本模块对应的程序文件的路径名
 Arguments 用来传递给该模块的参数
Paste_Image.png

contrl 复杂详细实现:使用一个或多个“status=action”
 [status1=action1 status2=action …]
Status:检查结果的返回状态
Action:采取行为 ok,done,die,bad,ignore,reset
 ok 模块通过,继续检查
 done 模块通过,返回最后结果给应用
 bad 结果失败,继续检查
 die 结果失败,返回失败结果给应用
 ignore 结果忽略,不影响最后结果
 reset 忽略已经得到的结果

Paste_Image.png
模块通过读取配置文件完成用户对系统资源的使用控制
/etc/security/*.conf
 注意:修改PAM配置文件将马上生效
 建议:编辑pam规则时,保持至少打开一个root会话,以防止root身份验证错误

pam文档说明
 /user/share/doc/pam-*
 rpm -qd pam
 man –k pam_
 man 模块名 如man rootok
 《The Linux-PAM System Administrators' Guide》

(1)示例模块:pam_shells

 功能:检查有效shell
 man pam_shells
 示例:不允许使用/bin/csh的用户本地登录

vim /etc/pam.d/login
auth required pam_shells.so
vim /etc/shells
去掉 /bin/csh
useradd –s /bin/csh testuser
testuser将不可登录
tail /var/log/secure
(2)示例模块:pam_securetty.so

 功能:只允许root用户在/etc/securetty列出的安全终端上
登陆
 示例:允许root在telnet登陆

vi /etc/pam.d/login
#auth required pam_securetty.so #将这一行加上注释
或者/etc/securetty文件中加入
pts/0,pts/1…pts/n
(3)示例模块:pam_nologin.so

 功能:如果/etc/nologin文件存在,将导致非root用户不能登陆,如果用户shell是/sbin/nologin 时,当该用户登陆时,会显示/etc/nologin.txt文件内容,并拒绝登陆

(4)示例模块:pam_limits.so

 功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
① 修改限制的实现方式:

ulimit命令,立即生效,但无法保存
-n 最多的打开的文件描述符个数
-u 最大用户进程数
-S 使用 soft(软)资源限制
-H 使用 hard(硬)资源限制

②配置文件:/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
 <value> 指定具体值
eg:

 限制用户最多打开的文件数和运行进程数
/etc/pam.d/system-auth
session required pam_limits.so
 vim /etc/security/limits.conf
apache – nofile 10240 apache用户可打开10240个文件
student hard nproc 20 不能运行超过20个进程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容