创建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