Linux PAM安全认证模块 移植

2019-07-12 19:02发布

    PAM为Linux的安全认证模块,其详细介绍、工作原理及认证方法可参考网址:https://blog.csdn.net/yuanlaijike/article/details/78726606, 本文主要介绍PAM的移植以及移植以后的环境配置。本次移植的硬件环境为ARM -a8平台,编译器为armv7-linux-gcc ,PAM源码下载地址为:https://github.com/linux-pam/linux-pam/releases,本文采用的版本是1.3.1。此外,PAM模块还需要libcrack.so库和crackelib-dict字典的支持,该库也需要从网上下载,本文采用的crack库 版本为2.9.2。在源码准备好以后就可以进行交叉编译。          1、编译crack库:                  1)解压源码,进入crack源码目录,配置编译环境:./configure --host=armv7-linux --prefix=xxx    ,xxx表示安装绝对路径;                  2) make                   3) make   install                  4)在xxx安装路径下会生成相关文件,将libcrack.so库文件(注意:该库至关重要,若没有该库文件,PAM则不会生成pam_cracklib.so文件,该文件用于口令功能)拷贝至编译器系统库,将include下的文件拷贝至编译器系统include目录          2、编译PAM 模块                  1)解压源码,进入PAM源码目录,配置编译环境:./configure --host=armv7-linux --prefix=xxx    ,xxx表示安装绝对路径;                  2) make ,在编译时若出现有几处未定义函数,可将其屏蔽,不会对PAM 功能造成太大影响                  3) make  install                  4)在xxx安装路径下会有几个文件,将lib目录下的libpam.so和libpam_misc.so库文件拷贝至编译器系统库,将include目录下 的文件拷贝至编译器include目录下         至此,可以在虚拟机上进行代码的编译,编译方法为                               armv7-linux-gcc pam_test.c -lpam -lpam_misc -ldl                              -ldl        显式加载动态库的动态函数库           3、移植                   1) 将crack 源码编译出来的crack.so文件拷贝至目标机/lib目录                   2) 进入PAM安装目录,将lib下的libpam.so和libpam_misc.so库文件拷贝至目标机/lib目录,将  lib下的security目录拷贝至目标机/lib, 将etc目录下的pam.d目录和security目录拷贝至目标机/etc目录                3)解压字典文件cracklib_dict.zip,在目标机/usr目录下 mkdir   dict ,将解压出来的字典文件pw_dict.* 拷贝至目标机/usr/dict 目录        至此,移植工作已经完成,接下来就可根据需要配置文件,实现想要的功能。            4、配置文件                         配置文件放置在/etc/pam.d目录下,每个文件即代表一个服务类型,配置文件格式为:                                        工作类别   控制模式   模块路径(默认路径为 /lib/security)   模块参数                       详情可参考http://blog.51cto.com/7424593/1924260