Linux PAM安全认证模块 移植

    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 

 

你可能感兴趣的:(Linux PAM安全认证模块 移植)