我需要为必须对我们的服务器具有非常有限的访问权限的外国 SSH 用户创建一个安全的环境。那是:
- 只能执行允许的命令
- 只能使用允许的特定软件
- 在任何情况下都不得允许查看/修改/删除他/她的根文件系统之外的文件夹和文件
在将jailkit 工具用于一个不需要太多定制并且运行良好的较小项目之前,我曾尝试使用 chroot jail ,但是这个项目要大得多,并且在允许的软件和命令方面需要更多的定制。
对安全环境的要求是:
- 使用基本命令的能力,例如 ls、cd、grep 等。
- 运行 dotnet 脚本的能力
- 利用正在运行的 RabbitMQ 代理的能力(代理在环境之外运行)
- 利用正在运行的 PostgreSQL 数据库的能力(数据库在环境之外运行)
我听说过multistrap或debootstrap,但我不确定这些工具是否足以解决我的问题。
这些服务器在Debian OS v. 9 和 10上运行。所有必需的软件都安装在根文件系统中并且运行良好。我所需要的只是让受限用户能够使用它而不会损坏/破坏根文件系统。
我的问题是:
- 有没有我没有提到的其他有用(更好)的工具可以解决我的问题?
- 我提到的软件是否有任何有用的指南可以解决我的问题?
万一有人面临同样的问题。我使用带有独立 SSH 服务器的 Docker 容器解决了这个问题,并在其上安装了所有必需的软件。