我正在考虑创建一个 MUD,但缺点之一是它们使用不安全的“telnet”。我想保留“匿名”用户访问特定帐户的能力,并且该帐户唯一能做的就是远程登录到本地端口。
换句话说,我想要的是能够告诉任何人/每个人他们可以运行:
ssh anonymous@example.com安全地“连接”到我的泥浆。
“匿名”帐户将执行“telnet localhost:34843”或一些类似的命令。理想情况下,匿名帐户绝对没有其他访问权限。没有端口转发,没有文件(除了 telnet 运行所需的文件之外)等等...
如果重要的话,我可能会在云托管服务中使用某种风格的 ubuntu。
您可以设置 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也是一种有用的预防措施。
| 归档时间: |
|
| 查看次数: |
1267 次 |
| 最近记录: |