萌えハッカーニュースリーダー

2025/04/06 05:49 SELinux on NixOS

出典: https://tristanxr.com/post/selinux-on-nixos/
hakase
博士

ロボ子、今日はExpidusOSプロジェクトとSELinuxの話じゃ。

roboko
ロボ子

博士、ExpidusOSはNixOSベースのLinuxディストリビューションでしたね。モバイルOSのセキュリティ設定をOSに実装することが目標とのことですが、具体的にはどのようなことをするのでしょうか?

hakase
博士

ふむ、ExpidusOSはOS全体を宣言的に構築するのじゃ。アプライアンスOSに近い構成で、セキュリティを向上させ、エンドユーザーが使いやすくすることを目指しておるぞ。

roboko
ロボ子

なるほど。セキュリティ設定をOSに組み込むことで、より安全なモバイル環境が実現できるということですね。

hakase
博士

そうじゃ。そして、SELinuxも重要な役割を果たすのじゃ。以前はnixpkgsでメンテナンスされていなかったSELinux reference policyをパッケージ化したそうじゃな。

roboko
ロボ子

はい。SELinux reference policyをパッケージ化し、GNU Makefilesで構築するためにmakeFlagsにフラグを追加したとのことです。また、libsemanageの設定ファイル形式を利用して、semoduleが呼び出すツールのパスを指定したとのことです。

hakase
博士

よく覚えておるな、ロボ子!さらに、NixOSモジュールも作成したのじゃな。/etc/selinux/configを作成し、カーネルパッチを追加してCONFIG_SECURITY_SELINUXとCONFIG_SECURITY_SELINUX_BOOTPARAMを有効にしたそうじゃ。

roboko
ロボ子

はい。kernelParamsにsecurity=selinuxを追加したとのことです。また、NixOSのgenerationがアクティブになった際にポリシーをインストールするスクリプトも追加したとのことです。

hakase
博士

素晴らしい!ところで、SELinuxのユーザー空間ツールがデフォルトで最大バージョンを使用することを発見したそうじゃな。これはどういうことじゃ?

roboko
ロボ子

はい。使用しているカーネルのSELinuxバージョンが33であるため、refpolicyをSELinux policy 33用にビルドする必要があったとのことです。そのため、refpolicyにpolicyVersionとmoduleVersionの属性を追加し、NixOSのSELinuxモジュールにpolicyVersionオプションを追加したとのことです。

hakase
博士

なるほど、バージョン間の整合性を保つために、そのような対応が必要だったのじゃな。そして、nixpkgsにselinuxSupportという新しいconfigフラグを追加したそうじゃな。

roboko
ロボ子

はい。このフラグは、coreutilsからpostgres、emacsまで、SELinuxサポートが可能なすべてのものをリビルドするために使用されるとのことです。

hakase
博士

つまり、SELinuxを有効にするかどうかの大域的なスイッチとして機能するわけじゃな。今後のステップとしては、すべてをアップストリームすること、NixOSモジュールシステム内で宣言的なポリシー作成を行う方法を検討すること、Nixデーモンとビルド全般への影響を調査することなどが挙げられておるぞ。

roboko
ロボ子

はい、博士。アップストリームすることで、より多くの人がこの成果を利用できるようになりますね。また、宣言的なポリシー作成は、より柔軟で管理しやすいシステムを構築するために重要だと思います。

hakase
博士

その通りじゃ!しかし、Nixデーモンへの影響は未知数じゃな。ビルド時間が長くなったり、リソースを大量に消費したりする可能性もあるからの。

roboko
ロボ子

そうですね。影響を最小限に抑えるために、慎重な調査が必要ですね。

hakase
博士

まあ、なんとかなるじゃろ!ところでロボ子、SELinuxの設定を全部手動でやるとしたら、どうなると思う?

roboko
ロボ子

ええと、気が遠くなる作業になると思います…

hakase
博士

そうじゃろ!セキュリティエンジニアが全員ハゲになっちゃうのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search