OSファイル・モニタリング

Linuxのリアルタイム・ファイル・モニタリングを使用する前に、ロード可能なカーネル・モジュールをホストにインストールしておく必要があります。このロード可能カーネル・モジュールは、ホストをモニタリングする最も効率的な手段です。このロード可能カーネル・モジュールは、ファイル監査モジュール(あるいは単に監査モジュール)と呼ばれます。

カーネル・モジュールの取得

カーネル監査モジュールは、http://oss.oracle.com/projects/fileauditmoduleから入手可能です。ファイル監査カーネル・モジュールを取得するには、2つの方法があります。

  1. 事前作成.koファイル。Oracleで事前作成されたこのファイルを環境内で使用できます。事前作成カーネル・モジュールは、「ダウンロード」リンクから検索できます。一致する事前作成バージョンを調べるには、モニター対象のホストでuname -rコマンドを実行し、そのバージョンを事前作成モジュールのバージョンと比較します。バージョン文字列全部が完全に一致する必要があります。32ビットのマシンの場合、.koファイル名の修正後の名前は.koになります。64ビットのマシンの場合、.koファイル名の修正後の名前は.k64.koになります。
  2. 独自のカーネル・モジュールの作成。独自のカーネル・モジュールを作成するには、「ダウンロード」リンクから次のRPMをダウンロードできます。

    Fileauditmodule-emversion-revision-noarch.rpm

    このモジュールをインストールする際は必ず、その時点で入手可能な最新のリビジョンを取得してください。emversionフィールドは、使用しているCloud Controlエージェントおよびサーバーのバージョンと一致する必要があります。

    このRPMをルートとしてモニター対象ホストにインストールします。このRPMのインストールは、ホストに存在する実行中のカーネルと一致するkernel-develパッケージに依存します。このkernel-develパッケージには、Linuxインストーラと同じメディアが付属しています。

    このパッケージをインストールし、さらにホストで使用可能なgccのバージョンがカーネルの作成に使用されたバージョンと一致していることを確認する必要があります。このためには、/proc/versionファイルを参照してカーネルの作成に使用されたgccバージョンを確認し、続いてコマンドgcc –vを実行して使用中のgccバージョンを確認します。これらのバージョンは、一致している必要があります。

    また、ファイル/boot/System.map-{version}が存在することを確認します。ここで、{version}は、uname -rコマンドを実行すると表示されるカーネル・バージョンと一致している必要があります。リアルタイムの変更をモニタリングするには、このファイルに含まれるシステム・シンボルが、カーネル・シンボルのデコードのために必要です。このファイルがない場合、リアルタイムのファイル・モニタリングは機能しません。このファイルは、すべてのデフォルトのLinuxインストールで標準となっています。

    このパッケージのインストールと前提条件のチェックが正常に完了したら、パッケージ・コンテンツがインストールされたディレクトリ(デフォルトでは/opt/fileauditmodule)に移動し、次のスクリプトを実行します。

    compmod.sh

    これによって、カーネル・モジュール・ファイル(OSのバージョンに応じて拡張子はko、.k64または.oのいずれかになる)が作成され、/opt/fileauditmoduleディレクトリに格納されます。

    監査モジュール・ファイルが作成されていない場合は、make.logファイルとbuild.logファイルでモジュール作成のエラーを調べてください。

すべてのホストのカーネル・バージョンが、コマンドuname –rを使用して表示されたカーネル・バージョンと一致していれば、1つのマシンでモジュールをコンパイルするだけで済みます。その後は、.ko、.k64または.oファイルを他のサーバーにコピーできます。これらのファイルを特定のホスト上に作成する必要はありません。

カーネル・モジュールのデプロイ

事前作成.koファイルまたはソースRPMから作成した.koファイルは、適切なディレクトリに配置する必要があります。このファイルのデフォルトの場所は、エージェントのホーム・ディレクトリ内のbinフォルダです。また、このファイルをホスト上の任意の場所に格納して、エージェント・ホームのAGENT_INST/sysman/configディレクトリ内のnmxc.propertiesファイルを変更することもできます。プロパティnmxcf.kernel_module_dirは、.koディレクトリの絶対パスを指定します。

カーネル・モジュールのインストール・ジョブ

エージェントへの.KOファイルの手動配置以外にも、「リアルタイム・モニタリング・カーネル・モジュールのインストール」という名前のCloud Controlジョブがあります。このジョブは、カーネル・モジュールをインストールできるLinuxホストのリストを使用して構成します。事前作成.koファイルまたはソースRPMファイルが、Cloud Controlサーバー・ディスクのディレクトリでローカルに検索されます。一致する事前作成.koファイルが見つかると、一致するエージェントに送信されます。見つからない場合、RPMがエージェントに送信、インストールおよびコンパイルされ、新しい.KOファイルが生成されます。

このジョブを使用する前に、ユーザーはOSS.ORACLE.COMからファイルを手動で取得して、%ORACLE_HOME%/gccompliance/fileauditmodule/resources/linuxディレクトリに格納する必要があります。このディレクトリは、このディレクトリがこれらのファイルの格納場所であることを示すREADMEファイルとともに、すでにサーバー上に存在しています。ここに格納する必要のあるファイルは、事前作成.KOファイルまたはソースRPMファイルです。環境内に独自の.KOファイルを作成した場合は、これらの.KOファイルをサーバー上のこのディレクトリに格納して、環境内の他のホストにデプロイすることもできます。

Enterprise Linux 5以上に関する特別な考慮事項

Enterprise Linux 5以上の場合、カーネル監査モジュールは必要ありません。起動時にカーネル・モジュールが検出されない場合、モニタリングには組込みの監査サブシステムが使用されます。ただし、監査サブシステムの機能はカーネル監査モジュールの機能ほど堅牢ではありません。

作成アクションであっても変更アクションであっても、どのようなタイプの変更がファイルに行われたかまでを調べる機能は失われます。カーネル・モジュールがない場合、ファイルに対するすべての変更は変更アクションとみなされます。また、まだ存在しないディレクトリのモニタリングや、現在存在するが後で削除される可能性があるディレクトリのモニタリングは、基礎となるLinux監査サブシステムによってこれらのモニタリングが処理されないため、中断される可能性があります。

新バージョンのLinuxを使用する場合でも、可能であれば、カーネル監査モジュールを使用することをお薦めします。