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