zoukankan      html  css  js  c++  java
  • linux系统安全及应用——PAM安全认证

    一、PAM认证模块介绍

      PAM认证模块,叫做可插拔式的认证模块。一项重要的功能就是为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换。PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp),su等应用程序中,系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。

      PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。用户访问服务器的时候,服务器某一个服务程序把用户的请求发送到PAM模块进行认证,不用的应用程序对应的PAM模块也是不同的。

    二、PAM认证用法

      如果想查看某个程序是否支持PAM认证,那么可以进行过滤,例如:

      ~] #ls /etc/pam.d | grep su(这里su是一个文件,一个配置文件,与服务同名,修改它就是对su进行认证配置)

      例如查看su的PAM配置文件:cat  /etc/pam.d/su  每一行都是一个独立的认证过程,每一行可以区分为三个字段:1)认证类型 2)控制类型 3)PAM模块及其参数。

    下面简单的介绍四种常见认证类型

      (1)认证管理(authentication management)接受用户名和密码,进而对该用户的密码进行认证

      (2)账户管理(account management)检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间段的限制等

      (3)密码管理(password management)主要是用来修改用户的密码

      (4)会话管理(session management)主要是提供对会话的管理和记账(accounting)

    那么控制类型也可以称做Control Flags,用于PAM验证类型的返回结果,具体有以下四种:

      (1)required验证失败时仍然继续验证,但返回Fail

      (2)requisite验证失败则立即结束整个验证过程,返回Fail

      (3)sufficient验证成功则立即返回,不再继续,否则忽略结果并继续

      (4)optional不用于验证,只是显示信息(通常用于session类型)

    三、PAM验证流程

      

    下面解读验证示例表格

      以use1举例,第一个required控制类型通过调用module1模块,进行验证通过后,进入sufficient控制类型,通过后,进入required控制类型,N/A代表不需要再执行了,结果就是验证成功。

      

    四、案例分析

      例:控制用户使用su命令进行切换

      1)、启用/etc/pam.d/su中的pam_wheel模块

      pam_rootok:检查用户是否为超级用户,如果是超级用户(uid=0)则无条件地通过认证

      pam_wheel:只允许wheel组的用户有超级用户的存取权限(只有wheel组里的人有su命令权限)

      2)添加授权用户bob到wheel组

      3)测试:bob可以切换到root,其他用户不能切换

    具体操作方法:

      ~] #vim /etc/pam.d/su 

      添加一行或者放行注释

      auth        required         pam_wheel.so  use_uid

      ~] #gpasswd -a bob  wheel

      

  • 相关阅读:
    【Java】推断文件的后缀名
    UVa 131
    Java开发手冊 Java学习手冊教程(MtJava开发手冊)
    《Java并发编程实战》第十五章 原子变量与非堵塞同步机制 读书笔记
    OC语言--NSFileManager& NSFileHandle
    为什么我刚发表的文章变成了“待审核”,csdn有没有官方解释啊
    mac os升级为 Yosemite 10.10 后不能创建javaproject
    【spring】在spring cloud项目中使用@ControllerAdvice做自定义异常拦截,无效 解决原因
    【mybatis】mybatis动态order by 的问题, 注意 只需要把#{} 改成 ${} 即可
    【spring cloud】一个ms微服务想要给注册中心eureka发现,需要满足这些条件,微服务不能被eureka注册中心发现的解决方案
  • 原文地址:https://www.cnblogs.com/mangood/p/5988178.html
Copyright © 2011-2022 走看看