検索
特集

第3回 基本操作とポリシーファイルの設定SELinuxで強化するソリューション(1/3 ページ)

最近注目のSELinuxについて学ぶ同連載、今回から、SELinuxを実際に使っていくために必要な基本的なコマンド群を学ぶとともに、実際にアクセス許可の設定を行っていこう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 Turbolinux 10 serverはLinuxカーネル2.6を搭載したディストリビューションの1つだ。また、SELinuxの構築・運用支援ツールであるSELinux/Aidも標準で同梱されており、SELinuxを使ったシステム構築の敷居を大幅に下げてくれる。今回は、Turbolinux 10 serverを使用してSELinuxの基本操作、ポリシーファイルの設定について解説していく。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 まず、最低限知っておくべきSELinuxの基本操作について説明する。

SELinuxカーネルの有効化

 インストール後のデフォルト状態ではSELinuxカーネルが無効なため、GRUBのブートオプションを指定し、SELinuxカーネルを有効化させる。これは、/boot/grub/grub.confファイルに次のような記述を追加すればよい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

ファイルのタイプ付け

 前述のとおり、Turbolinux 10 serverのデフォルトではSELinuxが無効になっている。SELinuxを無効から有効に変更した場合には、root権限でシステムに存在するすべてのファイルに対し、デフォルトのポリシーファイル(アクセス制御の設定)に基づいたタイプ付けを行う必要がある。ファイルのタイプ付けは、次のようにfixfiles relabelコマンドを実行する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 fixfiles relabelコマンドの実行後は、前述したようにgrub.confが修正してあれば、再起動することでSELinuxカーネルを有効化できる。なお、fixfiles relabelコマンドでファイルのタイプ付けを行なう前にシステムを再起動してSELinuxを有効化させてしまうと、ファイルに適切なタイプが付与されないため、システムが正常に起動しないので注意が必要だ。

ドメインとタイプの確認

 SELinuxでは、psコマンドやlsコマンドが拡張されており、「-Z」オプションを付与することで、プロセスのドメイン、リソースのタイプなどセキュリティコンテキストを確認できる。以下は、それぞれの実行例だ。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

ロールの確認

 SELinuxにログイン後(ログイン時のロールの選択に関してはこちらを参照)、ロールの確認を行いたい場合は、getconコマンドで確認できる。ただし、getconコマンドは、Fedora Core 3など一部のディストリビューションには用意されていない。その場合はidコマンドで確認すればよい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

SELinuxのモード

 SELinuxにはenforcingとpermissiveの2つのモードが存在する。それぞれのモードの違いは以下のとおりである。

  • enforcingモード

 enforcingモードでは、後述するセキュリティポリシーの設定で許可されていないアクセスがあった場合、アクセスを拒否してログを出力する。実際の運用はこのモードで行われる。

  • permissiveモード

 permissiveモードは、本来であればセキュリティポリシーに違反するアクセスであっても、ログを出力してアクセスを許可する。

 前回、監査ログについて「アクセス権の設定は、ログの内容をもとに許可するべきアクセス権の設定を行っていく」ことを説明した。enforcingモードで実際にアクセス拒否されたログの内容をもとに、許可すべきアクセス権の設定を行うのでは、一度に出力されるログが少ないため適切なアクセス権の設定を行うのに膨大な時間と労力が掛かってしまう。そのため通常は、permissiveモードでひととおりの操作を実行し、出力されたログの内容をもとに必要なアクセス権を設定、enforcingモードで実運用、という流れになる。

 現在動作しているモードは、getenforceコマンドで確認できる。SELinuxが動作している場合、このコマンドを実行することで「permissive」または「enforcing」と動作中のモードが表示される。なお、「Disable」と表示された場合はSELinuxが無効*となっている。

 また、/selinux/enforceファイルでも確認できる。「0」ならpermissiveモード、「1」ならenforcingモードでSELinuxが動作している。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

モードの変更

 モードの変更はsetenforceコマンドで行う。rootユーザーでログインした後、newroleコマンドでsysadm_rロールに変更してから実行する。前回紹介したように、sysadm_rロール以外のロールではポリシーファイルの設定は行えないので注意してほしい*

 permissiveモードに変更したい場合は、コマンドの引数に「0」を、enforcingモードに変更したい場合は「1」を入力する。変更後、getenforceコマンドでモードが変更されたことを確認しておくといいだろう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 setenforceコマンドでのモード変更は、サーバを再起動すると無効となってしまう。OS起動時にSELinuxを有効にするには、/etc/sysconfig/selinuxファイルで設定する。

 同ファイルを見ると、「SELINUX=」ディレクティブが見つかるはずだ。Turbolinux 10 serverのデフォルトでは「SELINUX=enforcing」が設定されている。この行を「SELINUX=permissive」または「SELINUX=disable」のように変更したいモードを指定すればよい。

 これまでに説明したコマンドを、表1にまとめた(fixfiles relabelコマンドについては、後で再度取り上げるので省略)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 次ページではポリシーの設定について解説していく。

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る