第8回 Multi Level Securityで機密ファイルを管理する

古田 真己
サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2006/11/28

 システムへのログインと実行ドメインの確認

 再起動が完了したらログインしてみます。ポリシー修正が行われたことで、gdmからログインするとセキュリティコンテキストは正しく「user_u:user_r:user_t:SystemLow」となりました。

図21 ポリシー修正後のセキュリティコンテキストを確認する

 今回の目的のためには、さらに作業が必要です。

 運用に合わせたポリシーの修正と変更

 いままでは「Permissive」モードで動作させていましたが、実際の運用には「Enforcing」モードで使用可能である必要があります。試しにこの状態で「Enforcing」モードに切り替えると、VNCの接続が切れ、二度と接続できなくなります。

[root@localhost ~]# newrole -r secadm_r
Authenticationg root.
パスワード(P):
[root@localhost ~]# setenforce 1
図22 rootユーザーでsshからログインした後モードを切替える

 ここからは、VNCサーバに合わせて新しくポリシーを追加してやる必要があります。手で一からVNC接続用のポリシーを記述することも可能ですが、とても時間がかかりますし、セキュリティを厳しく設定するには、SELinuxを熟知していることが必要で、実際の運用ではなかなかそこまでは手が回りません。せっかくですから今回は「audit2allow」コマンドを使用することで、バイナリポリシーモジュールを生成して解決してみましょう。

●audit2allowコマンドによるバイナリポリシーモジュールの自動生成

 第5回「Referenceポリシーの作成と動作テスト」にて、新しくなったaudit2allowコマンドでポリシーモジュールを生成できることを紹介しました。具体的には以下のようにします。

 1.auditログから生成する場合

[root@localhost ~]# ausearch -m AVC|audit2allow -M my_policy
図23 バイナリポリシーモジュールの自動生成(audit)

 2.syslog(/var/log/messages)から生成する場合

[root@localhost ~]# audit2allow -M my_policy < /var/log/messages
図24 バイナリポリシーモジュールの自動生成(syslog)

 今回はログを確認しやすく、取り扱いやすいという理由から2.のsyslogの情報からポリシーを生成してみます。

 まずは「/var/log/messages」ファイルを強制的にローテートして空にします。

[root@vmfc5-nat ~]# chkconfig auditd off
[root@vmfc5-nat ~]# service auditd stop ← syslogからSELinuxのアクセス拒否ログを得るため、「auditd」は停止する
[root@vmfc5-nat ~]# ls -l /var/log/messages
-rw------- 1 root root 797 Nov 13 23:38 /var/log/messages
[root@vmfc5-nat ~]# logrotate -f /etc/logrotate.d/syslog
[root@vmfc5-nat ~]# ls -l /var/log/messages
-rw------- 1 root root 50 Nov 13 23:38 /var/log/messages
[root@vmfc5-nat ~]# cat /var/log/messages
Nov 13 23:38:14 vmfc5-nat syslogd 1.4.1: restart
[root@vmfc5-nat ~]# reboot
図25 auditdの停止とログの強制ローテート・再起動

 次に、「reboot」して再起動を行ってから再度VNC経由で一般ユーザーとしてログインし、OpenOffice.orgを起動してみます。そのとき、発生するSELinuxのすべてのアクセス拒否ログは「/var/log/messages」に出力されます。

 これを使用してaudit2allowでポリシーモジュールを作成します。

図26 audit2allowでの自動ポリシー生成

 このとき、生成されるポリシーは非常に大きなサイズになります。これは前回再起動してから行われた動作がすべて反映されたものだからです。

[root@localhost ~]# ls -l vnc_fileserver.*
-rw-r--r-- 1 root root 17899 Nov 13 23:50 vnc_fileserver.mod
-rw-r--r-- 1 root root 17915 Nov 13 23:50 vnc_fileserver.pp
-rw-r--r-- 1 root root 7531 Nov 13 23:50 vnc_fileserver.te
図27 自動生成で生成されたポリシーファイル

 生成されたポリシーは次のようにインストールできます。

[root@localhost ~]# semodule -i vnc_fileserver.pp
[root@localhost ~]# semodule -l
vnc_fileserver 1.0
図28 バイナリポリシーモジュールのインストールと確認

 インストールされたポリシーは再起動後も有効になります。あとは「Enforcing」モードで起動して動作を確認してみてください。

【ポリシー生成の注意】
「/var/log/messages」に記録されるSELinuxのアクセス拒否ログは、ほとんどの場合、本当に正しく拒否されるべきものを含んでいます。従って、今回の例では無条件のポリシーを作成しインストールしましたが、本来は拒否ログの1つ1つについて、妥当性を評価する必要があります

 重要ドキュメントとユーザーの管理

 ユーザーの管理にはMCSのときと同じく「semanage」コマンドを使用します。例えば、SystemLowからUnclassfiedまでを取り扱うユーザー、engineer1は次のように追加します。

[root@localhost ~]# groupadd engineers
[root@localhost ~]# useradd engineer1 -g engineers
[root@localhost ~]# semanage login -a -s staff_u -r SystemLow-Unclassified engineer1
[root@localhost ~]# semanage login -l

Login Name     SELinux User    MLS/MCS Range

__default__      user_u        SystemLow
engineer1     staff_u         SystemLow-Unclassified
root         root          SystemLow-SystemHigh
図29 ユーザーengineerの追加と設定

 このようにしてポリシーと管理用の設定を整え、SELinuxのセキュリティ上の保証と、実際に業務に必要な動作の許可を設定していきます。MLSでは今回説明したように、MCSに加えてさらにセキュリティ階層ごとのアクセス制御が実現できるため、NDA関連文書や、人事、経理などの重要度の高いデータをこのようなサーバ上でのみ取り扱うこととすれば、情報の漏えい、データの改ざんが防げるはずです。


 今回はMLSでのソリューション例とその設定方法について解説しました。これはいままでの内容のまとめにもなっていたかと思います。ぜひ、もう一度復習してみてください。

4/4
 

Index
Multi Level Securityで機密ファイルを管理する
  Page1
FC6のリリースとSELinux
  Page2
社内機密ファイルの運用・管理をMLSで実現
インストールとRaw Hideへのアップデート
サーバ側接続環境のセットアップ
  Page3
実際の動作をテストする
セキュリティコンテキストを調整する
Page4
システムへのログインと実行ドメインの確認
運用に合わせたポリシーの修正と変更
重要ドキュメントとユーザーの管理


Profile
古田 真己(ふるた まさき)

サイオステクノロジー株式会社
インフラストラクチャービジネスユニット Linuxテクノロジー部
OSSテクノロジーグループ

 学生時代にUNIXマシン欲しさ、触りたさに秋葉原へ通い詰める。秋葉原でAT互換機や中古UNIXマシンの販売などを経て、IT業界に転職。その後Linuxのエンタープライズ分野での性能評価や、構築案件などを経験し、2004年にテンアートニ(現・サイオステクノロジー)入社。RedHat Linuxのサポート業務、構築案件に取り組んできた。

 現在はサイオステクノロジーでSELinuxの調査・研究、ビジネスでの普及活動に注力している。

Security&Trust記事一覧


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

注目のテーマ

Security & Trust 記事ランキング

本日 月間