这似乎不是一个开发问题,但本质上是。让我来解释一下。我们的主要开发重点是动态内容页面。我们的一些客户要求我们允许他们在服务器(他们付费)中为他们的旧静态内容留出空间。我们通过为客户提供一个不同域的 ftp 帐户来实现这一点。(例如,客户域是 customer.com,但他们通过 otherdomain.com/customerstatic 访问他们的静态内容)。
现在我们想提高客户的 Linux 服务器中的 sftp 帐户的安全性。我在他们的 shell 环境中使用 openssh/sftp-server,因此他们无法登录或执行命令。
问题是,许多文件系统文件本质上都是默认的 (drwxr-xr-x),这意味着任何用户都可以读取目录的内容,甚至可能是某些文件。我认为将整个文件系统更改为 -rwxr-x--x 不是一个明智的举动,因为我不知道有多少系统文件需要该读取权限。
以前有人遇到过这个问题吗?如果你遇到过,能指点一下吗?
谢谢
答案1
SFTP 本质上并不安全;但让它们进入你的整个文件系统才是安全的。查看此内容,了解如何在chroot基础,它将锁定他们可以访问的目录,比如他们的主目录,或者您希望他们上传的任何地方。
在 Linux 上,我会注意这部分(配置 /etc/ssh/sshd_config):
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
这意味着“sftponly”用户组中的任何人都会被限制在其主目录中。
请参阅链接了解更多信息,并阅读 sshd_config 手册页。希望对您有所帮助。
答案2
这可能是有趣的 -http://sublimation.org/scponly/wiki/index.php/Main_Page
允许您限制某些用户仅使用 scp - 并且还可以选择 chroot 他们。
答案3
当你说“许多文件系统默认权限为 755”时,实际上表示默认umask设置为 022。您可以通过将 umask 设置为 027(这会使默认权限为 750)或将 umask 设置为 007(这会使默认权限为 770)来更改此默认值(对于新文件)。
答案4
您可能考虑设置一个 OpenVZ 服务器,然后为每个公司创建一个单独的小型 VM ftp/sftp“容器”。这样可以将所有公司分开,一旦您掌握了 OpenVZ,它对于处理这类小事情就非常有用。