如何隔离一个进程,使得它只能看到一个网络接口?

如何隔离一个进程,使得它只能看到一个网络接口?

有没有办法让某个进程只使用一个特定的网络接口(例如 eth3),以便其他接口都不可见?

答案1

有句 UNIX 谚语一切皆文件。如果您的程序获得文件系统访问权限,它至少可以看到所有设备(如果访问权限设置得当,则很可能如此)。

简单的解决方案可能是虚拟化,例如使用虚拟机或者用户模式Linux

答案2

在过去的几年里,firejail 方式越来越受欢迎。

例如:firejail --net=eth0 firefox

这意味着将 Firefox 限制到 eth0 接口。

附有 firegail 源代码的网站和 github 链接: https://firejail.wordpress.com/ https://github.com/netblue30/firejail

在我的 ubuntu 22.04 中,我只需使用 sudo apt install firejail 即可安装

相关内容