创建chroot环境,限制ssh/sftp的使用

chroot是一个大范围限制登录用户的利器,基本上让登录用户访问不到真实的系统。

但是很难配,无论是网上流行的脚本,还是说明,都有很多缺陷,要命的在于很少有提示信息。

先建立一个/home/chroot目录,这个名字是任意的。

openssh4.8p1以下应该是不支持chroot,但可以用rssh来支持chroot,非常好用,但难度还是在chroot环境上。

安装rssh,可以用rpm或源码编译,问题都不大,很好配,如果是rpm安装,缺省配置在/etc/rssh.conf

这个配置很容易,配好chrootpath就行,再放开scp/sftp权限。

重要的是chroot的配置

rssh自带一个脚本mkchroot.sh,可以方便地产生一个chroot环境,但注意,这个环境是不完整的。

1./etc/passwd要精简后放入。/etc/group也一样

2./lib64/libnss_files.so.2,这个文件并没有放入,不知道为什么,但也有可能是/lib64/libnss_*,最好全拷入。

3.创建/dev/null,mknod-m666/home/chroot/dev/nullc13,如果有就删除重建一下。有些需要,有些不需要

4.配置syslog,加参数"-a/home/chroot/dev/log",/etc/sysconfig/syslog,重起syslog服务,就会自动创建/home/chroot/dev/log。

5.修改/etc/passwd,指向rssh和home目录:home目录的格式上有特殊的写法,要写//来区分,前面是chroot目录,后面则是缺省的自己home目录

staging-emailmeform:x:504:504::/home/chroot//home/emf2:/usr/bin/rssh

要注意一些日志,有时候会出现信息。

/var/log/messages

/var/log/secure

无缘无故出现Connectionclosed或nouserfound之类的错,就是chroot环境不对,肯定是少lib,或是/etc/passwd不对

最后就配置出一个只能用于sftp/scp的用户,并且只能访问自己的目录。

参考:

rssh主页http://www.pizzashack.org/rssh/

rpm包http://dag.wieers.com/rpm/packages/rssh/

配置http://www.cyberciti.biz/tips/howto-linux-unix-rssh-chroot-jail-setup.html

疑难解决http://www.gentoo-wiki.info/SFTP_Server

相关推荐