仓酷云

标题: 来看看:Centos 搭建openssh server跳板办事器 [打印本页]

作者: 乐观    时间: 2015-1-14 21:08
标题: 来看看:Centos 搭建openssh server跳板办事器
小知识:Linux在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
需求剖析:
依据客户所提纲求,那末就必需搭建一opensshserver,应用ssh+chroot功效来完成。而在openssh4.8p1之前的版本,要支撑chroot,必需应用第三方的修正。但从openssh4.8p1今后,chroot功效曾经被内置了,为此可以直接在办事器体系(CentOS5.5)上搭建。

体系平台:
CentOS5.5i386
openssh5.6p1
zlib-1.2.5
openssl-1.0.0c


CentOS5.5中自带的openssh是4.3p2版本的,必需进级到4.8p1今后,我选择进级到今朝最高版本5.6p1。详细进级到openssh5.6p1的办法可以参考我这篇文章:CentOS5.5下进级OpenSSH-4.3p2到5.6p1
依据sshd_config的man中所述,完成chroot功效须要设置装备摆设"ChrootDirectory"这个参数。

ChrootDirectory:界说了用户经由过程认证今后的chroot目次,此目次及其一切子目次的属主必需是root,且这些目次只要root帐号可以停止写操作,其他任何组和帐号都弗成写。chroot今后,sshd会将用户的任务目次转到chroot目次顶用户本身的主目次。假如ChrootDirectory界说的目次下没有响应的/home/username目次,则会直接转到chroot的/目次下。
下边是具体的设置装备摆设进程:

1.新增用户ait(不创立其缺省主目次)
[root@server~]#useradd-Mait
[root@server~]#passwdait2.修正/etc/ssh/sshd_config文件[root@server~]#vi/etc/ssh/sshd_config#增长以下内容
MatchUserait
ChrootDirectory/var/chroot
注:这里我指定chroot目次是/var/chroot
[root@server~]#/etc/init.d/sshdrestart#重启SSH办事3.搭建根本的chroot情况
小贴士:
一个最根本的chroot情况至多有一个shell(例如sh,bash)和一些需要的体系装备文件(例如/dev/null,/dev/zero),假如要许可用户履行一些敕令,那末还要预备响应的敕令可履行文件和敕令依附的库文件。

[root@server~]#mkdir/var/chroot
[root@server~]#cd/var/chroot
[root@serverchroot]#mkdir{bin,dev,lib,lib64,etc,home}
[root@serverchroot]#mknoddev/nullc13
[root@serverchroot]#mknoddev/zeroc15

#可选,这两个文件ssh敕令须要,如缺乏会申报:PRNGisnotseeded
[root@serverchroot]#mknoddev/randomc18
[root@serverchroot]#mknoddev/urandomc19

#可选,ssh敕令须要,如缺乏会申报:Hostkeyverificationfailed
[root@serverchroot]#mknoddev/ttyc50

#修正/var/chroot及其子目次的属主,并修正权限
[root@serverchroot]#chown-Rroot.root/var/chroot
[root@serverchroot]#chmod-R755/var/chroot

#许可用户写这些装备文件,弗成写会有些敕令报错
[root@serverchroot]#chmod0666dev/{null,zero,tty}


然后将要许可用户履行的可履行文件和依附的库文件复制到响应地位。例如必需给用户一个可用的shell,则我们普通用/bin/bash,那末履行ldd敕令检查相干信息:
[root@serverchroot]#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@serverchroot]#cp-p/bin/bash/var/chroot/bin
[root@serverchroot]#cp-p/lib/libtermcap.so.2/var/chroot/lib
[root@serverchroot]#cp-p/lib/libdl.so.2/var/chroot/lib
[root@serverchroot]#cp-p/lib/libc.so.6/var/chroot/lib
[root@serverchroot]#cp-p/lib/ld-linux.so.2/var/chroot/lib

相似上边如许,对每一个想要许可用户履行的文件都如斯操作便可。

这里只是为了解释下详细进程,现实运用时确定要用剧本来履行的。我从一网站抄来一个剧本(这里我定名为shell.sh),略加修正,内容以下:

#/bin/bash
#要许可履行的文件列表
cmdlist="/bin/bash/bin/ls/bin/cp/bin/mkdir/bin/mv/bin/rm/bin/rmdir"

#chroot路径
chroot_path="/var/chroot"
#断定依附的库文件
lib_1=`ldd$cmdlist|awk{print$1}|grep"/lib"|sort|uniq`
lib_2=`ldd$cmdlist|awk{print$3}|grep"/lib"|sort|uniq`
#复制敕令文件
foriin$cmdlist
do
cp-a$i$chroot_path/bin/&&echo"$idone"
done
#复制依附的库文件(由于是i386,所所以lib,假如是x86_64,则是lib64,)
forjin$lib_1
do
cp-f$j$chroot_path/lib/&&echo"$jdone"
done
forkin$lib_2
do
cp-f$k$chroot_path/lib/&&echo"$kdone"
done

[root@serverchroot]#ll
总计28
drwxr-xr-x2rootroot409602-2505:47bin
drwxr-xr-x2rootroot409602-2505:36dev
drwxr-xr-x2rootroot409602-2505:35etc
drwxr-xr-x2rootroot409602-2505:35home
drwxr-xr-x2rootroot409602-2505:51lib
drwxr-xr-x2rootroot409602-2505:35lib64
-rw-r--r--1rootroot66502-2506:50shell.sh

[root@serverchroot]#chmod755shell.sh
[root@serverchroot]#./shell.sh
/bin/bashdone
/bin/lsdone
/bin/cpdone
/bin/mkdirdone
/bin/mvdone
/bin/rmdone
/bin/rmdirdone
/lib/ld-linux.so.2done
/lib/libacl.so.1done
/lib/libattr.so.1done
/lib/libc.so.6done
/lib/libdl.so.2done
/lib/libpthread.so.0done
/lib/librt.so.1done
/lib/libselinux.so.1done
/lib/libsepol.so.1done
/lib/libtermcap.so.2done


复制/etc/passwd和/etc/group文件到/var/chroot/etc中,并删除用户本身和root之外的一切帐号。假如没有这两个文件,用户登录今后会报“Ihavenoname!”
[root@serverchroot]#cp-p/etc/passwd/var/chroot/etc/
[root@serverchroot]#cp-p/etc/group/var/chroot/etc/


4.树立chroot目次中的用户主目次
[root@serverchroot]#mkdir/var/chroot/home/ait
[root@serverchroot]#chown-Rait/var/chroot/home/ait
[root@serverchroot]#chmod700/var/chroot/home/ait
OK,经由以上的设置装备摆设,如今就能够停止测试了。用ait帐号ssh登录到体系中,看到ait是被限制在了本身的宿主目次/home/ait下了。测试履行一些敕令,发明只要适才复制过去的敕令可以履行,其他全都弗成以。
-bash-3.2$pwd
/home/ait
-bash-3.2$ls
-bash-3.2$mkdirait_test
-bash-3.2$ls
ait_test
-bash-3.2$ll
-bash:ll:commandnotfound小知识:得益于极为出色的稳定性,全球范围内无数著名网站均选用它,CentOS是异次元的服务器也是!
作者: 老尸    时间: 2015-1-17 05:54
直到学习Linux这门课以后,我才知道,原来我错了。?
作者: 因胸联盟    时间: 2015-1-24 15:48
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。
作者: 愤怒的大鸟    时间: 2015-2-2 11:00
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者: 爱飞    时间: 2015-2-7 19:21
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
作者: 透明    时间: 2015-2-23 11:39
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
作者: 仓酷云    时间: 2015-3-7 09:59
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
作者: 只想知道    时间: 2015-3-15 01:59
请问谁有Linux的学习心得的吗?简单的说说?
作者: 分手快乐    时间: 2015-3-21 20:02
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2