搭建openssh server跳板服务器
2014-04-06 23:56
387 查看
某公司机房成功搭建openssh server跳板服务器
分类: Linux2012-12-05 10:49127人阅读评论(0)收藏举报部署背景: 最近有一客户提出这么个需求,要在公司信息机房部署一台登录跳板服务器,让以后用户访问机房内的服务器都必须先登录这台跳板服务器,然后再ssh到其他服务器。具体要求为: 1)安全最大化,普通用户登陆到这台跳板服务器后只能执行ssh,ls等有限的基础命令。 2)把普通用户锁定在特定的目录下,这样即使被hack,也不会影响其他用户。 需求分析: 根据客户所提要求,那么就必须搭建一openssh server,利用ssh+chroot功能来实现。而在openssh 4.8p1以前的版本,要支持chroot,必须使用第三方的修改。但从openssh 4.8p1以后,chroot功能已经被内置了,为此可以直接在服务器系统(CentOS 5.5)上搭建。 系统平台: CentOS 5.5 i386 openssh 5.6p1 zlib-1.2.5 openssl-1.0.0c
|
[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;fre
- WINDOWS下的SFTP服务器安装搭建(OpenSSH;Core FTP Mini-Sftp Server;Core FTP Server;Sysax Multi Server;Cygwin;freeSSHd;Serv-U)
- 在VMware中的Ubuntu Server搭建Java服务器环境(LAMT架构)
- windows搭建Visual SVN服务器后无法修改Server name
- SVN服务器搭建(Visual SVN server)
- 【Shawn-Server】Wordpress博客服务器搭建
- linux下telnet,openSSH,VNC三大远程服务器的搭建全过程
- 手把手教你搭建LyncServer2013之发布边缘服务器(十)
- 手把手教你搭建LyncServer2013之安装持久聊天服务器(十三)
- 使用live-server快速搭建本地服务器+自动刷新的方法
- 在ubuntuserver上搭建tftp服务器
- 使用VisualSVN Server搭建SVN服务器
- ubuntu server 搭建Apache服务器
- Windows下使用VisualSVN Server搭建SVN服务器
- Ubuntu 9.04 Server搭建Cherokee+PHP5+MySQL完美Web服务器
- 服务器server2008网站iis7+php环境的搭建
- 记一次winServer下搭建SVN服务器的过程