「LooxS5/53WにPuppyLinuxを入れて,オンアクセススキャンでウイルス対策ソフトを動かす」の最終段である。読んでもらうとわかりるが,所期の目標に達していない。
しかし,DazukoFS+ClamAvデーモンはひとまず動いた。その時あまりにも重くて,他の作業もままならないので,LooxS5/53Wはオフラインのサブ機として使うことにしようと決めた。
とはいっても,その過程で分かったこともいろいろあったので,忘れないためにもそのあたりをまとめておこうと思う。
以下の作業は「懸案のLoox-#9。」の13.に続いて行うことになる。
まだ,ウイルス対策が済んでいないので,必要なファイルのダウンロードは別PCを利用する。また,今回は開発環境ができているので,Debianのパッケージを利用せず, clamav-0.96.1.tar.gz をダウンロードして使う。
Clamavのインストール。
1度,1.~6.まで済んだのだが,
========================================
4 of 7 tests failed
(5 tests were not run)
See unit_tests/test-suite.log
Please report to http://bugs.clamav.net/
========================================
ということで,ClamAvのBugzillaを見たら1744が似ているようなので,パッケージマネージャでlibbz2-devをインストールし,ClamAvのほうは make uninstall して,clamd.conf とfreshclam.confも削除。改めて,やり直した。
- 後で,checkを使うので,http://www.sf.net/から,check-0.9.8.tar.gzをダウンロードして解凍し,中のINSTALLにしたがって,
# ./configure
# make
# make install
(※) プラットフォームに,もともとcheckパッケージがあれば,この部分は必要なし。 - /rootにダウンロードしたファイルを
# tar zxvf clamav-0.96.1.tar.gz
で解凍し,解凍されたフォルダの中にあるdocsを読んで,その手順に従う。 - # cd clamav-0.96.1 解凍されてできたClamAvのソースフォルダに移動。
- docsには
# groupadd clamav
# useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav
と書いてあるが,Puppyの場合は,
# addgroup clamav
# adduser -G clamav -s /bin/false clamav
で,グループとユーザを作成。 - ClamAvのコンフィグに入る。
$ ./configure –sysconfdir=/etc –enable-check 初めのオプションはconfファイルを/etcに作る。省けば,/usr/local/etcにできる。2つ目は,後で使うチェックのため。
$ make 相当時間食った。計るの忘れたけど,多分4,5時間。
でもって,$ su -c “make install”と書いてあるけど,Puppyはもともとroot権限で動いているから,
# make install でいいんだろう。 - 次が unit tests 。今コンパイルしたのが,システム上でちゃんと動くか,調べてくれるそうだ。
で,1度目の結果が,上記のとおりなのだが,2度目はちゃんと通って,結果は以下の通り。
PASS: check_clamav
PASS: check_freshclam.sh
PASS: check_sigtool.sh
SKIP: check_unit_vg.sh
PASS: check1_clamscan.sh
PASS: check2_clamd.sh
PASS: check3_clamd.sh
PASS: check4_clamd.sh
SKIP: check5_clamd_vg.sh
SKIP: check6_clamd_vg.sh
SKIP: check7_clamd_hg.sh
SKIP: check8_clamd_hg.sh
======================
All 7 tests passed
(5 tests were not run)
======================
SKIPされている項目は valgrind がインストールされていないせいである。 - さて,このあとも大問題。各confの中を読みつつ,デフォルト設定を環境に合わせていくわけだ。心労の極み!(笑)
/etc にある clamd.conf の内容を編集。- Example の頭に # をつけてコメントアウト。
- 以下の部分はアンコメント。
LogFile /tmp/clamd.log
LogTime yes
LocalSocket /tmp/clamd.socket
FixStaleSocket yes
DetectPUA yes PUA — Possibly Unwanted Applicationsということなんだけど,コメントのままにしとくべきかな。
ClamukoScanOnAccess yes
- /etc にある freshclam.conf の内容を編集。
- Example の頭に # をつけてコメントアウト。
- 以下の部分はアンコメント。
UpdateLogFile /var/log/freshclam.log
LogTime yes
DatabaseMirror db.jp.clamav.net # DatabaseMirror db.XY.clamav.netをアンコメントして,XYをカントリーコードに書き換える。
NotifyClamd /etc/clamd.conf # NotifyClamd /path/to/clamd.confをアンコメントして,パスを書き換える。
- # touch /var/log/freshclam.log ログ用に空のファイルを作る。
# chown clamav:clamav /var/log/freshclam.log ログファイルのownerをrootからclamavに変更する。 - # modprobe dazukofs DazukoFsのモジュールをロード。
# mount -t dazukofs / / 全ディレクトリをDazukoFsでマウント。
# env LD_LIBRARY_PATH=/usr/local/lib /usr/local/sbin/clamd -c /etc/clamd.conf ClamAvを起動。
別の端末から
# env LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/freshclam でウイルス定義ファイルの更新。
更新は無事完了。しかし,しばらくするとclamdが落ちた。
/tmp/clamd.log によると segmentation fault が出て止まっている模様。
- (※) Valgrindもインストールしてみたが,VaigrindはCrusoeをサポートしていないということであった。
valgrind_3.6.0~svn20100212-0ubuntu5_i386.deb (依存関係でlibc6-dbg_2.11.1-0ubuntu7.1_i386.debも) をインストールしてみたときのcheckの結果は,以下の通り。
PASS: check_clamav
PASS: check_freshclam.sh
PASS: check_sigtool.sh
PASS: check_unit_vg.sh
PASS: check1_clamscan.sh
PASS: check2_clamd.sh
PASS: check3_clamd.sh
PASS: check4_clamd.sh
FAIL: check5_clamd_vg.sh
FAIL: check6_clamd_vg.sh
SKIP: check7_clamd_hg.sh
FAIL: check8_clamd_hg.sh
========================================
3 of 11 tests failed
(1 test was not run)
See unit_tests/test-suite.log
Please report to http://bugs.clamav.net/
========================================
test-suite.logによれば,unsupported CPU ということで,Crusoeというのが,ここでも響いている。サウンドは使えなくなる,電源は落ちなくなると,副作用もいろいろあった。