最近项目上需要使用tacplus客户端,因此需要在ppc设备上部署tacacs client认证功能
github上面有一个c based 的项目www.github.com/kravietz/pam_tacplus
在X86环境上试了一下,感觉还比较简单易用,决定使用这个项目最为AAA认证的一部分
准备工作还需要下面一些依赖库
编译libpam
获取linux-pam-1.3.0.tar.gz
http://www.linux-pam.org/library/
项目是automake生成的,配置还比较简单,编译过程如下
./configure --enable-static --disable-pie --host=ppc-linux --prefix=/home/allen/workspace/tacacs_build/repo --disable-nls \
CC=/home/allen/workspace/toolchains/powerpc-e5500-linux-gnu_linux-3.12.50_binutils-2.25.1_gcc-5.2.0_glibc-2.19_32big/bin/powerpc-e5500-linux-gnu-gcc
make && make install
需要注意的是将所有的.h文件拷贝到security目录下面,后面编译pam_tacplus工程时使用
mkdir /home/allen/workspace/tacacs_build/repo/include/security
mv /home/allen/workspace/tacacs_build/repo/include/*.h /home/allen/workspace/tacacs_build/repo/include/security
编译pam_tacacus
从github上面获取分支
git clone www.github.com/kravietz/pam_tacplus
配置编译
./configure --host=ppc-linux --prefix=/home/allen/workspace/tacacs_build/repo \
CC=/home/allen/workspace/toolchains/powerpc-e5500-linux-gnu_linux-3.12.50_binutils-2.25.1_gcc-5.2.0_glibc-2.19_32big/bin/powerpc-e5500-linux-gnu-gcc \
CFLAGS="-I/home/allen/workspace/tacacs_build/repo/include" \
LDFLAGS="-L/home/allen/workspace/tacacs_build/repo/lib"
make && make install
编译结果内容还是很多,主要的lib库
├── lib
│ ├── libpam.a
│ ├── libpamc.a
│ ├── libpamc.la
│ ├── libpamc.so -> libpamc.so.0.82.1
│ ├── libpamc.so.0 -> libpamc.so.0.82.1
│ ├── libpamc.so.0.82.1
│ ├── libpam.la
│ ├── libpam_misc.a
│ ├── libpam_misc.la
│ ├── libpam_misc.so -> libpam_misc.so.0.82.1
│ ├── libpam_misc.so.0 -> libpam_misc.so.0.82.1
│ ├── libpam_misc.so.0.82.1
│ ├── libpam.so -> libpam.so.0.84.2
│ ├── libpam.so.0 -> libpam.so.0.84.2
│ ├── libpam.so.0.84.2
│ ├── libtac.la
│ ├── libtac.lai
│ ├── libtac.so -> libtac.so.3.0.0
│ ├── libtac.so.3 -> libtac.so.3.0.0
│ ├── libtac.so.3.0.0
│ ├── pam_tacplus.la
│ ├── pam_tacplus.lai
│ ├── pam_tacplus_la-pam_tacplus.o
│ ├── pam_tacplus_la-support.o
│ ├── pam_tacplus.so
│ ├── pam_tacplus.soT
│ ├── pkgconfig
│ │ └── libtac.pc
编译测试程序tacc
这里交叉编译makefile没有直接编译tacc,就手动编译一下把
/home/allen/workspace/toolchains/powerpc-e5500-linux-gnu_linux-3.12.50_binutils-2.25.1_gcc-5.2.0_glibc-2.19_32big/bin/powerpc-e5500-linux-gnu-gcc \
-I/home/allen/workspace/tacacs_build/repo/include \
-I/home/allen/workspace/tacacs_build/repo/include/libtac \
-L/home/allen/workspace/tacacs_build/repo/lib -lpam -ltac -lpamc\
-o tacc ./tacc.c
有了tacc就可以测试一下对应的库是否能够成功进行认证了。