安全加密之-PAM

简介: 时间: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月前
|
存储 安全 算法
探索未来数据保护的钥匙:安全加密算法
在数字化时代,数据安全成为了一个重要的议题。本文将深入探讨安全加密算法的作用和意义,以及其在数据保护中的应用。通过对不同类型的加密算法进行介绍和比较,我们将揭示它们在保护个人隐私和商业机密方面的重要性。同时,我们还将探讨未来发展趋势,展望安全加密算法在数据保护领域的潜力。
61 1
|
7月前
|
监控 网络协议 网络虚拟化
18.3 NPCAP 构建中间人攻击
ARP欺骗(ARP Spoofing)是一种网络攻击手段,其目的是通过欺骗目标主机来实现网络攻击。ARP协议是一种用于获取MAC地址的协议,因此欺骗者可以使用ARP欺骗来迫使其目标主机将网络流量发送到攻击者控制的设备上,从而实现网络攻击。ARP欺骗攻击通常可以用于实现中间人攻击、会话劫持、密码盗窃等网络攻击,因此网络管理人员和用户都应当了解如何防范和检测ARP欺骗攻击。常见的防范手段包括静态ARP表、ARP监控工具、虚拟专用网络(VPN)等。
29 2
18.3 NPCAP 构建中间人攻击
|
11天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
4月前
|
算法 安全 网络安全
HTTPS加密原理解析:保障通信安全的密码学算法
HTTPS加密原理解析:保障通信安全的密码学算法
58 0
|
9月前
|
算法 数据安全/隐私保护
国家专用加密数据传输之rsa,3des加密方法
国家专用加密数据传输之rsa,3des加密方法
81 0
|
9月前
|
Web App开发 存储 安全
「可信计算」助力TLS 传输更安全
「可信计算」助力TLS 传输更安全
115 0
|
存储 安全 网络安全
互联网密钥交换 (IKEv2) 协议中的多重认证交换
互联网密钥交换 (Internet Key Exchange,IKEv2) 协议支持多种认证各方的机制,包括使用公钥证书签名、共享密钥和可扩展认证 (Extensible Authentication Protocol,EAP) 方法。目前,每个端点只使用其中一种机制来认证自己。本文档规定了 IKEv2 的扩展,它允许使用多重认证交换,使用不同的机制或相同的机制。例如,此扩展允许对客户端主机执行基于证书的认证,然后对用户进行 EAP 认证。使用后端认证服务器时,它们可以属于不同的管理域,例如网络访问提供商和服务提供商。
305 0
互联网密钥交换 (IKEv2) 协议中的多重认证交换
|
安全 算法 网络安全
网络和通信安全中的SSL / TLS国密改造
GB/T39786提供了信息系统密码应用的技术框架,互联网、政务外网、企业专网等网络类型,涉及通信主体的各个要素,都需要遵循要求进行改造升级。
2248 0
网络和通信安全中的SSL / TLS国密改造
|
监控 安全 网络协议
DockerClient端与DockerDaemon的通信安全
容器的安全性问题的根源在于容器和宿主机共享内核。如果容器里的应用导致Linux内核崩溃,那么整个系统可能都会崩溃。 与虚拟机是不同的,虚拟机并没有与主机共享内核,虚拟机崩溃一般不会导致宿主机崩溃。
DockerClient端与DockerDaemon的通信安全
|
安全 算法 网络安全
【计算机网络】网络安全 : 数据加密模型 ( 加密模型 | 密钥 | 密码学 | 密码安全 )
【计算机网络】网络安全 : 数据加密模型 ( 加密模型 | 密钥 | 密码学 | 密码安全 )
520 0
【计算机网络】网络安全 : 数据加密模型 ( 加密模型 | 密钥 | 密码学 | 密码安全 )