Chinaunix首页 | 论坛 | 博客
  • 博客访问: 349721
  • 博文数量: 54
  • 博客积分: 497
  • 博客等级: 下士
  • 技术积分: 612
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 20:05
个人简介

行动…Don\'t ever let somebody tell you, you can\'t do something. you got a dream, you gotta protect it. people can\'t do something themselves they wanna tell you you can\'t do it.if you want something. go get it.

文章分类

全部博文(54)

文章存档

2021年(3)

2018年(1)

2017年(18)

2016年(7)

2015年(4)

2013年(1)

2011年(20)

我的朋友

分类: 系统运维

2017-12-18 10:36:02

以root用户执行以下操作。
一、 使用 mkdir 命令开始创建 chroot 监狱(给某用户分配的目录):

a). mkdir -p /home/test 

二.交互式会话,需要至少一个 shell,通常为 sh 和基本的 /dev 节点。如 null、zero、stdin、stdout、stderr 和 tty 设备:

a). ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty} 

b).用mknod 命令创建 /dev 下的文件。命令参数:-m  用来指定文件权限位,c 意思是字符文件,两个数字分别是文件指向的主要号和次要号。

1.  mkdir -p /home/test/dev/  

2.  cd /home/test/dev/ 

3. mknod -m 666 null c 1 3 

4.  mknod -m 666 tty c 5 0 

5.  mknod -m 666 zero c 1 5 

6. mknod -m 666 random c 1 8
三.
chroot 监狱中设置合适的权限。注意 chroot 监狱和它的子目录以及子文件必须被 root 用户所有,并且对普通用户或用户组不可写:

1.  chown root:root /home/test 

2.  chmod 0755 /home/test

3.  ls -ld /home/test

四.创建 bin 目录并复制 /bin/bash 到 bin 中:

1.  mkdir -p /home/test/bin 

2.  cp -v /bin/bash /home/test/bin/  

五.

查询 bash 所需的共享库,复制它们到 lib64 中:

1.  ldd /bin/bash

2.  mkdir -p /home/test/lib64 

3.  cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
六.

创建并配置 SSH 用户

useradd 命令创建 SSH 用户,并设置安全密码:

1.  useradd linuxman

2.  passwd linuxman

a).

创建 chroot 监狱通用配置目录 /home/test/etc 并复制已更新的账号文件(/etc/passwd 和 /etc/group)到这个目录中:

1.  mkdir /home/test/etc 

2.  cp -vf /etc/{passwd,group} /home/test/etc/

注:每次向系统添加更多 SSH 用户时,都需要将更新的帐户文件复制到 /home/test/etc 目录中

七.

配置 SSH 来使用 chroot 监狱

1. vi /etc/ssh/sshd_config 

在此文件中最后添加下面行。

1.  定义要使用 chroot 监狱的用户:
Match 
User linuxman

2. 指定 chroot 监狱:
    
ChrootDirectory /home/test
文尾添加:
#define username to apply chroot jail
Match User username
#specify chroot jail
ChrootDirectory /home/test

保存文件并退出,重启 sshd 服务:

1. (centos7系统使用命令)  systemctl restart sshd 

2. (centos6或以下用命令) service sshd restart 

注:

设置成功后,应该在本地 ssh hoch@ip 若显示被拒绝(远程登录瞬间退出)。要把selinux关闭。若登录还提示缺少lib* 库文件。找到这个文件,复制到lib64下面再登录成功

八.

创建用户的主目录并添加 Linux 命令

可以为 SSH 用户创建一个主目录(以及为所有将来的用户这么做)


1. mkdir -p /home/test/home/linuxman

2.  chown -R linuxman:linuxman /home/test/home/linuxman

3. chmod -R 0700 /home/test/home/linuxman
a)

bin 目录中安装几个用户命令,如 ls、date、mkdir:

1.  cp -v /bin/ls /home/test/bin/ 

2.  cp -v /bin/date /home/test/bin/ 

3.  cp -v /bin/mkdir /home/test/bin/  

b)

检查上面命令的共享库并将它们移到 chroot 监狱的库目录中:

1.  ldd /bin/ls 

2.  cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/        此句花括号中不能有空间,不然会报错。

3. scp 等命令,也要做类似1,2 步骤。


一定要记住如下操作,不然会报错(linuxman浪费了很长时间排错):


Write failed :Broken pipe
解决方法:

chown root:root /home/test  <---最关键的是所有者,要是root才行
chomod 755 /home/test
如果,没有第二句的权限操作,会报错:/bin/bash: Permission denied


注意:要在 /home/test下再建一级目录。不然数据SCP往上拷时会报Permission denied
例:mkdir /home/test/data
/home/test的所有下一级目录,用户与组都属于同一用户,如:
chown  linuxman:linuxman -R  /home/test/*


若执行SCP 报错: unknown user 503
在/home/test/下建 usr/lib64/ 然后拷贝所有的库。操作如下:
  1. mkdir /home/test/usr/lib64  
  2.  cp {/usr,}/lib64/lib*.so.[0-9]  /home/test/usr/lib64/


阅读(4001) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~