如何创建安全委托 telnet 的 SSH 登录

Dan*_*iel 3 security

我正在考虑创建一个 MUD,但缺点之一是它们使用不安全的“telnet”。我想保留“匿名”用户访问特定帐户的能力,并且该帐户唯一能做的就是远程登录到本地端口。

换句话说,我想要的是能够告诉任何人/每个人他们可以运行:

ssh anonymous@example.com安全地“连接”到我的泥浆。

“匿名”帐户将执行“telnet localhost:34843”或一些类似的命令。理想情况下,匿名帐户绝对没有其他访问权限。没有端口转发,没有文件(除了 telnet 运行所需的文件之外)等等...

如果重要的话,我可能会在云托管服务中使用某种风格的 ubuntu。

Gil*_*il' 5

您可以设置 OpenSSH,使特定帐户只能运行一个命令(客户端发送的命令将被忽略)。在 中/etc/ssh/sshd_config,添加如下行:

Match User anonymous
  ForceCommand /usr/bin/telnet localhost 34843
  PasswordAuthentication yes
  PermitEmptyPasswords yes
  AllowAgentForwarding no
  AllowTcpForwarding no
  PermitTTY yes
  PermitTunnel no
  X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

您应该将 的主目录安排anonymous为 root 所有,并且只能由 root 修改,~anonymous/.ssh其中的文件也是如此。

您至少还需要做一件事,那就是禁用 shell 转义。至少某些 telnet 实现允许用户通过按Ctrl+转义到 shell ] !。对于 Linux netkit 实现,我认为telnet -e ''禁用了命令模式,从而无法从 telnet 访问 shell。将环境设置SHELL/bin/false也是一种有用的预防措施。