Show HN: Minimal container-like sandbox built from scratch in C
3 months ago
- #Sandboxing
- #Linux
- #Cgroups
- Runbox是一个用C语言编写的轻量级Linux沙盒系统,专为教学目的而设计。
- 利用Linux命名空间实现进程隔离:用户、PID、挂载点、IPC、UTS和网络命名空间。
- 支持通过--enable-network标志实现完全网络隔离或取消隔离。
- 采用pivot_root创建隔离的文件系统,提供最小化shell环境。
- 主动放弃高权限,仅保留基础操作所需的安全默认权限。
- 使用seccomp BPF进行系统调用白名单过滤(当前仅支持aarch64架构)。
- 通过cgroups v2实现资源限制(CPU、内存和进程数限制)。
- 命令行配置参数:--cpu、--memory、--pids、--enable-network、--disable-cgroups。
- 在/sys/fs/cgroup/runbox/路径下为每个沙盒实例创建专属的cgroup子树。
- 规划功能包括高级网络配置和外部程序执行支持。
- 采用MIT许可证,欢迎通过提交issue或pull request参与贡献。