Goで書かれたアプリケーションカーネル。Linuxのシステムコールをユーザー空間で仲介してコンテナをサンドボックス化し、OCIランタイムrunscとして実行できます。
- スター
- 2,322
- フォーク
- 55
- 未解決の Issue
- 4
- 最終コミット
- 6 日前
これは何?
Landrunは、非特権プロセス自身によるアクセス制限を可能にするカーネルネイティブのセキュリティモジュール、Landlockを使って、Linuxプロセスをサンドボックス内で実行するコマンドラインツールです。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で指定しない限り、環境変数は子プロセスに渡されません。
主な機能
- 01root権限やコンテナを使わず、任意のLinuxコマンドをLandlockサンドボックス内で実行します。
- 02ファイルやディレクトリごとに、読み取り・書き込み・実行のアクセスを制御します。
- 03ポートまたはポート範囲ごとに、TCPとUDPのバインドおよび接続を制限します。
- 04パス名を使うUNIXソケットのアクセス制御とIPCのスコープ制御に対応します。
- 05対応カーネルでは、監査用にLandlockによる拒否をログに記録します。
- 06--best-effortを使い、古いカーネルでも利用可能な機能で動作します。
ユースケース
- 信頼できないビルド工程、スクリプト、サードパーティ製バイナリを隔離し、秘密情報の読み取りやネットワークアクセスを防ぐ。
- Webサーバーやデーモンがアクセスできる範囲を、設定・ログ・Webルートの各ディレクトリに限定する。
- CLIツールの接続先を特定のポートや単一のデータベースソケットに制限する。
- コンテナやMACポリシーを一から作成せずに、systemdサービスを強化する。
クイックスタート
- 1
Go toolchain(Go 1.24以降)でlandrunをインストールする
go install github.com/zouuup/landrun/cmd/landrun@latest - 2
サンドボックス内でコマンドを実行し、/homeへの読み取り専用アクセスとlsの実行を許可する
landrun --rox /usr/bin/ls --rox /usr/lib --ro /home ls /home
使う前に知っておきたいこと
- Linuxのみ対応。Landlockを有効にしたカーネル5.13以降が必要です。
- TCPの制限にはカーネル6.7以降、UDPの制限にはカーネル7.2以降が必要です。古いカーネルでは--best-effortを指定してください。
- ソースからビルドするにはGo 1.24以降が必要です。
トピック
よくある質問
- landrun とは?
- Landlockを使い、ファイルシステムとネットワークを細かく制御しながら、Linuxプロセスを非特権サンドボックスで実行する軽量CLI。 Landrunは、非特権プロセス自身によるアクセス制限を可能にするカーネルネイティブのセキュリティモジュール、Landlockを使って、Linuxプロセスをサンドボックス内で実行するコマンドラインツールです。root権限やコンテナ、SELinuxやAppArmorのポリシーファイルは必要ありません。landrunでコマンドをラップし、使用を許可するパスやポートを指定します。
- landrun は無料で使えますか?ライセンスは?
- landrun は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- landrun は今もメンテナンスされていますか?
- 活発にメンテナンス中。landrun の最終コミットは 2026年10月16日 です。
- landrun は何に使えますか?
- 信頼できないビルド工程、スクリプト、サードパーティ製バイナリを隔離し、秘密情報の読み取りやネットワークアクセスを防ぐ。 Webサーバーやデーモンがアクセスできる範囲を、設定・ログ・Webルートの各ディレクトリに限定する。 CLIツールの接続先を特定のポートや単一のデータベースソケットに制限する。 コンテナやMACポリシーを一から作成せずに、systemdサービスを強化する。
- landrun のインストール方法は?
- Go toolchain(Go 1.24以降)でlandrunをインストールする: go install github.com/zouuup/landrun/cmd/landrun@latest サンドボックス内でコマンドを実行し、/homeへの読み取り専用アクセスとlsの実行を許可する: landrun --rox /usr/bin/ls --rox /usr/lib --ro /home ls /home
- landrun はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Zouuup/landrun
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
YARAルール、PEの機械学習推論、署名チェック、任意のクラウド分析、カーネルminifilterドライバーを組み合わせたWindows向けエンドポイントセキュリティアプリ。
アプリやAIエージェントのコードを、高速で軽量なサンドボックス環境で実行するWebAssemblyランタイムとCLI。
eBPFを基盤とする、Linuxのネットワークトラフィックを監視・解析するためのTUI。
サンドボックスごとにファイル、システムコール、ネットワークのポリシーを適用する、安全でプライベートな自律型AIエージェント向けランタイム。
AI生成コードをコンテナなしで実行できる、Rust製の安全なPythonサンドボックス。