嵌入式linux 2.6.32上部署pam+ssh+radius

一、交叉编译pam安全验证模块
1.将编译器放在opt目录下,权限777
交叉编译器:
/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc

2.交叉编译crack:
cd /home/twelve
unzip cracklib-2.9.8.zip
cd cracklib-2.9.8
cd src
mkdir build
./autogen.sh
./configure --target=powerpc-none-linux-gnuspe --host=powerpc-none-linux-gnuspe --build=i386-linux --prefix=/home/twelve/cracklib-2.9.8/src/build CC=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc  AR=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-ar
make 
make install
在/home/twelve/cracklib-2.9.8/src/build、目录下会生成对应文件

3.交叉编译linux_pam:
cd /home/twelve
unzip linux-pam-1.3.1.zip
cd linux-pam-1.3.1
mkdir build
./autogen.sh
./configure --target=powerpc-none-linux-gnuspe --host=powerpc-none-linux-gnuspe --build=i386-linux --prefix=/home/twelve/linux-pam-1.3.1/src/build CFLAGS=-I/home/twelve/cracklib-2.9.8/src/build/include  LDFLAGS=-L/home/twelve/cracklib-2.9.8/src/build/lib CC=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc AR=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-ar
make
make的时候出现如下错误等

需要把
linux-pam-1.3.1/doc/man/Makefile.in目录和
linux-pam-1.3.1/modules/*/Makefile.in目录
的 man_MANS = 全部注释掉,在执行make操作即可
make install
目录/home/twelve/linux-pam-1.3.1/build/会生成对应文件

4.移植
将crack安装目录下的lib文件全部拷贝到目标机的/lib目录下。
进入PAM安装目录,将lib下的libpam.so和libpam_misc.so库文件拷贝至目标机/lib目录,将 lib下的security目录拷贝至目标机/lib, 将etc目录下的文件拷贝至目标机/etc目录

二、交叉编译openssh
安装包:
zlib-1.2.12.tar.gz
openssl-1.0.1e.tar.gz
openssh-5.3p1.tar.gz

1.放置安装包
mkdir -p /home/twelve/work/src/
mkdir -p /home/twelve/work/install
cd /home/twelve/work/src

2.安装zlib
tar -xzvf zlib-1.2.12.tar.gz
cd zlib-1.2.12
./configure --prefix=/home/twelve/work/install/zlib
vim Makefile
将以下地方gcc换成要交叉编译的编译器
/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc
ar换成相对应的编译器的ar
/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-ar

如:

修改完保存
make
make install
此时在/home/twelve/work/install/zlib 会生成相对应的库

3.交叉编译openssl
cd /home/twelve/work/src
tar -xzvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e/
查看要交叉编译的os类型,此处选择的是linux-ppc
./Configure -h
shared为共享库说明,不加后续交叉编译openssh会出错,不能丢
./Configure linux-ppc no-asm shared no-async --prefix=/home/twelve/work/install/openssl
vim Makefile
修改CC、AR为要编译的编译器
由于此处为变量,所以修改CROSS_COMPILE=处即可

如:

修改完保存退出
make
make install
在/home/twelve/work/install/openssl 会生成相对应的文件

4.交叉编译openssh
cd /home/twelve/work/src
tar -xzvf openssh-5.3p1.tar.gz
cd openssh-5.3p1/
交叉编译openssh的时候,如果需要用pam验证ssh,需要引入目标机pam的库
./configure --host=powerpc-none-linux-gnuspe --with-zlib=/home/twelve/work/install/zlib/ --with-ssl-dir=/home/twelve/work/install/openssl --disable-etc-default-login CC=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc AR=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-ar --with-pam CFLAGS=-I/home/twelve/work/pam_include/include/ LDFLAGS=-L/home/twelve/work/pam_lib/lib
make

5.移植到目标板
将sshd复制到目标板/usr/sbin
将 scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 复制到目标板/usr/local/bin
将 sftp-server ssh-keysign 复制到目标板/usr/local/libexec
在目标板
mkdir -p /usr/local/etc/
将openssh下的sshd_config,ssh_config 拷贝过来
mkdir -p /var/run
mkdir -p /var/empty/sshd
chmod 755 /var/empty
将主机上 /etc/目录下的 passwd, shadow, group 三个文件复制到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 改为 /bin/sh (以防万一,最后执行前先将原passwd,
shadow, group做副本)
将libz.so.1.2.2 拷贝到目标板/usr/local/lib/
建立软连接
ln -s libz.so.1.2.2 libz.so.1

6.目标板中生成密钥文件
cd /usr/local/bin
ssh-keygen -t rsa1 -f ssh_host_key -N “”
ssh-keygen -t rsa -f ssh_host_rsa_key -N “”
ssh-keygen -t dsa -f ssh_host_dsa_key -N “”
将生成的6个文件复制到/usr/local/etc
cp /usr/local/bin/ssh_host_* /usr/local/etc

三、搭载radius server端
1.linux防火墙
如果有设置防火墙阻止外部通信的规则需要先删除掉,否则会通信失败

2.安装freeradius 搭载radius服务器
apt install freeradius
service freeradius stop

vim /etc/freeradius/3.0/clients_conf
修改如下地方为客户端ip

此处为客户端密码

vim /etc/freeradius/3.0/user
修改要通过radius服务器验证的账号名和密码,其中twelve为账号名,testing为密码。

3.调试freeradius(启动radius服务)
freeradius -X

退出调试
启动freeradius(要确保没有freeradius相关进程的存在,才能启动,否则会启动失败)
service freeradius start

四、交叉编译pam_radius搭载客户端
1.下载pam_radius源码安装包
wget ftp://ftp.freeradius.org/pub/radius/pam_radius-1.4.0.tar.gz
tar -xzvf pam_radius-1.4.0.tar.gz
cd pam_radius-1.4.0

2.交叉编译pam_radius
此处目标机为32位,target,host,build根据实际情况选择,CC,AR使用交叉编译器的路径
setarch i386 ./configure --target=powerpc-none-linux-gnuspe --host=powerpc-none-linux-gnuspe --build=i386-linux  AR=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-ar CC=/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc

查找交叉编译器头文件路径
echo ‘main(){}’| powerpc-none-linux-gnuspe-gcc  -E -v -

在/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/…/lib/gcc/powerpc-none-linux-gnuspe/4.3.2/include下创建security文件夹,将先前交叉编译好的pam的include所有头文件放到/opt/gcc-4.3.74-eglibc-2.8.74-dp-2/powerpc-none-linux-gnuspe/bin/…/lib/gcc/powerpc-none-linux-gnuspe/4.3.2/include/security
修改Makefile如下
vim Makefile

保存退出
make
生成pam_radius_auth.so将该文件放至目标机/lib/security/下
将pam_radius_auth.conf放至目标机/etc/raddb下,并改名为server

3.配置目标机
在移植好的目标机上修改
vim /etc/raddb/server
修改如下地方,其中server为对应radius服务器ip,shared_secret需要和服务器的secret一致,timeouts为登录超时时间

cd /etc/pam.d/
如果没有system-auth,而有systemd-user,可以直接复制一个
cp systemd-user system-auth

vim /etc/pam.d/sshd
把这两行添加进去:
auth sufficient pam_radius_auth.so
auth include system-auth
添加如下:

4.配置完成后重启ssh生效
service sshd restart

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值