第6回 GUIでカスタマイズも簡単! SELinux on CentOS 5.1


面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2007/12/20


 ポリシーの調整

 /var/log/audit/audit.logにSELinuxのポリシー違反のエラーが出力されていますので、「audit2allow」コマンドを用いて必要なallow文を追加していきます。

  1. audit2allowコマンドでReferenceポリシー用のポリシーを作成するためには、interface_infoファイル(/var/lib/sepolgen/interface_info)が必要です。「sepolgen-ifgen」コマンドを用いて、

    # sepolgen-ifgen

    で、必要なinterface_infoファイルが生成されます。
  2. audit2allowコマンドで追加のポリシーを作成します。CentOS 5.1のSELinuxのログはすべて/var/log/audit/audit.logにありますので、

    # cat /var/log/audit/audit.log | audit2allow -R > /root/policies/NRPE.add

    として、追加のポリシー(NRPE.add)を作成します。NRPE.addファイルの中のNRPE_tファイルの中身は図21のようになっていますので、NRPE_tドメインに関する項だけを残し、それ以外は削除します。この際に可能な限り不要なallow文やマクロ類が入らないように気を付けてください。

    (NRPE.addの中身)
    require { type unconfined_t;
    type unlabeled_t;

    --省略--

    class file { execute read lock ioctl execute_no_trans write getattr };
    }

    #============= NRPE_t ==============
    allow NRPE_t apmd_t:dir { getattr search };

    --省略--

    term_list_ptys(NRPE_t)
    udev_read_state(NRPE_t)

    #============= dhcpc_t ============== <--- 以下は不要
    seutil_read_config(dhcpc_t)
    seutil_search_default_contexts(dhcpc_t)

    #============= ifconfig_t ==============
    selinux_get_enforce_mode(ifconfig_t)
    seutil_search_default_contexts(ifconfig_t)
    リスト6 audit2allowにより出力されるポリシー類

  3. 「system-config-selinux」の「Policy Module」の項でNRPEを選択した状態で「Remove」ボタンを押し、NRPEモジュールをアンロードします。

  4. 2.で修正したNRPE.addファイルの中身をNRPE.teファイルに追加し、再度/root/policiesディレクトリ内で、

    # sh ./NRPE.sh

    を実行します。

  5. 「system-config-selinux」の「Policy Module」の項で、「Add」ボタンを押して更新したNRPE.ppをロードします。

  6. SELinuxを「Enforcingモード」にして、Nagiosが動作するかを見てみます。system-config-selinuxツールやsetenforceコマンドを用いて、システムをEnforcingモードにすると、図25のようにNRPE_tドメインで動作しているNRPEを用いてシステム情報が取得できていることが分かります。ただ、図19を見ると分かるとおりSELinuxのステータスの取得が失敗している(UNKNOWNとなっている)ことが分かります。

    図19 NRPE_DOMAINの確認(クリックで拡大します)

  7. NRPE_tでSELinuxのステータスが取得できるように調整します。これには、先ほどのNRPE.teファイルの中に、

    selinux_get_enforce_mode(NRPE_t)

    という一文を加えます。これにより、NRPE_tドメインからSELinuxの情報を取得できるようになります。

    図20 SELinuxの情報が取得できている(クリックで拡大します)

 このようなインターフェイス(新たに作成したドメインで使用できるライブラリのようなもの)に関しては、selinux-policy-develパッケージに同梱されている/usr/share/selinux/devel/policyhelpを実行するとブラウザが起動して一覧と詳細が確認できますので、そちらを参考にするとよいでしょう。

図21 インターフェイスの一覧(クリックで拡大します)

 こちらにはselinux_get_enforce_modeに関しての説明も記載されています。

図22 selinux_get_enforce_modeの説明(クリックで拡大します)

 GUIツールも充実しているCentOS 5.1を体験すべし!

 CentOS 5.1はSELinuxに関する特別な知識がなくても、GUIのツールを用いることにより、比較的簡単に独自のドメインが作成できます。また、そのようなドメイン作成時に必要なドキュメント類に関しても、XMLベースによるマニュアルが充実していますし、管理に関してもGUIツールからほとんどができるようになっています。

 もちろん、本来はセキュリティ上問題がないか気を付ける必要があるため、あくまでも「単に動かすなら」ということになります。ぜひ、皆さまも最新の状況を体験してみてください。

3/3
 

Index
GUIでカスタマイズも簡単! SELinux on CentOS 5.1
  Page1
まずは環境を確認
system-config-selinuxによるポリシーのひな型作成
  Page2
GUIでできちゃう、ポリシーモジュールのコンパイルとロード
Page3
ポリシーの調整
GUIツールも充実しているCentOS 5.1を体験すべし!


Profile
面 和毅(おも かずき)

サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー


学生時代よりUNIXに親しむ。1997年からサーバ構築およびセキュリティ全般を扱う仕事に従事、Linuxを使い始める。

現在はLIDSの普及活動に注力。LIDSユーザ会(LIDS-JP)の立ち上げやLIDS関連文書の日本語化、LIDSを用いたシステム構築の紹介などを行っている。また、サイオステクノロジーでビジネス面でのLIDSの普及活動に注力している。

2005年12月より、LIDS Teamに参加し、LIDSの公式な開発チームの一員として活動している。

スイッチ・オン! SELinux 連載インデックス


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間