![chroot 用于执行不安全的程序](https://linux22.com/image/1238843/chroot%20%E7%94%A8%E4%BA%8E%E6%89%A7%E8%A1%8C%E4%B8%8D%E5%AE%89%E5%85%A8%E7%9A%84%E7%A8%8B%E5%BA%8F.png)
我之前从未设置过 chroot-jailed 环境,恐怕我需要一些帮助才能做好这件事。
简单解释一下这到底是怎么回事:我有一个 Web 服务器,用户向其发送 Python 脚本来处理存储在服务器上的各种文件(该系统用于研究目的)。每天,cron 作业都会通过以下命令开始执行上传的脚本:
/usr/bin/python script_file.py
所有这些都是非常不安全的,我想创建一个监狱,在其中复制必要的文件(上传的脚本、要处理的文件、python 二进制文件和依赖项)。
我已经研究过各种创建 jail 的实用程序,但它们似乎都不是最新的,或者缺乏可靠的文档(即在我如何运行不受信任的 Python 脚本)
有人可以指导我找到一个可行的解决方案吗?比如创建一个监狱、在其中放入一些文件并执行 python 脚本的工作示例?
非常感谢。
答案1
您需要 debootstrapchroot,请查看有关设置 chroot 的说明:https://wiki.kubuntu.org/DebootstrapChroot
答案2
您需要在 chroot 中安装相当多的库,但这不会阻止某人安装套接字服务器。由于您需要允许 Python 脚本运行,这意味着可以完全访问标准 Python 模块,如套接字等。我真的不明白您能用那个 chroot 保护什么?
如果用户可以创建套接字服务器,他将能够在该 chroot 中连接并访问/修改任何内容。
即使像这样的简单脚本也os.system('rm -rf /')
无法被阻止,并且会导致您的监狱无法使用。
一种可能的解决方案是使用类似知世,可以配置为阻止基于内核原语(打开、写入等)的访问。