根。我在我的 LAN 上运行 Ubuntu 9.04(家庭)服务器。我目前用它来存储小的网络应用程序、照片、一些颠覆存储库和类似的东西。我的(少数)用户是我的朋友,我总是为他们提供对其主目录的入狱 FTP 访问权限。现在,最近我意识到 FTP 并不那么安全,因为在建立连接时密码不会被屏蔽,因此很容易被嗅探。
我决定使用 SFTP 解决这个问题,但有一个问题让我一直想知道,我需要你的意见。
使用 SFTP 访问文件系统取决于 SSH 设置。因此,要将用户监禁到他们的 SFTP 主目录,当他们使用 SSH 时,我也必须将他们监禁,我的问题是:这是一个理想的配置吗?是不是对一个UNIX用户常识权限的限制?
还有一个次要问题是:在 Ubuntu 9.04 Server 下是否有一种简单的方法可以实现这一点?
谢谢托马索
在大多数情况下,使用 ssh chroot 用户并不是一个理想的配置。当他们被关进他们的主目录时,他们将无法使用他们主目录之外的任何程序。这使得 unix 几乎无法用作 shell 服务器。
您可以使用 FTPS 而不是 SFTP/SCP,后者将通过 SSL 发送密码,但使用 ssh 服务器,允许您对它们进行 chroot 以进行文件传输,但不能用于登录(尽管如果您只 chroot 他们的文件传输,则收效甚微,并且他们仍然可以从机器上 scp 数据)。
如果他们已经拥有未入狱的 ssh 访问权限,那么即使您可以这样做,限制 sftp 也不会获得任何好处。
当然,对 ftp 服务器进行 chroot 是有充分理由的,但是如果我已经拥有对整台机器的 ssh 访问权限,那么拥有 sftp 访问权限就不会增加安全风险。
您应该强制用户将 sftp 与rssh (restricted shell)一起使用。这与其他正常的安全步骤(基于密钥的身份验证)相结合,您将相当安全。
我使用 MySecureShell 来限制我们 Linux 机器的每个用户帐户的 SFTP 连接。
http://mysecureshell.sourceforge.net/