SELinux/ja
SELinuxは、セキュリティ管理者がユーザがなにができてなにができないかを決定できるようにする、より細かいアクセス制御強制アクセス制御システムです。Linuxにおける標準の任意アクセス制御(すなわちエンドユーザが共有するべきでないファイルを共有したり、他のユーザがその人の所有するファイルに書きこめるようにできるなど)と違い、強制アクセス制御は完全にセキュリティポリシーによって制御されます。
SELinuxは標準の任意アクセスコントロール(DAC)と一緒に動作します。つまり、DACによる制御がまず行なわれ、DACが動作を許可すればSELinuxが同様に動作を確認します。SELinuxではプロセスは「ドメイン」というものの中で動作します。それぞれのドメインにどのリソース(プロセス、他のドメイン、ファイル、権限、ファイルコンテキスト、セマフォ、メッセージなど)にどんなことができるかの権限が設定されています。
Gentoo サポート
Gentooプロジェクトでは、SELinuxはGentoo Hardenedプロジェクトによってもサポートされています。しかし、SELinuxを使うのにhardenedプロファイルを使う必要はありません。(hardenedのツールチェインを使わずにSELinuxを有効にすることができます。)
Gentoo Hardened SELinux リソース
SELinuxと戦う助けとなるドキュメントをリストアップします。これらのドキュメントはGentooのSELinuxサブプロジェクトでメンテナンスされています。
- Gentoo Hardened SELinux Handbook
- SELinuxの簡単な紹介
- インストール(移行)ガイド
- 様々なSELinuxの管理コマンドの紹介
- Gentoo HardenedとSELinuxのFAQ
- SELinux Policyの制限
- Gentoo Hardened SELinuxチュートリアル
この他にも開発に関連したドキュメントもあります。Gentoo HardenedのSELinuxサポートの開発に興味がある方はこのドキュメトを参考にしてください。
- Gentoo Hardened SELinux Development Guide
- Reporting SELinux policy bugs
- Gentoo Hardened SELinux Development Policy
- Gentoo Hardened SELinux Roadmap (might be outdated)
SELinux ポリシーモジュール
SELinuxは、ポリシー設定にモジュール的なアプローチを採用しています。コア部分の権限設定は "base" ポリシーの中に含まれ、追加の権限設定をSELinuxのモジュールで定義します。現在ロードされているSELinuxのモジュールリストを表示するには、semodule -lを実行しましょう。ポリシーモジュールには、それぞれの定義(どのドメインがモジュールによって提供され、どのリソースがどのようにラベルづけされているか)、権限(どんな動作が許可されているか)、追加の権限(SELinuxでの真偽値によって発動される)、その他もろもろが記載されています。ときには、そのモジュール特有の、より手の混んだ記載の保有も請けあっています。
以下に、文書の用意されているモジュールのリストを示します。
- apache は、apache や lighttpd のようなウェブサーバに対応する SELinux モジュールです。
- bind は、bind DNSサーバに対応する SELinux モジュールです。
- chromium は、 chromium ウェブブラウザに対応する SELinux モジュールです。
- cron は、(vixie-cron のような) さまざまな cron ドメイン に対応する SELinux モジュールです。
- ldap は、 OpenLDAP に対応する SELinux モジュールです。
- portage は、Gentoo の portage システムと、portage に関連するツール (gcc-config や eselect などなど) に対応する SELinux モジュールです。