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

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.kler.cn/news/336880.html

相关文章:

  • 基于SSM的仿win10界面的酒店管理系统
  • 系统架构设计师-下午案例题(2018年下半年)
  • Qt_QSS介绍与使用
  • 大数据毕设方向怎么做
  • 【pytorch】张量求导4
  • [Day 85] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 【GESP】C++一级练习BCQM3029,选择合适的数据类型
  • Leetcode—152. 乘积最大子数组【中等】
  • Linux基础入门 --13 DAY(SHELL脚本编程基础)
  • 强化学习入门到不想放弃-4
  • Python 语言学习——应用1.1 数字图像处理(第一节,颜色)
  • 【Linux】基础IO(文件描述符、缓冲区、重定向)
  • 【2024保研经验帖】武汉大学测绘遥感国家重点实验室夏令营(计算机向)
  • 在 nodejs 和 MySQL 中,分页查询的占位符
  • 地理定位营销与开源AI智能名片O2O商城小程序的融合与发展
  • AIGC与BI的融合:永洪开启数据智能新时代
  • 生信机器学习入门4 - 构建决策树(Decision Tree)和随机森林(Random Forest)分类器
  • 网络编程项目框架内容
  • zabbix7.0监控linux主机案例详解
  • 【MySQL】使用 JDBC 连接数据库