2017.03.20

Debian ClamAV Antivirus Checker [green-pen miyagi]

アンチウィルスソフトClamAVでウィルス対策

なにかと気になるウィルス対策。
Linux Systemではウィルスソフトが必要かどうか、
Web情報を拾ってみると様々な意見があるようです。
一般的には"窓"よりセキュリティは強いと言われているようですが、
どちせよVirusCheckerの乗せ方を知っていてるのに越したことはないと思う。
そんな訳で、オープンソースのClamAVを試してみた。

■ インストールパッケージ
$ aptitude show clamav
$ sudo apt-get install clamav

■ Service起動確認
$ sudo systemctl status clamav-freshclam.service clamav-daemon.service
*clamav-freshclam.service - ClamAV virus database updater
 Loaded: loades (/lib/systemd/system/clamav-freshclam.service; enabled)
 Active: active (running)
 Docs: man:freshclam(1)
       man:freshclam.conf(5)
       http://www.clamav.net/lang/en/doc/
 Main PID: 1366(freshclam)
*clamav-daemon.service
 Loaded: not-found (Reason: No such file or directory)
 Active: inactive (dead)

■ Virus DataBaseのダウンロード設定ファイルを編集
$ sudo chmod 644 /etc/clamav/freshclam.conf
---書込み権を与える
$ sudo vi /etc/clamav/freshclam.conf
## 接続先ドメインを変更
#DatabaseMirror db.local.clamav.net
DatabaseMirror db.jp.clamav.net
DatabaseMirror db.us.clamav.net
## 更新回数を3時間毎(任意)に変更
#check for new databace 24time a day
#checks 24
checks 8
$ sudo chmod 440 /etc/clamav/freshclam.conf
---パーミッションを戻す
$ ls -l /var/lib/clamav/
---Virusパターンの保存先DBファイル

■ VirusDBの更新ログファイルを変更
$ sudo mv /var/log/clamav/freshclam.log /var/log/clamav/save_freshclam.log
$ sudo touch /var/log/clamav/freshclam.log
$ sudo chown clamav:clamav /var/log/clamav/freshclam.log
$ sudo chmod 640 /var/log/clamav/freshclam.log
---log fileの作り替え(単純に所有者/パーミッションの変更では動作しないようだ)

■ freshclam再起動
$ sudo systemctl restart clamav-freshclam.service

■ VirusScan LogFileの作成
$ sudo touch /var/log/clamav/clamscan.log
---virus scan実行ログファイル作成
$ sudo chown clamav:clamav /var/log/clamav/clamscan.log
---log fileの所有権をclamavへ付与
$ sudo chmod 640 /var/log/clamav/clamscan.log
---log fileのパーミッション変更

■ Virus Scan実行シェル設定
コマンド: clamscan   *1.clamd+clamdscamとの違い
$ sudo vi /usr/local/bin/scanvirus.sh
## clamav virus scan shell
#!/bin/sh
clamscan -l /var/log/clamav/clamscan.log -i -r --remove --bell ~/ > /dev/null 2>&1
## -l :ログファイルを指定して記録
## -i :感染ファイルのログだけ出力
## -r :指定DIR配下を再帰的にスキャン
## --remove 感染ファイルを削除する
## --bell Virus検知でベルを鳴らす
## ~/ : 指定DIR or FILE
$ sudo chown root:root /usr/local/bin/scanvirus.sh
$ sudo chmod 700 /usr/local/bin/scanvirus.sh
---shell fileの所有権/パーミッション変更

■ Virus Scanスケジュール設定
$ sudo crontab -u root -e
## 毎日21時にclamav scanvirus.shを実行
00 21 * * * /usr/local/bin/scanvirus.sh

■ VirusScanテスト
$ sudo clamscan -i -r --remove --bell ~/
----- SCAN SUMMARY -----
Known viruses: 6171167
Engine vervion: 0.99.2
Scanned directories: 10
Scanned files:40
Infected files:0 <----Virus検知なし
Data scanned: 1.77MB
Time:24.024 sec(0 m 24 s)

テスト用の模擬ウィルスをダウンロードしてから試してみる
$ sudo wget http://www.eicar.org/download/eicar.com
$ sudo wget http://www.eicar.org/download/eicar.com.txt
$ sudo clamscan -i -r --remove --bell ~/
----- SCAN SUMMARY -----
Known viruses: 6171167
Engine vervion: 0.99.2
Scanned directories: 10
Scanned files:46
Infected files:2 <----2つのVirus検知
Data scanned: 2.13MB
Time:30.024 sec(0 m 24 s)



*1. clamscanと、clamd+clamdscamとの違い
clamscamはコマンドとして動作し単純操作だが、遅い感。
その都度VirusDBを読み込む。
clamd+clamdscanは管理デーモン経由で連動して動く。煩雑だが軽い
頻繁にscanするようなサーバー向き。
clamd+clamdscanサーバーを動かすは、次回。

Copyright(C) green-pen miyagi