防止使用 vsftp 上传 ssh 密钥

防止使用 vsftp 上传 ssh 密钥

我正在配置 vsftpd 以便从我网络上的设备上传。由于遗留原因,需要使用 FTP。这是我无法改变的事情,无论我多么想改变。所以,请不要建议我不使用 ftp!该接口已刻录到我必须与之交互的设备的固件中,无法更改或控制。

我的问题:我想尽可能地阻止 shell 访问(或除传输文件之外的任何其他类型的访问)。

我正在配置 shell /usr/sbin/nologin。为了实现纵深防御(例如,缓解对 shell 的意外更改),我对您可能有的任何其他想法感兴趣。

例如,我正在考虑.ssh在帐户的主目录中创建一个目录,拥有root:root模式为 0550,并设置不可变位。这将阻止设备的帐户为自己配置 SSH 访问权限。

有没有更好的方法可以防止通过 vsftpd 上传 SSH 密钥?为了安全起见,您是否会“禁止”上传其他文件或目录?

答案1

我会退一步并完全禁用该/那些帐户的 SSH。

在您的 中sshd_config,您可以列出哪些用户可以通过 SSH 登录,或者您可以列出哪些用户被禁止。相关关键字是

AllowGroups
         This keyword can be followed by a list of group name patterns, separated by
         spaces.  If specified, login is allowed only for users whose primary group or
         supplementary group list matches one of the patterns.
AllowUsers
         This keyword can be followed by a list of user name patterns, separated by
         spaces.  If specified, login is allowed only for user names that match one of
         the patterns.

及其对应方DenyUsersDenyGroups

您还可以通过更改 ssh 授权密钥文件的名称来进一步混淆问题,这样即使有人将文件上传到.ssh/authorized_keys,SSH 也不会使用该文件。相关关键字是

AuthorizedKeysFile
         Specifies the file that contains the public keys that can be used for user
         authentication.  

或者您可以选择完全拒绝 ssh 密钥认证,尽管我通常不建议这样做。

添加:

您还可以使用 vsftpd 的deny_file选项来限制 ftpd 内的文件上传,我建议您查看您的pam配置以阻止用户通过 SSH 以外的其他方法登录。

相关内容