NsJail 技术文档
概述
NsJail 是一个用于 Linux 的进程隔离工具,利用 Linux 命名空间子系统、资源限制和 seccomp-bpf 系统调用过滤器来实现隔离。它可以帮助用户隔离网络服务、托管计算机安全挑战(CTF)以及包含侵入性系统调用级别的操作系统模糊测试。
安装指南
系统要求
- Linux 操作系统
- 支持 Linux 命名空间、seccomp-bpf 和 cgroups
安装步骤
-
克隆项目仓库
git clone https://github.com/google/nsjail.git cd nsjail
-
编译项目
make
-
安装
sudo make install
项目使用说明
基本使用
NsJail 提供了三种不同的操作模式,分别是:
- 网络服务隔离(inetd 风格)
- 具有私有克隆接口的隔离(需要 root/setuid)
- 本地进程隔离
示例
网络服务隔离(inetd 风格)
./nsjail -Ml --port 9000 --chroot /chroot/ --user 99999 --group 99999 -- /bin/sh -i
具有私有克隆接口的隔离(需要 root/setuid)
sudo ./nsjail --user 9999 --group 9999 --macvlan_iface eth0 --chroot /chroot/ -Mo --macvlan_vs_ip 192.168.0.44 --macvlan_vs_nm 255.255.255.0 --macvlan_vs_gw 192.168.0.1 -- /bin/sh -i
本地进程隔离
./nsjail -Mo --chroot /chroot/ --user 99999 --group 99999 -- /bin/sh -i
项目 API 使用文档
命令行参数
-Ml
:以 inetd 模式运行--port
:指定监听端口--chroot
:指定 chroot 目录--user
:指定用户 ID--group
:指定组 ID--macvlan_iface
:指定 macvlan 接口--macvlan_vs_ip
:指定虚拟 IP 地址--macvlan_vs_nm
:指定网络掩码--macvlan_vs_gw
:指定网关地址-Mo
:以一次性模式运行-Mr
:以重新运行模式运行-R
:指定要挂载的目录或文件--keep_caps
:保留特权
配置文件
NsJail 使用 ProtoBuf 格式的配置文件来定义详细的隔离参数。配置文件可以包含以下内容:
- 命名空间配置
- 文件系统约束
- 资源限制
- seccomp-bpf 过滤器
- 网络接口配置
- cgroups 配置
项目安装方式
NsJail 可以通过源码编译安装,具体步骤如下:
- 克隆项目仓库
- 编译项目
- 安装到系统
git clone https://github.com/google/nsjail.git
cd nsjail
make
sudo make install
通过以上步骤,您可以成功安装并使用 NsJail 进行进程隔离。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考