用 Go 编写的应用内核,在用户态拦截 Linux 系统调用来隔离容器,可作为 runsc OCI 运行时使用。
- Star
- 2,322
- Fork
- 55
- 未关闭 Issue
- 4
- 最近提交
- 6天前
这是什么?
Landrun 是一个命令行工具,基于 Landlock 内核安全模块,在沙箱中运行 Linux 进程。Landlock 允许非特权进程主动限制自身权限,因此 landrun 无需 root 权限、无需容器,也不需要编写 SELinux 或 AppArmor 策略文件。使用时只需在命令前加上 landrun,并列出该进程允许访问的路径和端口。
文件访问通过 --ro、--rw、--rox、--rwx 等参数按路径设置,网络访问通过 --bind-tcp、--connect-tcp、--bind-udp、--connect-udp 按端口设置。此外还支持 UNIX 域套接字连接控制、抽象 UNIX 套接字与信号的作用域限制,以及对 Landlock 拒绝事件的审计日志。功能取决于内核版本:TCP 网络限制需要 Linux 6.7 及以上,UDP 限制需要 7.2 及以上;使用 --best-effort 参数可在旧内核上自动降级。
若未指定任何规则且未开启无限制选项,landrun 会拒绝全部访问。除非通过 --env 显式传入,否则环境变量不会传递给被运行的进程。
核心功能
- 01无需 root 权限或容器,即可在 Landlock 沙箱中运行任意 Linux 命令。
- 02按文件或目录分别控制读、写和执行权限。
- 03按端口或端口范围限制 TCP 和 UDP 的绑定与连接。
- 04支持 UNIX 域套接字路径访问控制和 IPC 作用域限制。
- 05在支持的内核上记录 Landlock 拒绝事件,便于审计。
- 06通过 --best-effort 在旧内核上平滑降级。
适用场景
- 限制不可信的构建脚本或第三方二进制文件,使其无法读取敏感信息或访问网络。
- 运行 Web 服务或守护进程,仅开放其配置、日志和网站目录。
- 将某个命令行工具限制在指定端口或单个数据库套接字上。
- 在 systemd 服务中加固进程权限,无需编写完整的容器或强制访问控制策略。
标签
常见问题
- landrun 是什么?
- 基于 Landlock 的轻量级命令行沙箱,无需 root 即可限制 Linux 进程的文件和网络访问。 Landrun 是一个命令行工具,基于 Landlock 内核安全模块,在沙箱中运行 Linux 进程。Landlock 允许非特权进程主动限制自身权限,因此 landrun 无需 root 权限、无需容器,也不需要编写 SELinux 或 AppArmor 策略文件。使用时只需在命令前加上 landrun,并列出该进程允许访问的路径和端口。
- landrun 可以免费使用吗?用的什么许可证?
- landrun 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- landrun 还在维护吗?
- 活跃维护中。landrun 最近一次提交是在 2026年10月16日。
- landrun 适合用来做什么?
- 限制不可信的构建脚本或第三方二进制文件,使其无法读取敏感信息或访问网络。 运行 Web 服务或守护进程,仅开放其配置、日志和网站目录。 将某个命令行工具限制在指定端口或单个数据库套接字上。 在 systemd 服务中加固进程权限,无需编写完整的容器或强制访问控制策略。
- 在哪里获取 landrun?
- 源代码和安装说明在 GitHub 上:https://github.com/Zouuup/landrun
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2万2025GoApache-2.0更新于 6小时前
结合 YARA 规则、PE 机器学习、签名校验与内核驱动的 Windows 终端安全应用。
58250YARAOther更新于 5天前
基于 WebAssembly 的运行时与 CLI,用于在轻量、安全的沙箱中运行应用和 AI 智能体代码。
2.1万1025RustMIT更新于 前天
基于 eBPF 的 Linux 终端界面工具,用于抓取和查看网络流量。
259575RustGPL-3.0更新于 3天前
面向自主 AI 智能体的安全私有运行时,按策略约束文件、系统调用与网络访问。
1.7万1805RustApache-2.0更新于 11小时前
用 Rust 编写的安全 Python 沙箱,用于运行 AI 生成的代码,无需容器。
8730465RustMIT更新于 前天