利用openssh实现简单的chroot
最近在准备论文的间隙中,为新服务器的安全问题大伤脑筋,头疼的问题之一是不知道为什么无法实现FTP用户的chroot(当然,匿名用户除外)。尽管新服务器上的用户都是可信赖的,但还是应该尽量留足意外情况。可是系统的chroot似乎又非常繁琐,让我望而却步。今天在Lau兄的帮助下,总算找到了一个简单的方法来实现这个问题。
原文的链接地址是 http://blog.adahsu.net/2010/01/sftp-chrooted.html ,内地要挂代理才能访问,不过好像也有类似的解决方法。
- 在 /etc/ssh/sshd_config 中,将Subsystem改为 Subsystem sftp internal-sftp;
- 在下面设定如下:
Match User user #将user替换为需要chroot的用户
ChrootDirectory /chroot #chroot的目录
ForceCommand internal-sftp #强制使用sftp
注意openssh的版本一定要5.1+。似乎RHEL和CentOS提供的yum包最高只支持到4.3,只能去下载源代码来编译。而且openssh的config目录的设定似乎有个bug,要注意。至此,SFTP可以成功chroot了。
之后我又想用openssh或用其他方法实现对SSH登陆的chroot,似乎有以下几种方法:
- 水木有一篇很好的chroot的教程,但太长太繁琐了,仔细扫了几眼,貌似很复杂;
- http://liuyuansu.blog.sohu.com/39538859.html 有一篇很好的在openssh上实现chroot的文章,不过给了一长串代码,没有研究;
- 用PAM实现:http://www.linuxdiyf.com/viewarticle.php?id=90273 好像不成功,不过也可能是我没做对。
自己改了一下sshd的config,chroot是成功了,但SSH也登陆不上了,说找不到bash。把bash挪了几个位置,还是找不到,放弃了。只好关闭了几乎所有用户的SSH(但影响也不大)。自己太菜,但现在实在是没那个时间慢慢去折腾这个chroot了。
打印本帖 Print article |
本文发表于2010 November 29 22:59,归类为学而时习。您可以通过RSS 2.0来订阅有关的评论。 您也可以留下评论或在您自己的站点跟踪引用。 This entry was posted on 2010 November 29 at 22:59 and filed under 学而时习. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |