Repolode
Zouuup

Zouuup/landrun

Landlockを使い、ファイルシステムとネットワークを細かく制御しながら、Linuxプロセスを非特権サンドボックスで実行する軽量CLI。

代替できる製品:Firejail

スター
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. 1

    Go toolchain(Go 1.24以降)でlandrunをインストールする

    go install github.com/zouuup/landrun/cmd/landrun@latest
  2. 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 の数値は毎日更新されます。

関連プロジェクト