当前位置: 首页 > news >正文

BMC pam认证的使用

1.说明

1.1 文档参考资料

  • https://www.chiark.greenend.org.uk/doc/libpam-doc/html/Linux-PAM_ADG.html
  • http://www.fifi.org/doc/libpam-doc/html/pam_appl-3.html
  • pdf文档: https://fossies.org/linux/Linux-PAM-docs/doc/adg/Linux-PAM_ADG.pdf
  • linux-pam 中文文档
  • pam 旧文
  • pam教程: https://thelinuxcode.com/linux_pam_tutorial/
  • redhat介绍pam: https://www.redhat.com/sysadmin/pluggable-authentication-modules-pam
  • http://uw714doc.sco.com/en/SEC_pam/pam-4.html
  • https://docs.freebsd.org/fr/articles/pam/#pam-sample-module
  • pam体系架构

1.2 代码实现参考

可以参考一份googleTFA实例代码: https://github.com/google/google-authenticator-libpam

1.3 pam架构

在这里插入图片描述

在这里插入图片描述

2.在ubuntu上测试2FA

实验机器版本:
在这里插入图片描述
使用验证App,名称为:authenticator(苹果手机):
在这里插入图片描述
在这里插入图片描述

2.1 编译与安装以及验证

下载代码:https://github.com/google/google-authenticator-libpam. 需要提前在linux主机上安装程序:

# sudo apt-get install autoconf automake libtool
# sudo apt install libpam0g-dev
# sudo apt install qrencode

接着安装代码:

# ./bootstrap.sh
# ./configure
# make
# sudo make install

编译安装完成后,打印信息如下:
在这里插入图片描述
安装完成之后,执行命令:

# google-authenticator

可以看到QR code:
在这里插入图片描述
在这里插入图片描述
修改文件:/etc/ssh/sshd_config内容:

ChallengeResponseAuthentication yes  //默认为no

修改文件:/etc/pam.d/sshd内容:

auth required pam_google_authenticator.so

重启启动ssh服务:

# sudo /etc/init.d/ssh restart

接着登录ssh,可以看到:
在这里插入图片描述

2.2 添加nullok参数验证

在以上配置的基础上,修改文件/etc/pam.d/sshd内容为:

...
auth required pam_google_authenticator.so nullok
...

重启ssh服务:

# sudo /etc/init.d/ssh restart

此时,登录仍然需要2FA密码.
在这里插入图片描述
看一下目录 ~/.google_authenticator文件,存在以下内容:

N6DXZP4C2LHUYQSGMSWSXKCI34
" RATE_LIMIT 3 30 1728267304
" WINDOW_SIZE 17
" DISALLOW_REUSE 57608909
" TOTP_AUTH
24389978
41946909
49420241
17552925
43255031

在这里插入图片描述
删除文件~/.google_authenticator:

# sudo rm ~/.google_authenticator

重启ssh服务。再次登录,可以看到不需要2FA了。
在这里插入图片描述
当然,作为对比,可以将nullok去掉,继续本节的测试,发现是没办法登录的。

3.基于SSH实现自己的SPI内容

根据pam体系架构SSH已然将API函数实现了。如果需要增加一个新的验证功能函数,只需要实现SPI部分。

参考测试源码: https://gitee.com/wit_yuan/wityuan_pamtest

编译代码:

# make

拷贝生成的库文件:

sudo cp libpam_wityuan.so /usr/lib/x86_64-linux-gnu/security/

在文件/etc/pam.d/sshd中添加:

...
auth required libpam_wityuan.so
...

重启SSH,然后登录SSH,可以看到如下测试效果:
在这里插入图片描述

3.BMC自定义使用PAM认证

BMC实现自己的PAM认证方法,可以采取如下步骤:

  • 1.建立so,定义SPI
  • 2.在目录/etc/pam.d/下创建service文件,例如mytfa
  • 3.使用如下结构使用pam认证
pam_start()
pam_set_item()
pam_get_item()
pam_authenticate();
pam_end();

http://www.mrgr.cn/news/44937.html

相关文章:

  • LeetCode1049:最后一块石头的重量
  • IDEA搭建JDK1.8源码调试环境
  • Android架构--MVVM
  • Linux操作系统——概念扫盲I
  • Django学习笔记十四:系统框架总结
  • 分治算法(4)_快速选择_库存管理III_面试题
  • [运维]5.镜像本地存在但仍然从网络拉取的问题
  • 【Linux】自主shell编写
  • Nginx06-静态资源部署
  • 链表排序
  • 大语言模型(LLM)综述
  • 代码随想录--栈与队列--用栈实现队列
  • 【重学 MySQL】六十、空间类型
  • 永洪BI:企业数字化转型的得力助手
  • 等保测评的转型,对于提升我国网络空间的安全防护水平具有重要意义
  • TryHackMe 第7天 | Web Fundamentals (二)
  • Leecode刷题之路第12天之整数转罗马数字
  • 《重生到现代之从零开始的数据结构生活》—— 复杂度
  • Ollama接口系统详解
  • Mysql(六) --- 聚合函数,分组和联合查询