如何保证SFTP没有重新编译OpenSSH?

我想很多人都有生产环境,而且重新编译OpenSSH等软件包的选项并不是一种select,至less在任何时候都是如此。 保护SFTP的解决scheme要求您至less为CentOS_5.1重buildOpenSSH。

我希望得到另一种方法来阻止我的最终用户(使用sftp)不能看到除允许的文件夹以外的其他目录。 与Windows FTP服务器中的隔离模式类似。

经过各种谷歌search,我想到这里看,但没有发现比以上职位。 有任何想法吗?

  • OpenSSH支持基于用户,组或地址的条件configuration
  • OpenSSH也有一个集成的sftp服务器,不依赖于chrootconfiguration,库,…

这种方法不需要对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。 我试过的选项是:

  • 安装OpenSSH 4.9或更高版本,由于许多技术原因,这些工作并不好。
  • 来自pizzashack.org的rssh
  • jailkit
  • 和这里提到的Debian教程。

我确信上述所有解决scheme都能正常工作,但是他们没有达到我对这个项目的要求。 一个不自由的是VanDyke的Vshell服务器。 它很容易安装(至less评估版本)和超级简单的安装chroot访问我的用户。

现在我的sftp或scp用户只能看到他们的主目录,他们将无法执行任何操作。 维护很容易,只需将用户添加到一个组中,并为其分配一个主目录即可。