linux沙盒程序,沙盒应用程序如何?

问题描述

我想运行小的不受信任的程序,但限制它们访问其文件夹之外的任何文件,网络访问以及其他并不真正需要的文件。实现这一目标的最简单方法是什么?

最佳解决方案

如果它们真的不受信任,并且您想确定,则需要设置一个单独的框。无论是真的,还是虚拟的。

此外,如果你足够偏执,你不希望那个盒子与你重要的东西在同一个网络中。在所有解决方案中,您都设置了一个没有权限的单独用户,因此不要向would-be泄密者打开太多工具。

因此,最安全的选择是从网络中物理删除单独的框。

您可以通过将其添加到物理网络,但在不同的子网上给出一点:内部没有’real’连接

虚拟机可能是一种选择,但可能不得不放弃一些性能

如果你必须在同一个盒子上运行它,你就有了这个选项

chroot环境。对于许多人来说,这是一个默认选项,对于non-specific威胁,它甚至可能起作用。但它不是一个安全选项,可以很容易地打破。我建议按预期使用它,即不是为了安全。

最后,您可能需要设置一个特定的沙盒模型,而不需要虚拟化或单独的框的麻烦,或者chroot的still-at-risk情况。我怀疑这是你的意思,但请看这个链接获取更多in-depth信息:https://stackoverflow.com/questions/4249063/how-can-i-run-an-untrusted-c-program-in-a-sandbox-in-linux

次佳解决方案

Docker将帮助您设置可以从当前内核运行的容器,但是要远离系统的其他部分。它似乎相当前沿,但有一个Ubuntu焦点一个很好的文档。

第三种解决方案

Firejail相当新,并且在不断发展。使用方便。

你可以简单地说:

sudo apt-get install firejail

firejail app

第四种方案

一种可能的解决方案是虚拟化软件,例如虚拟盒,您可以在软件中心找到它。

安装虚拟框

创建启用了网络的虚拟机

安装Ubuntu或者更轻的桌面,如Lubuntu

完全更新已安装的操作系统(在虚拟框内)

在虚拟机上禁用网络连接

拍一张快照

您现在可以安装您不信任的软件以查看它的功能。它不能扰乱外部世界,也不能托管操作系统,因为它没有访问权限。

但它可能会丢弃您的虚拟机,但如果是,您可以从快照中恢复。

可能还有其他方法可以限制不受信任的软件的破坏力,但这是我能想到的最强大的方法。

另一种选择可能是LXC更多信息here

LXC是Linux Containers的用户空间控制包,Linux容器是一种轻量级虚拟系统机制,有时称为“chroot on steroids”。

LXC从chroot构建,以实现完整的虚拟系统,为Linux现有的流程管理基础架构添加资源管理和隔离机制。

它可以在软件中心使用。但是我没有经验。

第五种方案

MBOX

“Mbox是一种轻量级的沙盒机制,任何用户都可以在商用操作系统中使用而无需特殊权限。” http://pdos.csail.mit.edu/mbox/

我已经可靠地用它做了几件事。

第六种方案

您可以使用subuser使用Docker对应用程序进行沙箱处理。这允许您执行沙盒GUI应用程序之类的操作,这对Docker来说并不容易。

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值