Symantec Endpoint Protection(SEP)14.xではAmazon LinuxがサポートされているがインストールパッケージにAmazon Linux用のAuto-Protect用のカーネルモジュールは用意されていない。カーネルモジュールのコンパイル環境がインストールの必須条件となる。このときSEPがAmazon Linuxの最新版(のカーネル)で動作するなら問題ないが、そうでないケースではコンパイル環境構築にちょっとしたコツが必要となる。例えば
・SEPの最新版が14.2
・Amazon Linuxの最新版が2018.03
のケースではSEP14.2がAmazon Linux 2018.03のカーネル4.14系に対応していない。対応しているカーネル4.9系の2017.09などをチョイスすることになるが、最新版でないAmazon Linux環境ではSEPに必要なパッケージを追加インストールする際にモノによってリポジトリの向き先を
・latest(最新)
・2017.09(チョイスしたAmazon Linuxのバージョン)
と、変える必要がある。パターン化できるので慣れてしまえば簡単だけど忘れるのでメモっとく。
・SEPのインストールに必要なパッケージ
glibc.i686 (SEPは32bitアプリケーションなので必要)
・SEPのカーネルモジュールコンパイルに必要なパッケージ
gcc
kernel-devel
kernel-headers
この中で
glibc.i686
gcc
は最新(latest)のリポジトリ
kernel-devel
kernel-headers
は動作中バージョン(2017.09)のリポジトリを参照してののインストールが必要となる。具体的には以下の通り。
現在のAmazon Linuxのバージョンを確認
# cat /etc/system-release Amazon Linux AMI release 2017.09
現在のカーネルのバージョンを確認
# uname -r 4.9.70-25.242.amzn1.x86_64
*4.14.xxと表示された場合はSEP14.2ではカーネルのモジュールのコンパイルができないので諦める。将来のSEPでサポートされるまで待ち
現在のリポジトリの向き先を確認
# cat /etc/yum.conf releasever=latest
デフォルト設定では「latest」(最新版)を向いてる。この状態で
# yum update
をやると最新版のカーネルに更新されて詰むので要注意。
まず「latest」の状態でgccと32bit版のglibcをインストール
# yum install glibc.i686 # yum install gcc
次にリポジトリの向き先を現在のバージョンの2017.09に変更
# vi /etc/yum.conf releaserver=2017.09
リポジトリ設定変更後はyumのキャッシュをクリアする
# yum clean all
現在動作中のカーネルのバージョンを確認
# uname -r 4.9.70-25.242.amzn1.x86_64 # rpm -qa | grep kernel- kernel-4.9.70-25.242.amzn1.x86_64
現行カーネルと同じバージョンのkernel-devel, kernel-headersをインストール
# yum install kernel-devel-4.9.70-25.242.amzn1.x86_64 kernel-headers-4.9.70-25.242.amzn1.x86_64
*リポジトリの向き先が「latest」だとFile not Foundになる。
念の為、カーネルと同じバージョンのdevel,headersがインストールされたことを確認
# rpm -qa | grep kernel- kernel-devel-4.9.70-25.242.amzn1.x86_64 kernel-4.9.70-25.242.amzn1.x86_64 kernel-headers-4.9.70-25.242.amzn1.x86_64
一致していれば問題無し。後はSEPのインストールパッケージを解凍して
# ./install.sh -i
でインストール、カーネルモジュールのコンパイル、ロードが行われる。
*運用時のリポジトリの向き先はお好みで、とういか必要に応じて変更する。