Symantec Endpoint Protection for Linux (SEPFL) の Auto-Protect カーネルモジュールを手動でコンパイルする方法、および実施する必要のある追加手順について知りたい。オペレーティングシステムのカーネルを更新した場合、または自動コンパイルが失敗した後に詳細な出力をキャプチャする場合に、この操作を行う必要がある場合があります。
Symantec Endpoint Protection for Linux 14.3 MP1 (14.3.1169.0100) 以下
この文書は、Linux 用の Symantec Endpoint Protection クライアントをインストール済みで、AutoProtect カーネルモジュールが有効にならない場合を想定しています。カスタム AutoProtect カーネルモジュールを構築するための自動コンパイルの前提条件を満たしていない、またはコンパイラがエラーを返して AutoProtect カーネルモジュールを有効にできないことが原因である可能性があります。"Kernel release not specified" は、以下の要件が満たされていない場合にコンパイルで返される典型的なエラーです。
詳しくは SEP for Linux クライアントの自動コンパイル を参照してください。
AutoProtect カーネルモジュールをビルドするには、gcc と Linux カーネルソースをインストールする必要があります。以下の表は、gcc パッケージに加えてご利用のディストリビューションにインストールする必要があるパッケージをまとめたものです。
ディストリビューション | インストールするカーネルパッケージ | 特殊なビルドコマンド |
---|---|---|
CentOS | kernel-devel-$(uname -r) kernel-headers-$(uname -r) |
|
Debian | linux-headers-$(uname -r) linux-headers-$(uname -r) build-essential (注を参照) |
./build.sh --kernel-dir /usr/src/linux-headers-$(uname -r) |
Fedora | kernel-devel-$(uname -r) kernel-headers-$(uname -r) |
./build.sh --kernel-dir /usr/src/kernels/$(uname -r) |
SUSE Linux Enterprise Server (SLES) | kernel-$flavor-devel-$version (注を参照) | ./build.sh --kernel-dir /lib/modules/$(uname -r)/build |
Open Enterprise Server | kernel-source |
./build.sh --kernel-dir /lib/modules/$(uname -r)/build |
Oracle Unbreakable Enterprise Kernel (UEK) | kernel-uek-devel-$(uname -r) |
./build.sh --kernel-dir /lib/modules/$(uname -r)/build |
RedHat | kernel-devel-$(uname -r) kernel-headers-$(uname -r) |
./build.sh --kernel-dir /lib/modules/$(uname -r)/build |
Ubuntu 9.10 and earlier | linux-source |
./build.sh --kernel-dir /lib/modules/$(uname -r) |
Ubuntu 10.04 and later | linux-headers-$(uname -r) build-essential (注を参照) |
./build.sh --kernel-dir /usr/src/linux-headers-$(uname -r) |
特殊なビルドコマンドでは、文字列 $(uname -r) は現在実行中のオペレーティングシステムカーネルバージョンを表します。ビルドコマンドで $(uname -r) を使用すると、ビルドするカーネルモジュールは現在動作しているカーネルに対応したものになります。別のカーネルバージョン用にビルドする場合は、$(uname -r) をビルドするカーネルバージョンに置き換える必要があります。また、ビルドしようとするバージョンのカーネルソースがインストールされていることを確認する必要があります。
上の表にあるパッケージは、リポジトリから利用可能な最新のカーネルソースをインストールします。もし、ご利用のディストリビューションで最新の利用可能なカーネルを実行していない場合は、実行中のカーネルと同じカーネルソースをダウンロードし、$(uname -r) を置き換えてください。
注意: Debian は、一般的な linux-headers パッケージを提供していません。代わりに、linux-headers をダウンロードする際に、正しいアーキテクチャの種類を指定してダウンロードする必要があります。利用できるパッケージは、(Debian 5.0.4 時点で)以下の通りです。
注: Ubuntu 10.10 で linux-source をインストールしても、linux-headers はインストールされないようです。これを解決するには、正しいバージョンの Linux ヘッダーパッケージ (例: linux-headers-generic, linux-headers-generic-pae, linux-headers-server, linux-headers-virtual) をインストールする必要があります。
注: 現在実行中のカーネルに適合する SLES 開発パッケージの $flavor と $version を取得するには、"uname -r" コマンドの出力を参照してください。
3.0.101-80-default # for example
これを用いて、パッケージリポジトリを検索します (ここでは強調のため太字と下線を追加):
zypper search -s kernel-default-devel | grep 3.0.101-80
の検索出力を参照してください。
v | kernel-default-devel | package | 3.0.101-80.1 | x86_64 | SLES11-SP4-Updates
パッケージをインストールします(この例の devel パッケージのバージョンには .1 が付くことに注意してください)。
sudo zypper install kernel-default-devel-3.0.101-80.1
注: RedHat Enterprise Linux 8 は elfutils-libelf-devel パッケージも必要です。
AutoProtect カーネルモジュールは、ターミナルプログラムを使用して root 権限でビルドする必要があります。
tar -xf ap-kernelmodule.tar.gz # For .tar.bz2 extension install bzip2 (sudo yum install bzip2)
cd ap-kernelmodule
./build.sh
cd bin.ira
mv * /opt/Symantec/autoprotect/
/etc/init.d/autoprotect restart
/etc/init.d/rtvscand restart
/opt/Symantec/symantec_antivirus/sav info -a