next up previous contents
Next: 6 次に何をすればいいの? Up: SELinux Policy Editor(seedit)管理ガイド(マニュアル) 2.0 Previous: 4 GUIの概要   Contents

Subsections

5 システムの状況を把握する

seeditをインストールすることで、システムに何が起こっているのかを把握しま しょう。

5.1 Simplified policyはどこに?

Simplified policyは、/etc/seedit/policy以下に「.sp」という拡張子のファイ ルとしてインストールされています(詳細は後ほど)。Simplified policyは、 seedit-loadコマンド(内部的にseedit-converterコマンドが実際の作業を行っ ています)によって、SELinuxのポリシー(SELinuxのバイナリポリシ、 file_contextsファイル)に変換されます。変換後のポリシーは /etc/selinux/seedit/policy, /etc/selinux/seedit/contexts/filesにインストー ルされます。これらがカーネルに読み込まれていますが、/etc/selinux/seedit 以下のファイルを気にする必要は通常ありません。

5.2 デフォルトで用意されているSimplified Policy

デフォルトでインストールされているSimplified Policyは、「targetedポリシー」 相当のもので、設定が甘いです。具体的に以下のようになってます。 SPDLは、原理的にはRBACも設定可能ですし、strictポリシー相当のものも記述可 能です。RBACについては、「RBACガイド」を参照してください。

5.3 unconfinedドメイン

このように、デフォルトでは、SELinuxで制限されていないプロセスが存在します。 これらのプロセスには、「SELinuxによって制限されないドメイン(以下 unconfinedドメインと呼びます)」が割り当てられています。 unconfinedドメインは、全てのアクセスを許可するように設定されています。 unconfinedドメインが割り当てられたアプリケー ションは、SELinuxによるアクセス制御を事実上受けなくなり、普通のLinuxの上 で動いているのと同様になります。
例えば、システム起動スクリプトには、initrc_tドメインというunconfinedド メインが割り当てられています。
どのプロセスにunconfinedドメインが割り当てられているのかを把握することがセキュリ ティ上重要になってきます。


5.4 システムの状況把握(GUI)

システムの状況を把握するために、 iステータス をコントロールパネルか ら選択します。seedit ステータスビューア というウィンドウが開きます。


5.4.1 モードの確認と切り替え

SELinux タブから、SELinuxのモードを確認したり切り替えたりできます (図 2)。

Figure 2: SELinuxのモードの確認と切り替え
Image status-selinux

seeditがインストールされている? はい, という表示は、seeditが無事 にインストールされていることを示しています。
現在のモードより、現在のモードがpermissiveモードであることが分か ります。現在のモードの変更も、ここで行えます。 例えば、Enforcingモードに変えるには、 Enforcingモードを選択し、 適用 ボタンを押します。
ブート時のモード は、システム起動時のモードです。 Permissive モードと表示されている時は、再起動時、システムがPermissiveモードで起動 します。実運用時には、両方ともEnforcingモードに切り替えるべきです。

5.4.2 動作中のプロセスのドメインを確認

プロセスタブ$\rightarrow$動作中のプロセス, より、動作中のプロセスのドメ インを確認できます。 図は 3実行例です。

Figure 3: 動作中のプロセスのドメインを確認
Image status-working
Unconfinedドメインで動作しているプロセスには「Unconfined」と表示されてい ます。例えば、bashはUnconfinedドメインで動作しています。一方、httpdには、 httpd_tドメインという通常のドメインが付与されていることが分かります。
PID, プロセス, ドメイン、をクリックすることで、それぞれの項目で結果をソー トすることができます。
更新 ボタンを押すと、表示が更新されます。

5.4.3 ネットワークプロセスのドメインを確認

ネットワークプロセス(ネットワーク接続を外部から受け付けるプロセス)は、攻撃者が侵入する際の入口として使われます。ここを しっかりと守ることが、外部からの不正侵入による被害を無くすために重要になります。 以下のような状況が理想です。

ネットワークプロセスのドメ インは、プロセス$\rightarrow$ネットワークプロセスより確認できます。 実行例を図 4に示します。

Figure 4: ネットワークプロセスのドメインを確認
Image status-network
avahi-daemon, rpc.statdなどにUnconfinedドメインが割り当てられていること が分かります。これらのサービスは使わないならば、停止すべきでしょう。使う ならば、ドメインを割り当てるべきです。

5.5 システムの状況把握(seedit-unconfinedコマンド)

seedit-unconfinedコマンドは、rootユーザーになってから使います。

5.5.1 動作中のプロセスのポリシー適用状況を確認

「seedit-unconfined -e」にて、動作中のプロセスのポリシー適用状況を確認で きます。以下に実行例を示します。

$ su -
# seedit-unconfined -e
Current SELinux mode: permissive ----(1)
PID     Comm    Domain
1       init    Unconfined(init_t) ---(2)
...
1853    sshd    Confined by sshd_t ---(3)
ちなみに、ps -eZコマンドでも、動作中のプロセスのドメインを確認可能です。 しかし、どのドメインがunconfinedドメインかを知ること はできません。SELinuxの制限がかかってないドメイン一覧は、 /etc/selinux/seedit/policy/unconfined_domainsに記述されていますので、 このファイルの内容と照合する必要があります。

5.5.2 ネットワークプロセスのドメインを確認

ネットワークプロセス(外部からネットワーク接続を待ち受けているプロセス) の状況をseedit-unconfined -nコマンドで確認できます(AppArmorの unconfined`コマンドみたいなものです)。

さて、実際に確認してみましょう。seedit-unconfined -nの実行例を以下に示し ます。

#seedit-unconfined -n 
Current SELinux mode: permissive ----(1)
/usr/sbin/smbd  Unconfined(initrc_t) -- (2)
/usr/sbin/sendmail.sendmail     Confined by sendmail_t --(3)
...
ネットワークプロセス一覧が表示され、ドメインの適用状況が表示されます この場合、smbdに対して何らかの対処をしないとセキュリティを保てません。


5.5.3 Enforcing/Permissiveモードを切り換える

インストール直後は、permissiveモードですが、以下のコマンドでEnforcingモードに切り換え可能です。
# setenforce 1
# getenforce 
enforcing
ただし、これだと再起動時にまたPermissiveモードに戻ってしまいます。 ブート時からEnforcingモードにするには、/etc/selinux/configを次のようにします。 実運用の際には、このようにEnforcingモードにすることを強く薦めます。

SELinux=permissive
-->
SELINUX=enforcing


next up previous contents
Next: 6 次に何をすればいいの? Up: SELinux Policy Editor(seedit)管理ガイド(マニュアル) 2.0 Previous: 4 GUIの概要   Contents
Yuichi 2006-06-28