■Squeezeにclamavを導入。EICARチェック
そういえば、Lennyしか書いてなかったけれど、手順は一緒なので、コマンドだけ。
Debian Lennyにclamavを導入。EICARチェック
http://labunix.hateblo.jp/entry/2012/02/01/225957
■clamavの導入
$ sudo apt-get install clamav-daemon
■定義ファイルの更新
$ su root -c '/etc/init.d/clamav-freshclam stop && freshclam && /etc/init.d/clamav-freshclam start'
■ログチェック
$ sudo cut -c 29- /var/log/clamav/freshclam.log
■テストスキャン(初期状態/ウイルス無し)
$ su root -c 'clamscan --infected --remove --recursive /tmp'
----------- SCAN SUMMARY -----------
Known viruses: 1201415
Engine version: 0.97.3
Scanned directories: 3
Scanned files: 0
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 3.657 sec (0 m 3 s)
■前回同様、テストウイルス(EICAR)を配置
$ cd /tmp;sudo wget http://www.eicar.org/download/eicar_com.zip
$ du -k eicar_com.zip
4 eicar_com.zip
$ md5sum eicar_com.zip
6ce6f415d8475545be5ba114f208b0ff eicar_com.zip
■テストウイルス(EICAR)の削除確認
/tmp/eicar_com.zip: Eicar-Test-Signature FOUND
/tmp/eicar_com.zip: Removed.
----------- SCAN SUMMARY -----------
Known viruses: 1201415
Engine version: 0.97.3
Scanned directories: 3
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 3.620 sec (0 m 3 s)
■定義ファイルの更新はデフォルトの1日(24時間)単位
自動更新スクリプトの配置
$ sudo vim clamcheck.sh
CHECKDATE=`date '+%Y/%m/%d %H:%M'`
MAILFQDN=`hostname -f`
MAILUSER=root
CHECKDIR="/tmp /home /var"
CHECKLOG="/var/log/clamav/scan_summary.log.`date '+%Y%m%d'`"
CHECKMSG="clamav check ${CHECKDATE}"
if [ `id -u` -eq "0" ];then
echo "${CHECKMSG}" >> "${CHECKLOG}"
else
echo "You must be root to run $0"
exit 1
fi
for list in ${CHECKDIR};do
clamscan --infected --remove --recursive ${list} >> ${CHECKLOG}
cat "${CHECKLOG}" | mail -s "${CHECKMSG}" ${MAILUSER}@{MAILFQDN}
exit 0
done
unset CHECKDATE MAILFQDN MAILUSER CHECKDIR CHECKLOG CHECKMSG
■上記のスクリプトの実行チェック
$ sudo chmod +x clamcheck.sh
$ ./clamcheck.sh
You must be root to run ./clamcheck.sh
$ sudo ./clamcheck.sh
$ sudo tail -f /var/log/clamav/scan_summary.log.20120423
----------- SCAN SUMMARY -----------
Known viruses: 1201415
Engine version: 0.97.3
Scanned directories: 3
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 3.622 sec (0 m 3 s)
■一旦一時間単位でチェック、一日に一回にする(24時間単位の更新なので)
時間単位で動作することが分かると後で変更が容易になる。
定義ファイルとスキャンのタイミングは別でも良い。
$ sudo mv clamcheck.sh /etc/cron.hourly/
$ sudo mv /etc/cron.hourly/clamcheck.sh /etc/cron.daily/
■ところで、仮想マシンを数十台管理していると、
どれがどれだか分からなくなりますよね。。。
■Debianで自分の役割をメールで通知する
$ whereis pstree
pstree: /usr/bin/pstree.x11 /usr/bin/pstree /usr/share/man/man1/pstree.1.gz
■「mpt-status」やNFS関連のパッケージを削除していることや、
「X関連」のプロセスが一つも無いとか、
「getty」の数が多いので、シリアルコンソールを使っているなとか、
「squidGuard」や「postfix」、「ntpd」や「clamav」が動作していて、
「ssh」経由で作業している「bash」ユーザだな。
なんてことが分かってしまいます。
このメールをホストマシンに集めて、
ホストマシン側でmailコマンドのsオプションでファイルに保存して完了です。
一応。以下はドメインなしのシステムメールの場合です。。。
$ pstree | mail -s "pstree report `hostname -f`" root
$ mail
> s 1 pstree.txt
> q
$ grep "Subject\|^init\|^ " pstree.txt
Subject: pstree report vmsqueeze.localdomain
init-+-acpid
|-atd
|-clamd---{clamd}
|-cron
|-dbus-daemon
|-freshclam
|-7*[getty]
|-master-+-cleanup
| |-local
| |-pickup
| |-qmgr
| |-tlsmgr
| `-trivial-rewrite
|-ntpd
|-postgres---4*[postgres]
|-rsyslogd---3*[{rsyslogd}]
|-squid---squid-+-8*[squidGuard]
| `-unlinkd
|-sshd---sshd---sshd---bash-+-bash
| `-pstree
`-udevd---2*[udevd]