搭建openssh server跳板服务器
2012-02-27 21:32
260 查看
[root@server ~]# useradd -M ait [root@server ~]# passwd ait |
[root@server ~]# vi /etc/ssh/sshd_config #增加以下内容 Match User ait ChrootDirectory /var/chroot |
[root@server ~]# /etc/init.d/sshd restart #重启SSH服务 |
小贴士: 一个最基本的chroot环境至少有一个shell(例如sh,bash)和一些必要的系统设备文件(例如/dev/null,/dev/zero),如果要允许用户执行一些命令,那么还要准备相应的命令可执行文件和命令依赖的库文件。 |
[root@server ~]# mkdir /var/chroot [root@server ~]# cd /var/chroot [root@server chroot]# mkdir {bin,dev,lib,lib64,etc,home} [root@server chroot]# mknod dev/null c 1 3 [root@server chroot]# mknod dev/zero c 1 5 #可选,这两个文件ssh命令需要,如缺少会报告:PRNG is not seeded [root@server chroot]# mknod dev/random c 1 8 [root@server chroot]# mknod dev/urandom c 1 9 #可选,ssh命令需要,如缺少会报告:Host key verification failed [root@server chroot]# mknod dev/tty c 5 0 #修改/var/chroot及其子目录的属主,并修改权限 [root@server chroot]# chown -R root.root /var/chroot [root@server chroot]# chmod -R 755 /var/chroot #允许用户写这些设备文件,不可写会有些命令报错 [root@server chroot]# chmod 0666 dev/{null,zero,tty} 然后将要允许用户执行的可执行文件和依赖的库文件复制到相应位置。例如必须给用户一个可用的shell,则我们一般用/bin/bash,那么执行ldd命令查看相关信息: [root@server chroot]# ldd /bin/bash linux-gate.so.1 => (0x00572000) libtermcap.so.2 => /lib/libtermcap.so.2 (0x0388b000) libdl.so.2 => /lib/libdl.so.2 (0x00839000) libc.so.6 => /lib/libc.so.6 (0x006b3000) /lib/ld-linux.so.2 (0x0068f000) 说明/bin/bash要正确执行,依赖于如下几个文件: /lib/libtermcap.so.2 /lib/libdl.so.2 /lib/libc.so.6 /lib/ld-linux.so.2 那么我们必须把/bin/bash和相应的库文件复制到对应的位置。 [root@server chroot]# cp -p /bin/bash /var/chroot/bin [root@server chroot]# cp -p /lib/libtermcap.so.2 /var/chroot/lib [root@server chroot]# cp -p /lib/libdl.so.2 /var/chroot/lib [root@server chroot]# cp -p /lib/libc.so.6 /var/chroot/lib [root@server chroot]# cp -p /lib/ld-linux.so.2 /var/chroot/lib 类似上边这样,对每个想要允许用户执行的文件都如此操作即可。 这里只是为了说明下具体过程,实际应用时肯定要用脚本来执行的。我从一网站抄来一个脚本(这里我命名为shell.sh),略加修改,内容如下:
总计 28 drwxr-xr-x 2 root root 4096 02-25 05:47 bin drwxr-xr-x 2 root root 4096 02-25 05:36 dev drwxr-xr-x 2 root root 4096 02-25 05:35 etc drwxr-xr-x 2 root root 4096 02-25 05:35 home drwxr-xr-x 2 root root 4096 02-25 05:51 lib drwxr-xr-x 2 root root 4096 02-25 05:35 lib64 -rw-r--r-- 1 root root 665 02-25 06:50 shell.sh [root@server chroot]# chmod 755 shell.sh [root@server chroot]# ./shell.sh /bin/bash done /bin/ls done /bin/cp done /bin/mkdir done /bin/mv done /bin/rm done /bin/rmdir done /lib/ld-linux.so.2 done /lib/libacl.so.1 done /lib/libattr.so.1 done /lib/libc.so.6 done /lib/libdl.so.2 done /lib/libpthread.so.0 done /lib/librt.so.1 done /lib/libselinux.so.1 done /lib/libsepol.so.1 done /lib/libtermcap.so.2 done 复制/etc/passwd和/etc/group文件到/var/chroot/etc中,并删除用户自己和root以外的所有帐号。如果没有这两个文件,用户登录以后会报“I have no name!” [root@server chroot]# cp -p /etc/passwd /var/chroot/etc/ [root@server chroot]# cp -p /etc/group /var/chroot/etc/ |
[root@server chroot]# mkdir /var/chroot/home/ait [root@server chroot]# chown -R ait /var/chroot/home/ait [root@server chroot]# chmod 700 /var/chroot/home/ait |
-bash-3.2$ pwd /home/ait -bash-3.2$ ls -bash-3.2$ mkdir ait_test -bash-3.2$ ls ait_test -bash-3.2$ ll -bash: ll: command not found |
相关文章推荐
- 某公司机房成功搭建openssh server跳板服务器
- 搭建openssh server跳板服务器
- WINDOWS下的SFTP服务器安装搭建(OpenSSH;Core FTP Mini-Sftp Server;Core FTP Server;Sysax Multi Server;Cygwin;freeSSHd;Serv-U)
- WINDOWS下的SFTP服务器安装搭建(OpenSSH;Core FTP Mini-Sftp Server;Core FTP Server;Sysax Multi Server;Cygwin;fre
- 在Win2008 R2下用 Bonobo Git Server 搭建 Git 服务器
- ubuntu12.04server搭建git服务器
- 手把手陪你搭建Windows Server 2012 + SQL SERVER 2014群集(之群集节点服务器环境准备)
- Windows下使用VisualSVN Server搭建SVN服务器
- crontab与SimpleHTTPServer搭建服务器。
- Kiwi Syslog server 日志服务器搭建
- ubuntu远程管理与OpenSSH Server的搭建
- ffmpeg+ffserver搭建流媒体服务器
- Window server 2008 搭建FTP服务器
- 手把手教你搭建LyncServer2013之发布反向代理服务器TMG(九)
- 搭建 Apache Http Server 服务器
- Openssh服务器的搭建,并使用PSFTP实现文件自动上传,下载的script命令
- 【转】使用VisualSVN Server搭建SVN服务器
- 用SimpleHttpServer.py搭建简单服务器
- TFS build server搭建,搭建自动化构建服务器