最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎样利用 CHROOT jail 技术为不安全服务创建隔离运行环境教程
时间:2026-07-10 09:48:52 编辑:袖梨 来源:一聚教程网
chroot jail 不是安全沙箱,仅重定向文件系统路径,必须配合最小化构建、挂载控制、用户降权和资源限制四步才能形成有效约束链。
chroot jail 本身不是安全沙箱,它只做文件系统路径重定向,不隔离进程、网络或内核资源。所以为不安全服务建隔离环境,不能只靠 chroot 命令,必须配合最小化构建、挂载控制、用户降权和资源限制四步动作,才能形成有效约束链。
准备最小化 jail 根目录
选专用路径,比如 /srv/chroot/untrusted,避免用 /tmp 或用户家目录:
- 建标准骨架:
sudo mkdir -p /srv/chroot/untrusted/{bin,lib64,etc,dev,proc,sys,tmp,usr} - 只复制目标服务二进制及其直接依赖:例如要跑
curl,先执行ldd $(which curl),再仅把输出中带/lib64/的 .so 文件拷入/srv/chroot/untrusted/lib64/ - 手动创建基础设备节点:
sudo mknod -m 666 /srv/chroot/untrusted/dev/{null,zero,urandom,tty} c 1 3(主次设备号按需调整)
挂载必需虚拟文件系统
没这些,ps、ls /proc、DNS 解析等基本功能都会失效:
sudo mount -t proc proc /srv/chroot/untrusted/procsudo mount --bind /sys /srv/chroot/untrusted/sys-
sudo mount --bind /dev /srv/chroot/untrusted/dev(若服务纯计算无设备访问,可用--bind /dev/null替代整个/dev) - 复制网络配置:
sudo cp /etc/resolv.conf /srv/chroot/untrusted/etc/,并确保/srv/chroot/untrusted/etc/nsswitch.conf存在且含hosts: files dns
以非 root 身份启动并加固
chroot 内保留 root 权限等于主动放弃隔离效果:
- 创建专用受限用户:
sudo useradd -r -s /bin/bash -d /untrusted untrusted - 在 jail 内建好该用户 home:
sudo mkdir -p /srv/chroot/untrusted/home/untrusted,并设属主:sudo chown -R untrusted:untrusted /srv/chroot/untrusted/home/untrusted - 用
--userspec启动:sudo chroot --userspec=untrusted:untrusted /srv/chroot/untrusted /bin/bash - 进入后立即执行资源限制:
ulimit -u 32 -n 64 -v 524288000(限制最大进程数、文件描述符、虚拟内存 512MB)
验证是否真正受限
别只看能否进 bash——三项检查缺一不可:
- 运行
id:UID 必须是untrusted对应数值,不能为 0 - 运行
ls /:只应看到你放进去的bin、lib64等目录,看不到宿主机的/etc或/home - 尝试
ls /etc/shadow或cat /proc/sys/kernel/osrelease:应返回 “No such file or directory” 或权限拒绝
相关文章
- Codex中端口配置错误排查和解决实战指南 07-10
- Codex Windows自动更新后沙箱报错问题排查与解决方法 07-10
- 谷歌浏览器怎么查看历史记录 07-10
- Codex 下载与登录全流程分析(Windows macOS Linux) 07-10
- codex 改文件中文乱码的解决方式 07-10
- VSCode中使用TRAE AI插件的步骤方法 07-10