付録 E. SpIDer Guard用カーネルモジュールの作成

このセクションの内容:

概要

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

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

概要

OSが fanotifyモニタリングインターフェースをサポートしていない場合、SpIDer Guardはカーネル空間内で動作する特別なローダブルモジュール(Linuxカーネルモジュール、LKMモジュール)を使用します。

デフォルトでは、SpIDer GuardはfanotifyサービスをサポートしていないOS用の完成したローダブルカーネルモジュールと一緒に提供されます。ローダブルカーネルモジュールは、tar.bz2 アーカイブ内で提供されるソースコードを使用して作成することも可能です。

SpIDer Guardの使用するLKMモジュールは、GNU/Linuxカーネル2.6以降との動作を意図しています。

E2KおよびARM64アーキテクチャの場合、LKMでの動作はサポートされていません。

 

ソースコードのあるアーカイブはDr.Web for Linuxベースディレクトリの share/drweb-spider-kmod/src サブディレクトリ内にあります(デフォルトでは /opt/drweb.com)。アーカイブ名は drweb-spider-kmod-<version>-<date>.tar.bz2 になります。drweb-spider-kmod ディレクトリには check-kmod-install.sh テストスクリプトも含まれています。お使いのOSが製品に含まれているカーネルモジュールをサポートしているかどうかを確認するにはスクリプトを実行してください。サポートしていない場合は手動でモジュールを作成するよう指示するメッセージが画面に表示されます。

指定したディレクトリ drweb-spider-kmod がない場合、drweb-spider-kmod パッケージを インストール します。

ソースコードからLKMモジュールを手動で構築するには、管理者(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: drweb-spider(1) を参照してください。

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

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

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

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

一部のOSでは、ソースコードのあるディレクトリへのパスが誤って指定されていることが原因で、作成に失敗する場合があります。その場合、KDIR=<path to kernel source codes> パラメータを使用して make コマンドを指定します。通常、ソースコードは /usr/src/kernels/<kernel version> ディレクトリにあります。

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