Linux培训
达内IT学院

400-111-8989

SSH利用pam chroot限制登录用户

  • 发布:Linux培训
  • 来源:网络
  • 时间:2015-07-03 20:16

很多网友写了不少关于ssh如何使用pam chroot限制远程登录用户访的文章,不过多少都有些问题,导致不能正常使用,笔者经过研究,将ssh如何使用pam_chroot模块的方法写出来,帮着大家学习.

关于Linux系统的PAM机制这里不再介绍,只给出实现步骤:

1.保证当前安装的openssh支持pam,编译时需要带有--with-pam.如果编译时没有--with-pam以后想要启用pam时,需要修改配置文件sshd_config,将该文件中的”UsePAM o”改为”UsePAM yes”,启用这个选项后重启ssh,会提示错误: ”Unsupported option UsePAM”.如果带有—with-pam,还需要安装库pam-devel,否则调用./configure时会找不到PAM.h.

2.创建用户push,设置密码,必须设置密码,否则不能登录.

3.创建/tmp/test目录作为用户push的虚拟根目录.

4.将/bin和/lib64拷贝到/tmp/test,注意如果不是64位系统则拷贝/lib目录:

cp -a /bin /tmp/test/ 和 cp -a /lib64 /tmp/test/

5.将下面的脚本拷贝到/home/test设置可执行,运行.

#!/bin/sh
  
CHROOT_DIR="/home/test"
  
mkdir -p $CHROOT_DIR/{dev,proc,dev/pts}
mount proc $CHROOT_DIR/proc -t proc        #必须创建这个proc文件系统,用户登录后可以看到这个目录中有很多文件/子目录
mount devpts $CHROOT_DIR/dev/pts -t devpts #devpts文件系统,提供访问终端的接口
mknod $CHROOT_DIR/dev/ptmx c 5 2           #必须有,用户登录后要使用它,作为作为伪终端的master设备.
chmod 666 /dev/ptmx
  
mkdir $CHROOT_DIR/{home,home/push} #必不可少,用户目录
chmod ugo+rw $CHROOT_DIR/home/push
  
mkdir lib64
cp -a /lib64/* lib64/  #必不可少,提供bash运行所需要的库,以及其它程序所需要的库.
  
#这些文件如果没有,不会影响登录,但登录不能运行这些命令
mkdir bin
cp -a /bin/rmdir bin/
cp -a /bin/rm bin/
cp -a /bin/bash bin/
cp -a /bin/mkdir bin/
cp -a "/bin/pwd" bin/
cp -a /bin/ls bin/
cp -a /bin/bash bin/
  
#必须要有,登录后要根据这个文件查询用户信息.如果没有这个,sshd调试时会出现错误:login_init_entry: Cannot find user "push"
#这个错误说明找不到用户.
mkdir etc
cp -a /etc/passwd  etc/

6.openssh的配置文件sshd_config中添加UsePAM yes.

7.打开文件/etc/pam.d/sshd,改为如下的内容:

auth required pam_unix.so

account required pam_unix.so

session required pam_chroot.so

8.打开文件/etc/security/chroot.conf,添加”push /home/test”

9.重启sshd

利用远程登录工具登录即可.

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:防黑必学cmd命令集合
下一篇:Mac版有道词典XSS漏洞
  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省