ssh - 除了 chroot jail,还有其他方法可以限制 SSH 用户吗?
问题描述
我需要为必须对我们的服务器具有非常有限的访问权限的外国 SSH 用户创建一个安全的环境。那是:
- 只能执行允许的命令
- 只能使用允许的特定软件
- 在任何情况下都不得允许查看/修改/删除他/她的根文件系统之外的文件夹和文件
在将jailkit 工具用于一个不需要太多定制并且运行良好的小型项目之前,我曾尝试使用 chroot jail ,但这个项目要大得多,并且在允许的软件和命令方面需要更多的定制。
对安全环境的要求是:
- 使用基本命令的能力,例如 ls、cd、grep 等。
- 运行 dotnet 脚本的能力
- 利用正在运行的 RabbitMQ 代理的能力(代理在环境之外运行)
- 利用正在运行的 PostgreSQL 数据库的能力(数据库在环境之外运行)
我听说过multistrap或debootstrap,但我不确定这些工具是否足以解决我的问题。
这些服务器在Debian OS v. 9 和 10上运行。所有必需的软件都安装在根文件系统中并且运行良好。我所需要的只是让受限用户能够使用它而不会损坏/破坏根文件系统。
我的问题是:
- 有没有我没有提到的其他有用(更好)的工具可以解决我的问题?
- 我提到的软件是否有任何有用的指南可以解决我的问题?
解决方案
万一有人面临同样的问题。我使用带有独立 SSH 服务器的 Docker 容器解决了这个问题,并在其上安装了所有必需的软件。
推荐阅读
- rust - 具有未实现 Copy 特征的输入的基准函数
- python - Pyspark:将列从字符串数字转换为时间戳类型
- excel - 从错误的单元格开始访问 VBA 导出到 Excel
- java - liquibase-maven-plugin 与 testcontainers 的使用
- python - 无法使用 Python 将文件上传到 Azure Notebooks 中 Azure Datalake Gen 2 中容器中的目录
- windows - Postgresql:端口 5432 上的连接被拒绝
- kubernetes - Kubernetes 没有为入口分配地址
- laravel-5 - Laravel:没有默认值
- c# - JumpTask.IconResourcePath 的几何
- r - R igraph:根据顶点 ID 或名称为节点着色