CentOS - 系统认证机制pam

 

linux下PAM模块全称是Pluggable Authentication Module for linux(可插入式授权管理模块),该由Sun公司提供,在Linux中,PAM是可动态配置的,本地系统管理员可以自由选择应用程序如何对用户进行身份验证。PAM应用在许多程序与服务上,比如登录程序(login、su)的PAM身份验证(口令认证、限制登录),passwd强制密码,用户进程实时管理,向用户分配系统资源等。

 

配置文件

 

PAM的配置文件位置 /etc/pam.conf,也可以在/etc/pam.d/文件夹下配置单独的文件,当存在/etc/pam.d文件夹时,Linux-PAM将会使用/etc/pam.d文件夹下的配置文件而忽略/etc/pam.conf配置文件。

 pam.conf配置文件中,配置内容写在一行内,也可以以"\"作为连接符将配置内容写在多行;pam.conf以空格作为分割标记,#代表标注信息;“-”如果在配置语句前面加上该符号,在系统登录时如果该模块未被正确加载,不会将该事件记录到系统日志中,即“-”表示可选项。

 如果配置文件放置在/etc/pam.d文件夹下,则配置文件中没有service选项,且配置文件的名字为service名字,文件名必须小写,配置语法区分大小写,配置规则格式为:

service  type   control  module-path  module-arguments

服务名称  类型  控制    模块路径    模块参数 

 

 

 

type类型

 

account manager(account):提供账户服务验证,如账户密码是否过期,是否对该账户提供服务

 

authentication manager(auth):负责对用户进行认证并建立用户凭证;通常该模块通过交互式方法进行认证,比如你应当输入密码证明你是你,但并非所有的认证都是该类型  

 

password manager(password):进授权认证机制进行更新,如更改密码

 

session manager(session):当开启一个新会话时,该模块负责处理会话的准备任务,而当关闭某一个会话时,该模块负责善后工作,如卸载该用户home目录

 

        在没有利用centos的PAM模块之前,普通用户可以随意的切换到root账户(前提是知道root账户的密码),即使知道root密码随意登陆root账户也会造成一些不安全的因素

        现在在我的系统上可以登陆系统shell环境的有root,zhangsan,wangwu三个账户

image.png


        现在我就利用这个两个账户试着跟root账户切换看一看,发现现在这两个普通账户可以跟root(管理员账户)之间来回切换.  这样有着很多的安全隐患,现在要实现的目标是禁用这些账户对root账户随意切换的功能

 image.png

        为了实现这个功能就要利用了CentOS的PAM验证机制,而这个PAM验证机制的配置文件救灾在/etc/pam.d/目录下面. 打开一看已经发现这个su的命令就在里面

image.png


        现在使用vim /etc/pam.d/su命令对这个su命令的配置文件进行设置. 请注意看下图的用框框起来的地方. 这是一个验证模块,因为前面有一个#号相当于被注释了,也就是这个模块没有被开启. 如果想开启这个验证模块就要把之前的注释符号"#"给删除就可以了

image.png


        现在这边把#删除了,然后按"wq"保存退出  就代表已经启用了这个su命令的验证模块

 image.png


        然后切换到zhangsan的普通账户,看看能不能再切回到root账户,这边发现普通用户已经不能再切换回root账户了,是因为刚才启用了刚才的PAM验证模块

image.png


        这边还有一个wheel(安全组)的概念,也就说被添加到这个组的成员可以执行跟root账户来回的切换以及使用root账户的命令.  现在使用gpasswd -a zhangsan wheel命令把zhangsan用户添加到wheel(安全组)当中去看看能不能切换到root用户

image.png


         切换到zhangsan用户后再切换root账户,发现已经成功的切换了,为什么了?因为刚刚把zhangsan用户添加到了wheel(安全组)当中去了 ,然后再试着切换到wangwu账户,再切换到root账户发现已经切换不了,因为wangwu账户没有被添加到wheel(安全组)当中去 

        这边就利用PAM验证模块实现了账户之间的一个安全切换的问题

image.png