安全加密之-PAM

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
运维安全中心(堡垒机),免费版 6个月
简介: 时间:2018.1.16作者:李强参考:man,info,magedu讲义,万能的internet实验环境:VMware® Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。

时间:2018.1.16
作者:李强
参考:man,info,magedu讲义,万能的internet
实验环境:VMware® Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。

Pluggable Authentication Modules

  • 原由;

我们在系统中经常要用到各种认证,login登录需要认证,ssh,telnet ,ftp等需要认证,snmp,smtp等也需要认证,总之既然大家都需要认证,那么找个人统一管理下好不好。PAM有个各个认证模块,关于资源限制的,关于用户账号的,关于登录时间的,各个模块,当你的服务需要认证时,你只要把你的需求告诉PAM,它就会根据/etc/pam.d/下你指定的认证机制来去调用/etc/security下各个库。
各种应用服务只需要提供服务就好,验证的事情就交给系统和PAM来处理,然后告诉你是提供还是拒绝服务。
只要ldd 调用了libpam.so 库文件的都可以受其控制

  • 认证过程:
graph LR

A[application]-->B[libpam.so]
B[/etc/pam.d/application]-->C[/lib*/secure/*.so]
C[/lib*/secure/*.so]-->D[/lib*/secure/*.conf]

1.使用者执行/usr/bin/passwd 程序,并输入密码

2.passwd开始调用PAM模块,PAM模块会搜寻passwd程序的PAM相关设置文件,这个设置文件一般是在/etc/pam.d/里边的与程序同名的文件,即PAM会搜寻/etc/pam.d/passwd此设置文件

3.经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证

4.将验证结果回传给passwd这个程序,而passwd这个程序会根据PAM回传的结果决定下一个动作(重新输入密码或者通过验证)

配置文件格式

man -k pam

查看各个pam中模块的使用帮助

man pam.conf

/etc/pam.d/下的配置文件格式

因为其子系统太多,因此默认不存在/etc/pam.conf配置文件。而是放在各个子配置文件中。各个应用的pam认证规则配置存放在/etc/pam.d中

回归正题格式为:
type control module-path module-arguments

type control module-path module-arguments
auth require /lib64/secure xxx
account x
password x
-type x
  • type

    auth:账号的认证或授权
    account:与账号管理的非认证的功能:如用来限制/允许用户对某个服务的访问时间,当前有效的系统资源(最多可以登录多少账户),限制用户的位置(root用户只能通过tty终端登录)等
    password:用户修改密码时密码复杂度检查机制等功能
    session:用户获得服务之前或者使用服务之后需要进行的一些附加操作,比如记录打开或关闭数据的信息,监控目录等
    -type:表示因为缺失而不能加载的模块将不记录到系统日志,对那些不总是安装在系统上的模块有用
  • control(PAM库如何处理与该服务相关的PAM模块成功或失败情况,两种方式实现:简单和复杂)
简单方式实现:一个关键字实现
require:一票否决,表示本模块必须成功才能通过
requisite:一票否决,同上
sufficient:一票通过,表示本模块返回成功则通过身份认证
optional:可选,它的成功与否不会对身份认证起关键作用,参考用
include:调用其他配置文件中定义的配置信息

复杂方式实现: 使用一个或多个"status=action"
[status1=action1 status2=action2....]
Status:检查结果的返回状态,success ,default
Action:ok,done,bad,die,ignore,reset
ok 模块通过继续检查
done 模块通过,返回最后结果给应用
bad 结果失败,继续检查
die 结果失败,返回失败结果给应用
ignore 结果忽略,不影响最后结果
reset 忽略已经得到的结果
  • module-path(模块路径,一般相对路径/lib64/security下模块)
pam_nologin.so 普通用户允许登录,如果/etc/nologin文件存在,非root用户不能登录,如果用shell是/sbin.nologin 登录时会显示/etc/nologin文件内容,并拒绝登录
pam_shells.so 控制登录终端类型,检查登录用户shell类型为 /etc/shells中的类型,方可登录
pam_securetty.so 只允许root登录在/etc/securetty列出的安全终端上
pam_limits.so 在用户级别实现对其可用的资源限制,例如:可打开的文件数量,可运行的进程数量,可使用的内存空间等。
修改限制的方式
1、ulimit命令,立即生效,单无法保存,只在当前会话有效
2、配置文件/etc/scurity/limits.conf,/etc/scurity/limits.d/*.conf
  • module-arguments (用来传递给该模块的参数,配置少时用参数,多时可以考虑/etc/security下的各个模块的配置文件)
相关文章
|
4月前
|
存储 安全 算法
探索未来数据保护的钥匙:安全加密算法
在数字化时代,数据安全成为了一个重要的议题。本文将深入探讨安全加密算法的作用和意义,以及其在数据保护中的应用。通过对不同类型的加密算法进行介绍和比较,我们将揭示它们在保护个人隐私和商业机密方面的重要性。同时,我们还将探讨未来发展趋势,展望安全加密算法在数据保护领域的潜力。
178 1
|
1月前
|
网络协议 安全 网络安全
中间人攻击之未加密的通信
【8月更文挑战第12天】
31 2
|
27天前
|
算法 安全 网络安全
|
27天前
|
安全 网络安全 数据安全/隐私保护
|
3月前
|
监控 安全 网络安全
探讨网站加密访问的安全性问题:HTTPS的防护与挑战
**探讨HTTPS在网站加密中的角色,提供数据加密和身份验证,防范中间人攻击。心脏滴血漏洞示例显示持续维护的必要性。面临证书管理、性能影响和高级攻击挑战,应对措施包括更新、HSTS策略及用户教育。HTTPS是安全基础,但需不断优化以应对新威胁。**
151 2
|
4月前
|
算法 Serverless 数据安全/隐私保护
密钥的使用和安全性
【5月更文挑战第13天】密钥的使用和安全性
38 1
|
4月前
|
算法 安全 网络安全
HTTPS加密原理解析:保障通信安全的密码学算法
HTTPS加密原理解析:保障通信安全的密码学算法
335 0
|
算法 数据安全/隐私保护
国家专用加密数据传输之rsa,3des加密方法
国家专用加密数据传输之rsa,3des加密方法
95 0
|
Web App开发 存储 安全
「可信计算」助力TLS 传输更安全
「可信计算」助力TLS 传输更安全
162 0
|
安全 算法 网络安全
网络和通信安全中的SSL / TLS国密改造
GB/T39786提供了信息系统密码应用的技术框架,互联网、政务外网、企业专网等网络类型,涉及通信主体的各个要素,都需要遵循要求进行改造升级。
2351 0
网络和通信安全中的SSL / TLS国密改造