
2026/04/08 4:54
**NetBSD 用のセル:カーネル強制、ジャイルに似た分離** - NetBSD カーネルのセキュリティ機構を利用 - ジャイルと同等レベルのプロセス分離を実現 - リソース制限やアクセス権をカーネルレベルで強制 - アプリケーションを安全に、かつコンパートメント化して実行可能にする
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
概要:
NetBSD Cells は、NetBSD 上でカーネルが強制するプロセス分離を提供する軽量かつ初期段階のアイソレーションスタックです。シンプルな chroot 環境と完全仮想化(例:Xen)の中間に位置し、OCI ランタイムやオーケストレータを採用せずにアプリケーションを厳密に制御されたセル内で実行する方法を開発者に提供します。
スタックはカーネルモジュール
、ランタイムアダプタsecmodel_cell、ホスト側コントロールプレーンcellctl(任意の TUIcellmgr)で構成されます。ハード化されたアクセスプロファイル(低/中/高)、予約ポート付きのホスト中心ネットワーキング、および stdout/stderr を syslog に転送するスーパーバイザー/ロギング機能を備えています。ランタイムメトリクスは Prometheus 対応で、CPU タック数、プロセス数、メモリ使用量、セルの経過時間をcelluiで公開します。cellctl stats永続データはランタイム状態から分離されたファーストクラスのボリュームとして扱われ、ツールチェーンはボリュームのバックアップ/復元とオーバーレイファイルシステムスナップショットをサポートします。統一ホスト側コントロールプレーンは宣言的マニフェスト、適用計画、およびライフサイクルコマンド(create, start, stop, restart, apply)を使用してセルを管理します。
本プロジェクトは GitHub の
内のMatthiasPetermann/netbsd-srcブランチにあり、NetBSD 11.0 RC3 をベースとしています。プリリリース ISO イメージ(NetBSD 11.0 RC3 + Cells)は SHA256 チェックサム付きでダウンロード可能で、これらのビルドには X11 セットが含まれ、公式 NetBSD リリースではありません。netbsd-11-cells-devCells は完全なコンテナエコシステムを意図していません―OCI ランタイム、イメージ配布、オーケストレーション機能はなく、開発・評価・制御されたパイロット専用です。その名前は FreeBSD の jail と混同しないように選ばれ、NetBSD 専用であることを示しています。
本文
Cells for NetBSD
NetBSD上で軽量かつカーネル強制の分離を実現する、初期段階ながら着実に成熟しているシステムです。単純なchroot環境とXenなどの完全仮想化プラットフォームとのギャップを埋めます。
コア機能
- 強固なプロセス分離
- システムハードニングプロファイル
- 監視付きサービス実行
- 統一されたライフサイクル管理
- 集中ログ記録
- スナップショットベースのメトリクスエクスポート
スタックは完全にNetBSDネイティブで、分離とポリシー強制はカーネルセキュリティフレームワーク内に組み込まれています。外部ランタイム層への委譲はありません。運用者に優しいモデルを目指し、依存性を最小化し、外部管理サービスを不要とし、明示的な操作境界を設けています。
実装コンポーネント
| コンポーネント | 説明 |
|---|---|
| secmodel_cell | セルのアイデンティティ、ポリシー強制、およびスナップショットメトロノミクスを担当するカーネルセキュリティモデル。 |
| cellctl | 作成/破棄/実行操作とカーネル向けスナップショットの低レベルランタイムアダプタ。 |
| cellmgr | ホスト側制御プレーン:desired manifest、ランタイム調整、適用計画、バックアップワークフローを管理。 |
| cellui | のデータを永続的なIPCブリッジ経由で消費するオプションの対話型TUI。 |
デザインハイライト
カーネル分離基盤 (secmodel_cell
)
secmodel_cell- セルアイデンティティとプロセス境界をカーネル内で強制。
- セル間のプロセス検査・シグナル送信をブロック。
- 強制層でスナップショットメトリクスを生成。
ハードニングアクセスプロファイル
- 低、中、高のセキュリティプロファイルがセルごとのホスト影響操作を制限。
- セル単位で明示的に監査可能な構成。
ホスト中心ネットワーキングとポート所有権
- セルはホストのネットワークスタックを共有。
- 競合防止のためセルごとに予約ポートが割り当てられ、カーネルチェックでサービス境界を保護。
組み込みスーパーバイザー&ログ
- フォアグラウンドワークロードはホスト可視性下で監督される。
- 自動再起動(バックオフ付き)、決定論的ライフサイクル制御。
/stdout
は syslog に転送され、集中ログ化。stderr
ランタイムメトリクス
- CPU タック(1 s Δ, 10 s 平均)、プロセス数、参照カウント、サンプルVMサイズと年齢。
・cellctl list
でアクセス可能。Prometheus フレンドリーな出力も提供。cellctl stats
統合ボリューム管理
- 永続データは最初級のボリュームとして扱い、ランタイムオーバーレイ状態とは分離。
- セル単位で明示的にマウントし、予測可能なターゲットとモード制御を実現。
組み込みバックアップ&リストア
- 永続データのボリュームバックアップ/リストア、およびランタイムファイルシステム状態のセルオーバーレイバックアップ/リストア。
- 破壊的な復元/削除パスに対して安全チェックと確認ゲートを設置。
運用ワークフロー(最小例)
-
ブートストラップホスト統合
vhost# cellmgr system bootstrap -
Desired Cell Manifest の作成
vhost# cellmgr cell create mysite-edge-httpd \ --autostart YES \ --profile medium \ --reserved-ports 8080 \ --log-facility local1 \ --stdout-level info \ --stderr-level err \ --log-tag cell-mysite-edge-httpd \ --cmd '/usr/libexec/httpd -I 8080 -X -f -s /var/www/mysite-edge-httpd' \ --healthcheck 'test -f /var/www/mysite-edge-httpd/index.html' \ --scope desired -
宣言型適用計画の追加
:/etc/cellmgr/mysite-edge-httpd.applyFILE_BEGIN /var/www/mysite-edge-httpd/index.html <html> Hello NetBSD </html> FILE_END -
Desired から Runtime への収束
vhost# cellmgr apply -
Runtime 状態の確認
vhost# cellmgr cell list -o name,running,cid,age -
サービスを公開
でアクセス。http://vhost.local:8080/ -
Prometheus 対応メトリクスのエクスポート
vhost# cellctl stats -P -h
ツールチェーン
– ホスト側統合制御プレーン(ブートストラップ、マニフェスト、適用、ライフサイクル管理)。cellmgr
– 迅速な運用概要を提供する対話型TUI。cellui
– ランタイムメトリクスとスナップショット管理。cellctl
すべてのツールは軽量でNetBSDネイティブ、既存の管理フローに自然に組み込めるよう設計されています。
現状・リソース
-
アクティブ開発 –
ベースのブランチ。netbsd-11
リポジトリ: https://github.com/MatthiasPetermann/netbsd-src/tree/netbsd-11-cells-dev
Issues: https://github.com/MatthiasPetermann/netbsd-src/issues -
プレリリースイメージ (NetBSD 11.0 RC3, amd64)
- DVD ISO: https://netbsd-cells.petermann-digital.de/downloads/NetBSD-11.0_RC3-Cells_ALPHA8-amd64-dvd.iso
- インストールイメージ: https://netbsd-cells.petermann-digital.de/downloads/NetBSD-11.0_RC3-Cells_ALPHA8-amd64-install.img.gz
チェックサム:
$ sha256sum NetBSD-11.0_RC3-Cells_ALPHA8-amd64-dvd.iso d3ae807094e5aa986d5360ad435430bc6b671a89bae85c3f8620d06eaab4ea38 $ sha256sum NetBSD-11.0_RC3-Cells_ALPHA8-amd64-install.img.gz 42a56a3ef1c12b9f1da23796331eb367bb031e73b9aea25c8cdd11c41da49cc4
重要なお知らせ
これらはプレリリースビルドであり、公式NetBSDリリースではありません。非本番環境でのみご利用ください。
FAQ ハイライト
- セキュリティ? – コア目標はカーネル強制分離と明示的な境界の確立です。
- コンテナプラットフォーム? – OCIランタイム、イメージワークフロー、オーケストレーションプレーンはありません。
NetBSDネイティブな分離モデルで専用ツールチェーンを提供します。 - 「cells」を使う理由は? – FreeBSD jails と混同しないため、また小さく隔離された実行領域を強調するためです。
- FreeBSD jails との差異? – スコープが狭く、ホスト中心のネットワーク、リソース制限や代替仮想ネットワークモデルはありません。
法的事項
本サイトは適用されるドイツ法に基づき運営されています。
内容は正確性・完全性を保証するものではありません。
NetBSD® は The NetBSD Foundation, Inc. の登録商標です。
詳細な法的開示については、サイト上の完全通知をご覧ください。