我有一个运行Fedora的基于Linux的Web服务器。我已经在上面创建并托管了几个HTML页面。
我有在这台服务器上运行的提供CLI工具的信息,但所有用户都必须可以从他们的浏览器访问这些工具
我还没有开始,这些是我的要求
- 如何通过HTML页面提供服务器外壳(BASH)?是什么软件使它成为可能
- 我可以提供启用自动登录的shell吗
我只是想避免多个用户必须打开到服务器的SSH会话。此外,我还可以使用HTML页面提供指令和终端访问。
ShellInABox似乎通过Ajax为浏览器提供了一个彩色终端界面。(主页)由于它作为一个独立的网络服务器运行,您可能需要将用户链接到网站上的另一个端口。肯定还有更多的替代方案(其他类似的项目)。
无论您是使用ShellInABox还是继续提供ssh访问,以下建议都适用。
如果您不完全了解并信任所有用户,那么假设他们中至少有一个是天才破解者,决心崩溃或闯入您的系统。他可能会尝试做的第一件事就是登录并运行一个叉式炸弹。
因此,您应该尽最大努力沙箱用户,这样他们就不会伤害系统或彼此。将他们的访问权限(文件/文件夹/网络访问)限制为仅实现您允许的任务所需的权限。SELinux和AppArmor为此提供了便利。你可以在这里找到更多的沙拳技巧。Docker是一个值得研究的新系统。
将您的登录服务器托管在独立的或虚拟机器上是非常明智的,这与您的主Web服务器不同,这样任何成功突破沙箱的用户都不会与您的其他服务在同一台机器上。(但请注意,他仍将在您的局域网内!)用户模式linux是一个不太安全的替代方案,chroot更糟糕,但总比什么都没有好!
如果用户应该能够保存文件,那么我建议为每个用户提供一个单独的帐户以为所有用户提供一个密码为guest555
的guest
帐户,但恶意用户可能会通过删除文件或在shell启动脚本中放入讨厌的东西来打扰其他人。(我当然不推荐guest/guest
,因为破解者会定期在网络上扫描托管该帐户的ssh服务器!)