我们有一个网络服务器,允许用户在 chroot 环境中上传 (SFTP) 大文件。我们还希望能够使用 SSH 来管理这个服务器。
在我们以前的情况下,我们使用了系统 sshd 和一个 chroot 环境,其中运行了一个单独的 sshd。我希望我可以使用“新”ChrootDirectory 选项来简化配置。
我们的服务器有两个 IP 地址,一个用于公共访问,一个用于内部访问。单个 sshd 是否有可能监听两个单独的 IP/接口但以不同的方式对待它们?在我阅读的所有文档中,似乎只能区分用户或组,而不是 IP/接口。
如果这是不可能的,双 sshd 设置是最好的选择,我应该做更好的用户管理来按组过滤它们还是有更优雅的方式来设置这样的服务器?
您可以
Match
以相反的方式使用。默认情况下为 Chroot,如果从内部网络连接,则否定该指令。但是,您应该考虑将安全决策置于网络上的含义。包括经过身份验证的用户通过环回创建新会话以绕过此类策略的可能性。
User
一般来说,如果可能的话,定义会更安全Group
。(编辑:在正确阅读之前输入)
我最终使用的解决方案如下:
所以这是我之前看到的答案的混合,我做了两个匹配块,这样来自其他 IP 但尝试使用我的管理员帐户的人将无法使用 sftp 或 ssh。我将密切监视服务器上的活动,看看这是否可行,但内部测试看起来很有希望。
我创建了一个名为 sftpuplod 的组。每个没有 ssh-access 的客户都在这个组中,并且可以使用 sftp:
您也可以使用ChrootDirectory %h进行真正的 chrooting ~
见手册页