即插即用安全验证模块-使用pam模块(代码片段)

hongjinping hongjinping     2022-11-29     692

关键词:

可插入式验证模块(PAM)

。可插入式验证木块
。应用程序调用libpam函数来验证和授权用户
。libpam基于应用程序的PAM配置文件做检测
    。可以通过libc在NSS中检查
。共享的,动态可配置代码
。文档:/usr/share/doc/pam-<version>/
#man -k pam_  //打印linux可供使用的pam模块

PAM操作

。/lib/security/PAM模块
    。每个模块执行一个通过(pass)或失败(fail)测试
    。在/etc/security/中的文件会影响到一些模块如何执行他们的测试
。/etc/pam.d/PAM模块 
    。服务文件决定了怎样/何时模块被使用在特定的程序上
/etc/pam.d/文件:测试
。测试分成四组:
    。auth    认证用户是否为此用户
    。account    用于给账户授权
    。password    控制密码的修改
    。session    打开,断开并记录会话
。按需调用每个分组并提供各自的结果给服务。
/etc/pam.d/文件:控制值
。控制值决定了如何测试每个分组返回总的结果
    。required    必须通过测试。如果失败了仍然继续后续测试
    。requisite    雷同于required,除了在失败后立即停止测试
    。sufficient    如果通过测试,立即返回成功状态(比如满足第一个条件通过,直接返回成功);而如果失败,忽略测试结果继续监测
    。optional    测试是否通过都无关紧要(基本用户session环节)
    。include    从所包含而调用到配置文件中放回测试控制总结果   //可能这个配置文件中包含了其他配置文件。需要两个方面验证。
不建议编写系统级别验证规则,就是system-auth,尽量单独编写对应应用程序的文件。
#man pam.conf

实例:/etc/pam.d/login文件

技术图片

 

PAM排错

。检查系统日志
    。/var/log/messages
    。/var/log/secure
。PAM错误会导致root被锁
    。在做测试时保持一个root的shell可用
    。单用户模式绕过PAM
    。使用救援碟引导系统

#tar cvf ~/pam.tar /etc/pam.d/  //将/etc/pam.d下面文件打包到家目录下,并命名为pam.tar  

linux操作系统与安全相关的日志记录在/var/log/secure中

可以#tail -f secure     动态刷新secure日志查看登陆输入错误密码的提示。

#man -k pam_ | less  //查看当前系统下安装的pam模块  

system_auth文件
。system-auth被广为使用
    。通过include而被调用,它不是一个模块(比如pam_stack.so)
    。包含标准认证测试
    。在系统中被使用应用程序共享使用
    。简单的,一致的标准系统的验证方式
pam_unix.so
。基于NSS的验证
    。auth    获取从NSS获得Hash后的密码
    比与Hash后输入的密码相比较
    。account    检查密码的失效期
    。password    处理密码的改变修改本地文件或NIS
    。session    记录登陆或退出日志
网络验证
    。集中密码管理
        。pam_krb5.so(Kerberos V票据)
        。pam_ldap.so(LDAP binds)
        。pam_smb.auth.so(老的SMB认证)
        。pam_winbind.so(通过winbindd的SMB)
    。一些服务使用NSS/pam_unix.so
        。NIS,Hesiod,一些LDAP配置
auth模块
。pam_securetty.so    如果root登陆了在/etc/securetty没有列举的终端结果失败
。pam_nologin.so     如果非root用户存在在/etc/nologin中结果失败
。pam_listfile.so    按照一个列表文件检查认证特性
    。列出哪些账户被允许/拒绝
密码安全
    。pam_unix.so    使用MD5 hash密码
        。确保密码Hash格式不容易破解
    。pam_unix.so    shadow密码
        。让hash的密码只对root可见
        。老化密码
    。也有一些其他模块支持密码老化机制
Password策略
。密码历史记录
    。pam_unix.so    接remember=N参数
。密码长度
    。pam_cracklib.so
    。pam_passwdqc.so
。监控失败的登陆
    。pam_tally.so
Session模块
。pam_limits.so    对资源的强制限制
    。使用/etc/security/limits.conf
。pam_console.so    为控制台设置本地设备权限
    。同样可以用在auth模块中
。pam_selinux.so    用来设置SELinux上下文属性
。pam_mkhomedir.so    如果主目录不存在将创建一个

 

  

  

cbam——即插即用的注意力模块(附代码)(代码片段)

论文:CBAM:ConvolutionalBlockAttentionModule代码: code目录前言1.什么是CBAM?(1)Channelattentionmodule(CAM)(2)Spatialattentionmodule(SAM)(3)CAM和SAM组合形式2.消融实验(1)Channela... 查看详情

常用的即插即用的注意力机制模块(secbam)(代码片段)

1、SENet1.1前言        SENet是最后一届ImageNet2017竞赛分类任务的冠军。SENet网络的创新点在于关注channel之间的关系,希望模型可以自动学习到不同channel特征的重要程度。为此,SENet提出了Squeeze-and-Excitation(SE)模块。   ... 查看详情

改进yolov5系列:10.最新hornet结合yolo应用首发!|eccv2022出品,多种搭配,即插即用|backbone主干递归门控卷积的高效高阶空间交互(代码片段)

YOLOAir:面向小白科研的YOLO检测项目-GitHub💡统一使用YOLOv5代码框架,结合不同模块来构建不同的YOLO目标检测模型。🌟本项目包含大量的改进方式,降低改进难度,改进点包含【Backbone特征主干】、【Neck特征融合】... 查看详情

打包基于 JavaScript 的即插即用应用程序

】打包基于JavaScript的即插即用应用程序【英文标题】:PackagingJavaScriptbasedplugandplayapplication【发布时间】:2017-04-1223:09:36【问题描述】:我正在尝试构建一个即插即用的基于Web的应用程序,我应该能够与多个其他Web应用程序(使... 查看详情

pam_tally2身份验证模块

一、概述PAM身份验证安全配置实例-强制使用强密码(用户密码安全配置)-用户SSH登录失败尝试次数超出限制后锁定账户(帐户锁定/解锁和时间设置)-允许普通用户使用sudo而不是su(限制普通用户登录到root用户)-禁止直接使用... 查看详情

如何为高度解耦、即插即用的复杂组件构建 Redux?

】如何为高度解耦、即插即用的复杂组件构建Redux?【英文标题】:HowtostructureReduxforahighlyde-coupled,plug-n-playcomplexcomponent?【发布时间】:2018-04-1012:49:16【问题描述】:我对Redux很陌生,想在我的应用程序中使用它,但我在Redux部分... 查看详情

智能家居通用管理平台-即插即用机制的设计

   即插即用机制,对智能家居的推广,非常重要。没有她,老百姓估计不会使用。   好了,现在有了“智能冰箱”和它的驱动程序,SHM就可以使用它的SHDD来与冰箱交互了,并且是使用TCPIP协议通信。但... 查看详情

如何让即插即用的 WPF 应用程序创建 SQL 数据库? [关闭]

】如何让即插即用的WPF应用程序创建SQL数据库?[关闭]【英文标题】:HowtomakeaplugandplayWPFappcreateaSQLdatabase?[closed]【发布时间】:2020-11-2212:22:15【问题描述】:我目前正在学习WPF,目的是为朋友制作一个简单的应用程序。此应用程... 查看详情

第一个不支持即插即用的nt式helloworld驱动

1.安装好驱动包2.编写源代码Sources文件和makefile文件##源代码/*********************************文件名称:Driver.h*作者:左飞*完成日期:2016-9-4*********************************/#pragmaonce//保证头文件只被编译一次#ifdef__cplusplusextern"C"//兼容C代码{ 查看详情

yolov8-gradcam热力图可视化即插即用不需要对源码做任何修改!(代码片段)

...给大家带来yolov8-gradcam热力图可视化,这个可视化是即插即用,不需要对源码做任何修改喔!给您剩下的不少麻烦!代码链接:yolo-gradcam里面还有yolov5和v7的热力图可视化代码,也是即插即用,不需要对... 查看详情

macos读写ntfs即插即用.

1.安装osxfusehttps://osxfuse.github.io/2.安装brewhttps://brew.sh/index_zh-cn.html3.安装ntfs-3gbrewinstallntfs-3g4.替换本地的mount_ntfs文件sudomv/sbin/mount_ntfs/sbin/mount_ntfs.oldsudoln-s/usr/local/sbin/mount_ntf 查看详情

如何在没有 Windows 窗体的情况下接收即插即用设备通知

】如何在没有Windows窗体的情况下接收即插即用设备通知【英文标题】:HowtoreceivePlug&Playdevicenotificationswithoutawindowsform【发布时间】:2011-01-0421:26:00【问题描述】:我正在尝试编写一个可以捕获Windows消息的类库,以便在设备已... 查看详情

将即插即用设备映射到 PCI 插槽 ID,C#

】将即插即用设备映射到PCI插槽ID,C#【英文标题】:MappingPlugNPlayDevicestoPCISlotIDs,C#【发布时间】:2017-06-0918:18:42【问题描述】:我有一定数量的外部设备,我们称它们为事物。每个事物都通过插入PCI插槽的PnP卡与计算机连接。每... 查看详情

flask蓝图理解(代码片段)

...之间的关系。蓝图代表着应用的一个个功能模块,能做到即插即用。我们先来建立一个蓝图fromflaskimportFlask,render_templatefromflaskimportBlueprintadmin=Blueprint(‘admin‘,__name__,static_folder=‘static‘,template_folder=‘template 查看详情

改进yolov7系列:最新结合即插即用ca(coordinateattention)注意力机制(适用于yolov5),cvpr2021顶会助力分类检测涨点!(代码片段)

💡统一使用YOLOv5、YOLOv7代码框架,结合不同模块来构建不同的YOLO目标检测模型。论文所提的Coordinate注意力很简单,可以灵活地插入到经典的移动网络中,而且几乎没有计算开销。大量实验表明,Coordinate注意... 查看详情

使用 SSH 的 PAM 模块

...】:是否有PAM模块可以通过SSH质询-响应对用户进行身份验证?我正在尝试编写一个PAM感知应用程序,该应用程序本质上具有与SSH连接相同的身份验证过程。我一直无法找到已经这样做的PAM模块(pam_ssh模块仍然是基于密码的),... 查看详情

即插即用开源在线客服系统——ppmessage

PPMessage是一个开源的在线客服平台。PPMessage能够帮助你在第一时间与你的客户建立联系,开发人员可以非常容易的将PPMessage集成到你的网站或者iOS、Android的应用中。PPMessage的前端后端都是开源的,后端全部基于Python,简洁高效... 查看详情

分享一个即插即用的私藏缓动动画js小算法

二、即插即用的缓动小算法原理如下:假设要从数值A变化到数值B,如果是线性运动,则每次移动距离是一样;如果是缓动,每次移动距离不一样。那如何才能不一样呢?很简单,按比例移动就可以。例如:每次移动剩余距离的... 查看详情