我有这个本地网络服务和需要访问它的客户端程序。我以非特权用户的身份运行它们。
我正在寻找一种使用 firejail 对客户端进行沙箱处理的方法,以使其无法访问网络的方式,除了 localhost(或者甚至更好,除了该服务)。我尝试的第一件事当然是
firejail --net=lo program
但它没有用。
Error: cannot attach to lo device
我想我可以通过创建一个虚拟网络接口来解决它,例如 veth0 和 veth1,将 veth1 移动到一个新的网络命名空间,我将在其中运行服务并使用 firejail 将客户端限制为 veth0
有没有办法在 firejail 配置文件中实际自动执行此设置,以便在我键入时创建所有这些接口并移动 veth1
firejail server
(无需以root身份运行任何东西)?
或者有没有更简单的方法解决这个问题?(我不能在同一个命名空间中同时运行客户端和服务,因为服务需要访问网络)
我会使用和选项类似:
在这里找到:人火监狱 | 火狱