SpIDer Guardにカーネルモジュールを使用する

このセクションの内容:

概要

カーネルモジュールを作成する

作成中に起こりうるエラー

概要

ファイルシステムオブジェクトに対するアクションをモニタリングするためにSpIDer Guardが使用するfanotifyメカニズムをOSがサポートしていない場合は、カーネル空間で特別なローダブルモジュールを使用できます(さらに、実装されているfanotifyメカニズムのファイルシステムへのアクセスが制限されている場合も、カーネルモジュールを使用できます)。

SpIDer Guardにはデフォルトで、システム要件と互換性のセクションに記載されているすべてのOSで利用できる、完全に構築されたローダブルカーネルモジュールが付属しています。さらに、SpIDer Guardで提供されているtar.bz2アーカイブのソースコードを使用して、ローダブルカーネルモジュールを手動で構築することもできます。

SpIDer Guardが使用するローダブルカーネルモジュールは、GNU/Linuxカーネル2.6.*以降での動作を対象としています。

ARM64およびE2Kのアーキテクチャ向けDr.Web for UNIX File Serversのバージョンではサポートされていません。

ソースコードを含むアーカイブは、Dr.Web for UNIX File Serversのベースディレクトリ<opt_dir>share/drweb-spider-kmod/src/サブディレクトリにあります(GNU/Linuxの場合は/opt/drweb.com)。アーカイブ名はdrweb-spider-kmod-<version>-<date>.tar.bz2です。

drweb-spider-kmodディレクトリにはcheck-kmod-install.shスクリプトも含まれています。お使いのOSが、Dr.Web for UNIX File Serversに含まれているカーネルモジュールをサポートしているかどうかを確認するには、このスクリプトを実行します。サポートしていない場合は、手動でモジュールを作成するよう指示するメッセージが画面に表示されます。

指定したパスにdrweb-spider-kmodディレクトリがない場合は、drweb-spider-kmodパッケージをインストールします(選択しているDr.Web for UNIX File Serversのインストール方法に応じて、リポジトリから、またはユニバーサルパッケージからのカスタムインストールを使用します)。

ソースコードファイルからローダブルカーネルモジュールを手動で構築するには、管理者(root)権限が必要です。その場合、suコマンドを使用して別のユーザーに切り替えるか、sudoコマンドを使用して別のユーザーとしてモジュールを構築できます。

カーネルモジュールを作成する

1.ソースコードが含まれているアーカイブをいずれかのディレクトリに解凍します。たとえば、次のようなコマンド

# tar -xf drweb-spider-kmod-<version>-<date>.tar.bz2

でソースコードを、作成したディレクトリに解凍します。ディレクトリはアーカイブと同じ場所に作成され、その名前はアーカイブと同じ名前になります。

2.作成されたディレクトリで、以下のコマンドを実行します。

# make

makeコマンドの実行中にエラーが発生した場合は問題を解決し(下記参照)、再度コンパイルを開始してください。

3.makeコマンドの実行に成功したら、以下のコマンドを入力してください。

# make install
# depmod

4.カーネルモジュールのコンパイルとシステムへの登録が正常に完了したら、SpIDer Guardの追加設定を実行します。次のコマンドを実行して、カーネルモジュールと連携するようにコンポーネントを設定します。

# drweb-ctl cfset LinuxSpider.Mode LKM

LKMの代わりにAUTOを指定することもできます。この場合、SpIDer Guardは自動的にカーネルモジュールまたはfanotifyモニタリングインターフェースのいずれかを使用しようとします。詳細については、次のコマンドを入力します。

$ man 1 drweb-spider

作成中に起こりうるエラー

makeコマンドの実行中にエラーが発生する場合があります。その際は以下を確認してください。

モジュールを作成するためには、PerlおよびGCCが必要です。これらがシステム上にない場合はインストールします。

一部のOSでは、手順を開始する前にkernel-develパッケージをインストールする必要があります。

特定のオペレーティングシステムでは、ソースコードを含むディレクトリへのパスが正しく定義されていないため、手順が失敗することがあります。その場合は、KDIR=<path to kernel source codes>パラメータを指定してmakeコマンドを指定します。通常、ソースコードは/usr/src/kernels/<kernel version>ディレクトリにあります。

uname -r コマンドによって返されるカーネルバージョンは、ディレクトリ名の<kernel version>と異なる場合があります。