我想很多人都有生产环境,而且重新编译OpenSSH等软件包的选项并不是一种select,至less在任何时候都是如此。 保护SFTP的解决scheme要求您至less为CentOS_5.1重buildOpenSSH。
我希望得到另一种方法来阻止我的最终用户(使用sftp)不能看到除允许的文件夹以外的其他目录。 与Windows FTP服务器中的隔离模式类似。
经过各种谷歌search,我想到这里看,但没有发现比以上职位。 有任何想法吗?
这种方法不需要对chroot进行额外的维护!
这也是更安全的,因为监狱里面不需要可执行文件或库。
追加到你的sshd_config:
Match Group mysftpgroup ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
mysftpgroup UNIX组中的用户则不能使用除SFTP以外的任何其他SSH服务。 当然,请确认您的具体configuration!
请注意,“匹配”部分由新的“匹配”部分或configuration文件的末尾来终止。 其他选项请参阅man sshd_config。 search手册页可能会产生过时的版本。
如果我有你的问题,那么你可以从configuration文件做到这一点。 看到这个ServerFault问题的一些帮助在configuration中设置chroot。 OpenSSH工具套件已经在configuration中看到了一些非常好的选项。 即使您在一两年前彻底阅读了这些内容,阅读手册和FAQ也是值得的。
你什么时候需要重新编译OpenSSH来获得安全性? OpenSSH的安全logging是其他项目(甚至是安全相关的)只能梦想的事情。 注意来自第三方的补丁认为他们将会提高OpenSSH的安全性。 不要忘记Debian的混乱。
限制对SFTP用户的访问不应该要求重新编译openssh。
您应该能够设置您的主目录权限和umask ,以便用户只能看到他自己的主目录。
当然,用户也可以看到(但不能修改)很多系统文件。 如果你想限制这个,我想你可以让sftp会话在监狱里运行。
我意识到你和Vshell一起去了,但是我用scponly运气相当好。 不知道CentOS,但有一个debian软件包很容易开始:
sudo aptitude install scponly sudo dpkg-reconfigure scponly cd /usr/share/doc/scponly/setup_chroot/ sudo gunzip setup_chroot.sh.gz sudo chmod +x setup_chroot.sh sudo ./setup_chroot.sh #this creates the user and home dir mkdir /home/<user>/dev mknod -m 666 /home/<user>/dev/null c 1 3 #apparently there's a bug in setup_chroot.sh
我想你在这里谈论两种不同的安全。
第一个需要重新编译(或者安装打包的二进制文件)是端到端的通信安全性。 您在服务器上执行的与用户可以访问的文件/文件夹相关的任何内容都不能保护客户机 – 服务器之间的通信。 事实上,如果你不保持Openssh的最新状态,有人可能会用这个作为攻击媒介进入你的服务器。
第二个是文件/文件夹安全。 您可以限制文件夹设置(chroot或隔离模式),这将限制login用户可以访问的文件。 请注意,这无助于确保文件的实际通信。
希望有所帮助!
你正在寻找的是一个chroot,又名监狱。 这个设置可能有些复杂,在默认的CentOS仓库中,包装forms的工具不太可能存在。 不过,这里有一个我以前用过的debian教程,它应该把你放在正确的轨道上:www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html
在推荐或甚至考虑付费软件版本之前,我试图获得开放源代码。 我不是这个build议的意思,只是根据我的需要而定。 我花了太多时间试图为我的要求find正确的解决scheme。 我试过的选项是:
我确信上述所有解决scheme都能正常工作,但是他们没有达到我对这个项目的要求。 一个不自由的是VanDyke的Vshell服务器。 它很容易安装(至less评估版本)和超级简单的安装chroot访问我的用户。
现在我的sftp或scp用户只能看到他们的主目录,他们将无法执行任何操作。 维护很容易,只需将用户添加到一个组中,并为其分配一个主目录即可。