LANDISK HACKING DIARY
Since2005/8/17
TOPへ戻る
     INDEX
   
1. Clam AntiVirus のインストール
2. clamav の設定
3. ハードディスクの定期的なスキャン



 
     Clam AntiVirus のインストール
 
LANDISK内にもアンチウィルスソフトがないと不安なので導入してみることにした。使用するソフトウェアは、無料のClamav です。パッケージ版はないのでソースからダウンロードしてdeb パッケージを作成する。2005年9月16日(昨日だ!)に0.82から0.87 に更新されたのでさっそくそれをインストールしてみることにする(ダウンロードはこちら

landisk:~# wget http://jaist.dl.sourceforge.net/sourceforge/clamav/clamav-0.87.tar.gz
landisk:~# tar xzvf clamav-0.87.tar.gz
landisk:~# cd clamav-0.87
landisk:~# dh_make -e kororo@kororo.jp

自分の環境に合わせて、rules を編集してください。筆者は、prefix を /usr/local/clamav に設定しました。

landisk:~# vi debian/rules

CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr/local/clamav --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info

ビルドする前に clamav という UID/GIDを作成しておく。そうでないと途中でmake エラーが発生する。

landisk:~# adduser --disabled-login --disabled-password clamav
landisk:~# cd ../
landisk:~# dpkg-buildpackage -rfakeroot

できあがった deb パッケージをインストール。

landisk:~# dpkg -i clamav_0.87-1_sh4.deb



 
     clamav の設定
 
■clamd.conf の編集

設定ファイル編集する。

landisk:~# vi /usr/local/clamav/etc/clamd.conf

# Example ←コメントアウトする。コメントアウトしないとデーモンとして起動しない。
PidFile /var/run/clamav/clamd.pid
LogTime
LogFile /var/log/clamav/clamd.log
DatabaseDirectory /usr/local/clamav/share/clamav
LocalSocket /var/run/clamav/clamd.sock
FixStaleSocket
User clamav
ScanOLE2

ディレクトリを作成し、パーミッションを適切に設定しておく。

landisk:~# mkdir /var/run/clamav
landisk:~# mkdir /var/log/clamav
landisk:~# chown clamav.clamav /var/run/clamav/
landisk:~# chown clamav.clamav /var/log/clamav/
landisk:~# chown -R clamav.clamav /usr/local/clamav/

~/.bashrc を編集して clamav までのPATHを追加。

landisk:~# vi ~/.bashrc
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/local/clamav/bin
landisk:~# . ~/.bahsrc


■freshclam.conf の編集

landisk:~# vi /usr/local/clamav/etc/clamd.conf

# Example ←コメントアウトする。
PidFile /var/run/clamav/freshclam.pid
DatabaseDirectory /usr/local/clamav/share/clamav
UpdateLogFile /var/log/clamav/freshclam.log
DatabaseOwner clamav
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror db.jp.clamav.net
DatabaseMirror database.clamav.net

■freshclam の自動実行

2時間ごとにアップデートするようにする。

landisk:~# vi /etc/crontab
0 */2 * * * /usr/local/clamav/bin/freshclam --daemon-notify --quiet -l /var/log/clamav/freshclam.log

■データベースの更新

landisk:~#/usr/local/clamav/bin/freshclam

■clamd デーモンの起動

landisk:~# /usr/local/clamav/sbin/clamd
landisk:~# ps aux | grep clamd
clamav 14628 0.0 14.1 10524 8884 ? Ss 13:05 0:00 /usr/local/clamav/sbin/clamd

landisk:~# tail /var/log/clamav/clamd.log
Sat Sep 17 13:05:42 2005 -> +++ Started at Sat Sep 17 13:05:42 2005
Sat Sep 17 13:05:42 2005 -> clamd daemon 0.87 (OS: linux-gnu, ARCH: sh4, CPU: sh4)
Sat Sep 17 13:05:42 2005 -> Log file size limited to 1048576 bytes.
Sat Sep 17 13:05:42 2005 -> Running as user clamav (UID 1004, GID 1004)
Sat Sep 17 13:05:42 2005 -> Reading databases from /usr/local/clamav/share/clamav
Sat Sep 17 13:05:49 2005 -> Protecting against 40197 viruses.
Sat Sep 17 13:05:50 2005 -> ERROR: Cannot open /dev/null. Only use Debug if Foreground is enabled.
Sat Sep 17 13:05:50 2005 -> Unix socket file /var/run/clamav/clamd.sock
Sat Sep 17 13:05:50 2005 -> Setting connection queue length to 15
Sat Sep 17 13:05:50 2005 -> Archive: Archived file size limit set to 10485760 bytes.
Sat Sep 17 13:05:50 2005 -> Archive: Recursion level limit set to 8.
Sat Sep 17 13:05:50 2005 -> Archive: Files limit set to 1000.
Sat Sep 17 13:05:50 2005 -> Archive: Compression ratio limit set to 250.
Sat Sep 17 13:05:50 2005 -> Archive support enabled.
Sat Sep 17 13:05:50 2005 -> Archive: RAR support disabled.
Sat Sep 17 13:05:50 2005 -> Portable Executable support enabled.
Sat Sep 17 13:05:50 2005 -> Mail files support enabled.
Sat Sep 17 13:05:50 2005 -> OLE2 support enabled.
Sat Sep 17 13:05:50 2005 -> HTML support enabled.
Sat Sep 17 13:05:50 2005 -> Self checking every 1800 seconds.


■clamav の自動起動の設定

clamav が自動起動するようにする。

#!/bin/bash
# chkconfig: 35 78 20
# description: Clamd DAEMON
# . /etc/rc.d/init.d/functions
prog="/usr/local/clamav/sbin/clamd"
prog_base="$(basename ${prog})"
prog_config_file="/usr/local/clamav/etc/clamd.conf"
RETVAL=0

# See how we were called.
case "$1" in
start)
echo $"Starting ${prog_base}"
${prog} -c ${prog_config_file}
RETVAL=$?
echo
;;
stop)
echo $"Shutting down ${prog_base}"
killall ${prog_base}
RETVAL=$?
echo
;;
status)
status $"${prog_base}"
RETVAL=$?
echo
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
reload)
pid=`pidofproc ${prog_base}`
kill -USR2 ${pid}
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
esac

exit $RETVAL

実行権の付与。

landisk:~# chmod +x /etc/init.d/clamav



 
     ハードディスクの定期的なスキャン
 
デーモンとして起動しなくてもウィルススキャンすることができる。clamscan というコマンドを用いる。-r オプションでサブディレクトリもスキャンする。

landisk:~# clamscan -r /home/kororo/
/home/kororo/.bashrc: OK
/home/kororo/.bash_profile: OK
/home/kororo/.bash_history: OK
/home/kororo/.viminfo: OK
/home/kororo/aaab.zip: OK
/home/kororo/audio_02.wav: OK
/home/kororo/audio_05.mp3: OK

----------- SCAN SUMMARY -----------
Known viruses: 40197
Engine version: 0.87
Scanned directories: 1
Scanned files: 7
Infected files: 0
Data scanned: 49.52 MB
Time: 276.807 sec (4 m 36 s)


LANDISK内を定期的にウィルススキャンするようにします。以下では、スキャンするディレクトリを共有ディレクトリに指定している。といっても、LANDISKのCPUパワーでは完全スキャンには相当の時間がかかってしまう(特に250GBもあると…)ので、スキャンするディレクトリを限定したほうが良いと思います。インターネットからダウンロードしたものは全て特定のディレクトリにダウンロードするようにして、そのディレクトリを定期的にスキャンするようにすれば効率的でしょう。

#/bin/sh

/usr/local/clamav/bin/clamscan -r -i --move=/var/tmp/infected --log=/var/log/clamav/clamav.log /share



     参考文献
 
⇒Clam Antivirusに関するメモ





TOPへ戻る
 
Copyright © KORO All Rights Reserved.