●RPMパッケージのインストール
Symantecのサイト等から入手したSEP for Linuxをインストールします。
用意されているパッケージは下記のとおりです。
・sav-1.0.14-13.i386.rpm
・savap-1.0.14-13.i386.rpm
・savap-x64-1.0.14-13.x86_64.rpm
・savjlu-1.0.14-13.i386.rpm
・savui-1.0.14-13.i386.rpm
i386/i686 32bit版にインストールする場合
# rpm -ivh sav-*.i386.rpm savap-*.i386.rpm savjlu-*.i386.rpm savui-*.i386.rpm
x86-64版にインストールする場合
# rpm -ivh sav-*.i386.rpm savap-x64-*.x86_64.rpm savjlu-*.i386.rpm savui-*.i386.rpm
を実行します。
rtvscandを起動します。
●Auto-Protectの有効化
/etc/init.d/autoprotectの104行目あたりでRed Hat Enterprise Linuxのバージョン判定を行っている行があるので
再起動しないとAuto-Protectの状態をSEP側で把握できません。
再起動したら、下記コマンドを実行して
Auto-Protectが問題なく機能しているかどうかを確認するため、テストウィルスファイル(eicar.com)をダウンロードします。
削除したログは/var/log/messagesに下記のように出力されます。
●Auto-Protectの有効化・無効化の確認
Auto-Protectの状態を有効化する。
●手動スキャンの実施
/rootにeicor.comファイルがある時に手動スキャンを実施する。
●手動liveupdateの実施
手動liveupdateは、以下のコマンドを使用します。
うまくliveupdateできると下記のように表示されます。
●liveupdateのスケジュール設定
毎日、朝5時にLiveUpdateを実行するようにスケジュールを設定します。
「-m 0」とすると下記のようになります。この場合、liveupdateは実行されません。
●liveupdateの無効化・有効化
参考URL:Symantec Endpoint Protection for Linux 12.1 クライアントで定時 LiveUpdate を無効にする方法
/opt/Symantec/symantec_antivirus/sav liveupdate コマンドでは、実行・表示・編集のオプションがありますが、無効のオプションがありません。
●liveupdateの実行確認
下記フォルダ内にログが出力されますので、内容を確認することで状況が分かります。
●liveupdate時のエラー
liveupdate実行時に以下のように表示される場合があります。
「下記のコマンドを実行し、JRE のインストールパスをご確認ください。」とのことです。
上記シェルコマンドの実行で表示される内容
http://service1.symantec.com/SUPPORT/ent-security.nsf/1525b348c24f67f68825734100634945/be45cab7818414c6c125742e0042553a?OpenDocument
Situation: You run Liveupdate in SAV for Linux using the following command-line and immediately get the above error.
/opt/Symantec/symantec_antivirus/sav liveupdate --update
Solution: Delete the lulock.dat and *.tmp folders from the virusdefs folder located in:
/opt/Symantec/virusdefs
それでも、うまく実行されない場合は、/etc/Symantec.confを下記に置き換えてください。
また、liveupdate時に以下のようなエラーが表示される場合もあります。
また、liveupdt.logをよく確認したところ、下記のようなエラーが出力されていました。
Running Symantec AntiVirus For Linux (SAVFL) LiveUpdate in Symantec FileStore (SFS) 5.6 environment may delete files in /tmp directory
そこで、/tmpディレクトリを確認したとこSAVFLのRPMファイルがありました。これを削除後、liveupdateしたところ正常に動作しました。
この場合は、該当するプロセスを強制終了させてください。
その後、liveupdateを実行するとウィルス定義ファイルが更新される場合があります。
liveupdateできない要因はいろいろあるようで、対処に苦労しました。
●ウィルススキャン定期自動実行設定
毎日定期的に全ファイルのウィルススキャンを実施し、ウィルス検知時にのみroot宛にメールが送られてくるようなスクリプトを作成します。
●tmpフォルダに古いフォルダが蓄積される
参考URL:SEP for Linux の LiveUpdate の tmp フォルダに古いフォルダが蓄積される
/opt/Symantec/LiveUpdate/tmp内の番号のついたフォルダの古いフォルダから削除すればいいとのこと。
自動的に削除してくれればいいのに・・。
Symantecのサイト等から入手したSEP for Linuxをインストールします。
用意されているパッケージは下記のとおりです。
・sav-1.0.14-13.i386.rpm
・savap-1.0.14-13.i386.rpm
・savap-x64-1.0.14-13.x86_64.rpm
・savjlu-1.0.14-13.i386.rpm
・savui-1.0.14-13.i386.rpm
i386/i686 32bit版にインストールする場合
# rpm -ivh sav-*.i386.rpm savap-*.i386.rpm savjlu-*.i386.rpm savui-*.i386.rpm
x86-64版にインストールする場合
# rpm -ivh sav-*.i386.rpm savap-x64-*.x86_64.rpm savjlu-*.i386.rpm savui-*.i386.rpm
を実行します。
rtvscandを起動します。
# /etc/init.d/rtvscand startこれで、Auto-Protect以外の機能は使用可能になります。
●Auto-Protectの有効化
/etc/init.d/autoprotectの104行目あたりでRed Hat Enterprise Linuxのバージョン判定を行っている行があるので
*CentOS\ release\ 5*) osprod=ES osver=5 ;; *CentOS\ release\ 6*) osprod=ES osver=6 ;;を追記してください。追記完了後
# /etc/init.d/autoprotect start # /etc/init.d/autoprotect statusでステータスがOKになることを確認したら再起動してください。
再起動しないとAuto-Protectの状態をSEP側で把握できません。
再起動したら、下記コマンドを実行して
# /opt/Symantec/symantec_antivirus/sav info -aとしてAuto-Protectが有効化されていることを確認してください。
Auto-Protectが問題なく機能しているかどうかを確認するため、テストウィルスファイル(eicar.com)をダウンロードします。
wget http://www.trendmicro.com/ftp/products/eicar-file/eicar.com正常にAuto-Protectが機能していれば、ファイルがダウンロードされた瞬間に削除されることで確認できます。
--2013-11-14 21:04:30-- http://www.trendmicro.com/ftp/products/eicar-file/eicar.com www.trendmicro.com をDNSに問いあわせています... 23.11.201.214 www.trendmicro.com|23.11.201.214|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 68 [application/octet-stream] `eicar.com' に保存中 100%[==========================================================>] 68 --.-K/s 時間 0s utime(eicar.com): そのようなファイルやディレクトリはありません ↑ 削除時に表示される 2013-11-14 21:04:31 (4.74 MB/s) - `eicar.com' へ保存完了 [68/68]
削除したログは/var/log/messagesに下記のように出力されます。
Nov 14 21:04:31 jcmn00 rtvscand: Threat Found!Threat: EICAR Test String in File: /root/eicar.com by: Auto-Protect scan. Action: Quarantine succeeded : Access allowed. Action Description: The file was quarantined successfully.
●Auto-Protectの有効化・無効化の確認
Auto-Protectの状態を有効化する。
# /opt/Symantec/symantec_antivirus/sav autoprotect -a # /opt/Symantec/symantec_antivirus/sav info -a enabledAuto-Protectを無効化する。
# /opt/Symantec/symantec_antivirus/sav autoprotect -d # /opt/Symantec/symantec_antivirus/sav info -a disabled
●手動スキャンの実施
/rootにeicor.comファイルがある時に手動スキャンを実施する。
# /opt/Symantec/symantec_antivirus/sav manualscan -s /root/ログ(/var/log/messages)の確認。
Nov 14 21:58:07 jcmn00 rtvscand: Scan started on selected drives and folders and all extensions. Nov 14 21:58:07 jcmn00 symcfgd: subscriber 38 has left -- closed 0 remaining handles Nov 14 21:58:17 jcmn00 rtvscand: Threat Found!Threat: EICAR Test String in File: /root/eicar.com by: Manual scan. Action: Quarantine succeeded. Action Description: The file was quarantined successfully. Nov 14 21:58:17 jcmn00 rtvscand: Scan Complete: Threats: 1 Scanned: 2344 Files/Folders/Drives Omitted: 0削除されていることが分かります。
●手動liveupdateの実施
手動liveupdateは、以下のコマンドを使用します。
# /opt/Symantec/symantec_antivirus/sav liveupdate --updateプロキシ経由の場合は/etc/liveupdate.confに以下の一行を追加します。
proxy=<Proxyサーバアドレス>:<ポート番号>/etc/liveupdate.confの設定例
# vi /etc/liveupdate.conf
hosts/0/url=http://liveupdate.symantecliveupdate.com:80
workdir=/tmp
#logfile=/opt/Symantec/LiveUpdate/liveupdt.log
logfile=/var/log/liveupdt.log
jar=/opt/Symantec/LiveUpdate/jlu.jar
urls=1
proxy=192.168.0.100:8080 ← プロキシを利用しない場合は不要
/etc/liveupdate.confがきちんと設定されていない場合、以下のようなエラーが出力されます。
Exception in thread "main" java.lang.NullPointerException at jlueh.b(DashoA5380) at jlucc.a(DashoA5380) at jlucc.a(DashoA5380) at jluf6.c(DashoA5380) at jluf6.b(DashoA5380) at com.symantec.liveupdate.LiveUpdate.computeAvailableUpdates(DashoA5380) at com.symantec.liveupdate.LiveUpdate.run(DashoA5380) at com.symantec.liveupdate.LiveUpdate.main(DashoA5380) at LiveUpdate.main(DashoA5380)実行するとバイナリファイルになってしまうので、バックアップを取っておきます。
# cp -p /etc/liveupdate.conf /etc/liveupdate.conf_bk手動liveupdateを実行すると、次の手動liveupdate実行時に必ず上記のエラーが発生します。このため、その場合は実行前にバックアップしてあるliveupdate.confで上書きするようにしてください。
うまくliveupdateできると下記のように表示されます。
# /opt/Symantec/symantec_antivirus/sav liveupdate -u 3.000000% 6.000000% 9.000000% : : : 93.000000% 96.000000% 99.000000%この時のログは以下のように表示されます。
Nov 14 22:44:50 jcmn00 rtvscand: New virus definition file loaded. Version: 151113a.定義ファイルが更新されたことを確認します。
# /opt/Symantec/symantec_antivirus/sav info --defs 2013年11月13日 rev. 1
●liveupdateのスケジュール設定
毎日、朝5時にLiveUpdateを実行するようにスケジュールを設定します。
# /opt/Symantec/symantec_antivirus/sav liveupdate --schedule -f daily -i 05:00 -m 1 # /opt/Symantec/symantec_antivirus/sav liveupdate -v Frequency: Daily - 05:00 Missed Events: Enabled State: EnabledLiveUpdateのスケジュール設定を無効にするには、以下のコマンドを実行します(実際には1行です)。
# /opt/Symantec/symantec_antivirus/symcfg add --key "Symantec Endpoint Protection"\\AV \\PatternManager\\Schedule --value Enabled --data 0 --type REG_DWORD「0」を「1」にすると有効になります。
「-m 0」とすると下記のようになります。この場合、liveupdateは実行されません。
# /opt/Symantec/symantec_antivirus/sav liveupdate --schedule -f daily -i 05:00 -m 0 # /opt/Symantec/symantec_antivirus/sav liveupdate -v Frequency: Daily - 05:00 Missed Events: Disabled State: Enabled
●liveupdateの無効化・有効化
参考URL:Symantec Endpoint Protection for Linux 12.1 クライアントで定時 LiveUpdate を無効にする方法
/opt/Symantec/symantec_antivirus/sav liveupdate コマンドでは、実行・表示・編集のオプションがありますが、無効のオプションがありません。
・LiveUpdate スケジュールの無効化
sudo /opt/Symantec/symantec_antivirus//symcfg add -k'\Symantec Endpoint Protection\Liveupdate\schedule' -v Enabled -d 0 -t REG_DWORD
・LiveUpdate スケジュールの有効化
sudo /opt/Symantec/symantec_antivirus//symcfg add -k'\Symantec Endpoint Protection\Liveupdate\schedule' -v Enabled -d 1 -t REG_DWORD
sudo /opt/Symantec/symantec_antivirus//symcfg add -k'\Symantec Endpoint Protection\Liveupdate\schedule' -v Enabled -d 0 -t REG_DWORD
・LiveUpdate スケジュールの有効化
sudo /opt/Symantec/symantec_antivirus//symcfg add -k'\Symantec Endpoint Protection\Liveupdate\schedule' -v Enabled -d 1 -t REG_DWORD
●liveupdateの実行確認
下記フォルダ内にログが出力されますので、内容を確認することで状況が分かります。
/var/symantec/liveupdate/ または /var/symantec/Logs
●liveupdate時のエラー
liveupdate実行時に以下のように表示される場合があります。
Searching /usr/java for java... Found /usr/java/jre1.6.0_31/bin/java Updated /etc/Symantec.conf with java path.これは、シマンテック公式ページのSAVFL の LiveUpdate コマンドを実行するとエラーが発生するに記載されているとおり、Java Runtime Environment (JRE) のインストールパスが正常に通っていないことでエラーが発生するようです。
「下記のコマンドを実行し、JRE のインストールパスをご確認ください。」とのことです。
/opt/Symantec/symantec_antivirus/update_java_home.sh「JRE をインストールされているにも関わらず上記のコマンドを実行しても JRE のインストールパスを見つけられない場合、インストールした JRE のインストールパスをご確認の上、/etc/Symantec.conf ファイルに JRE のインストールパスを直接指定することで、正常にLiveUpdate が行えるかをご確認ください。」とも記載されています。
上記シェルコマンドの実行で表示される内容
Searching /usr/java for java... Found /usr/java/jdk1.6.0_23/bin/java Updated /etc/Symantec.conf with java path.これで、/etc/Symantec.confを書き換えてしまうとliveupdate実行時に下記のようなエラーが表示される場合があります。
Command failed: Failure in pre processing of micro definitions before update. Unable to perform updateこれは、/etc/Symantec.confの記載方法が間違っているかロックファイル等が残ってしまっている場合もあるようです。その場合は、まず、下記URLに記載されている内容を確認してください。
http://service1.symantec.com/SUPPORT/ent-security.nsf/1525b348c24f67f68825734100634945/be45cab7818414c6c125742e0042553a?OpenDocument
Situation: You run Liveupdate in SAV for Linux using the following command-line and immediately get the above error.
/opt/Symantec/symantec_antivirus/sav liveupdate --update
Solution: Delete the lulock.dat and *.tmp folders from the virusdefs folder located in:
/opt/Symantec/virusdefs
それでも、うまく実行されない場合は、/etc/Symantec.confを下記に置き換えてください。
[Symantec Shared] BaseDir=/opt/Symantec JAVA_HOME=/usr/lib/jvm/java-gcj/bin上記で、/opt/Symantec/symantec_antivirus/update_java_home.sh実行時にJAVAのパスが/usr/java/jdk1.6.0_23/bin/javaというようにjdk1.*.*_**が設定されました。liveupdateが成功している時のパスは下記のように様々設定されていることがわかりました。
JAVA_HOME=/usr/lib/jvm/java-gcj/bin JAVA_HOME=/usr/java/jdk1.5.0_22/bin JAVA_HOME=/usr/java/jre1.6.0_27/bin環境変数JAVA_HOMEの設定内容は、それぞれの環境において自前で設定している場合が多々あるようです。正常にliveupdateが動作しない場合は、JAVA_HOMEを直接書き換えても良いかもしれません。
また、liveupdate時に以下のようなエラーが表示される場合もあります。
Exception in thread "main" java.lang.NullPointerException at com.symantec.liveupdate.event.EventTransporterFactory.a(DashoA5380) at com.symantec.liveupdate.event.EventTransporterFactory.この対処方法については、SAVFL で liveupdate を実行すると [Exception in thread "main" java.lang.NullPointerException ] のエラーが発生するを参照してください。(DashoA5380) at com.symantec.liveupdate.event.EventTransporterFactory.getInstance(DashoA5380) at jlufj.a(DashoA5380) at com.symantec.liveupdate.LiveUpdate.endSession(DashoA5380) at com.symantec.liveupdate.LiveUpdate.run(DashoA5380) at com.symantec.liveupdate.LiveUpdate.main(DashoA5380) at LiveUpdate.main(DashoA5380) Command failed: Problem with LiveUpdate. Check that java directory is in PATH Unable to perform update
また、liveupdt.logをよく確認したところ、下記のようなエラーが出力されていました。
<>IdsDiskSpaceFail><1398178899jtun_sav10ennful25.lin><1813.217209815979>
<IdsJavaSessionFailure>
<IdsJavaSessionReturnCode><246>
このエラーについて、対処方法の参考になるページがありました。
Running Symantec AntiVirus For Linux (SAVFL) LiveUpdate in Symantec FileStore (SFS) 5.6 environment may delete files in /tmp directory
そこで、/tmpディレクトリを確認したとこSAVFLのRPMファイルがありました。これを削除後、liveupdateしたところ正常に動作しました。
# rm /tmp/sav* rm: remove 通常ファイル `/tmp/sav-1.0.14-13.i386.rpm'? y rm: remove 通常ファイル `/tmp/savap-1.0.14-13.i386.rpm'? y rm: remove 通常ファイル `/tmp/savap-x64-1.0.14-13.x86_64.rpm'? y rm: remove 通常ファイル `/tmp/savjlu-1.0.14-13.i386.rpm'? y rm: remove 通常ファイル `/tmp/savui-1.0.14-13.i386.rpm'? yまた、何かしらの原因によりliveupdateのプロセスが残っている場合もあります。
この場合は、該当するプロセスを強制終了させてください。
その後、liveupdateを実行するとウィルス定義ファイルが更新される場合があります。
liveupdateできない要因はいろいろあるようで、対処に苦労しました。
●ウィルススキャン定期自動実行設定
毎日定期的に全ファイルのウィルススキャンを実施し、ウィルス検知時にのみroot宛にメールが送られてくるようなスクリプトを作成します。
# vi virusscan ↑ ウィルススキャン実行スクリプト作成 #!/bin/bash PATH=/usr/bin:/bin # clamd update yum -y update clamd > /dev/null 2>&1 # excludeopt setup excludelist=/root/clamscan.exclude if [ -s $excludelist ]; then for i in `cat $excludelist` do if [ $(echo "$i"|grep \/$) ]; then i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d` excludeopt="${excludeopt} --exclude-dir=^$i" else excludeopt="${excludeopt} --exclude=^$i" fi done fi # virus scan CLAMSCANTMP=`mktemp` clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1 [ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \ # report mail send grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root rm -f $CLAMSCANTMP # chmod +x virusscan ↑ ウィルススキャン実行スクリプトへ実行権限付加 # echo "/backup/backup.tar.bz2" >> clamscan.exclude ↑ 例として/backup/backup.tar.bz2をスキャン対象外にする # echo "/proc/" >> clamscan.exclude ↑ 例として/procディレクトリをスキャン対象外にする # echo "/sys/" >> clamscan.exclude ↑ 例として/sysディレクトリをスキャン対象外にする ※ディレクトリを除外する場合は末尾に「/」を付加すること # mv virusscan /etc/cron.daily/ ↑ ウィルススキャン実行スクリプトを毎日自動実行されるディレクトリへ移動
●tmpフォルダに古いフォルダが蓄積される
参考URL:SEP for Linux の LiveUpdate の tmp フォルダに古いフォルダが蓄積される
/opt/Symantec/LiveUpdate/tmp内の番号のついたフォルダの古いフォルダから削除すればいいとのこと。
自動的に削除してくれればいいのに・・。