DazokoFS+ClamAVでon access scan,おまけでHAVP

以上のフォーラム以外の利用者の話題

モデレータ: 暇人, YoN, nyu

返信する
アバター
o6asan
記事: 7
登録日時: 10/05/22(土) 02:30
連絡する:

DazokoFS+ClamAVでon access scan,おまけでHAVP

投稿記事 by o6asan »

viewtopic.php?f=14&t=1862#p13405
に報告したLOOX上のLuPu5.1.0(kernel ver. 2.6.33.2)で,表題のことを実現しました。
dazukofs-3.1.3-rc2.tar.gz
clamav-0.96.1.tar.gz
おまけのHAVPはhavp-0.92.tar.gzです。

Puppyの使い方としては,邪道かもしれませんが,FULLインストール・クライアントユーズなので,Winマシンと同じようなウイルス対策を実現したいと思い取り組みました。
所期の目標の90%は達成できたと思います。自分のブログに経過は書いたのですが,それにリンクをはったほうがよいでしょうか。
そのほうがよければ,後で変更しますので,ご指示ください。ひとまずここに書いておきます。少し,長くなりますが,ご容赦ください。

* LuPu5.1.0をLooxにインストールする。
1. CD から/dev/sda1にLuPu5.1.0 をインストール。CDを抜いて再起動。
2. 再起動後,Welcome to Lucid Puppy で,「eth0,wlan0」の状態を確認。どちらもちゃんと機能している。
「言語と場所」の設定,下のほうで,ATI Radeon Mobility M16 LYのためにXorg_High.petが推奨されていたので,導入。
3. 「Menu」→「Network」からFirewallの設定。
FULLインストールの場合,.sfsが使えないので,Pet_Maker-1.7-3.petをインストールし,これを使って,lang_support_ja-1.4.sfsをpetとしてインストール。
SCIM入力メソッドの設定。
4. x上のキーボードの言語設定。x再起動。

* DazukoFSをLooxにインストールする。
1. 開発の環境準備。
o lupu_devx_510.sfsをpetとしてインストール。
o kernel_src-2.6.33.2-patched.sfsをpetとしてインストール。
# /usr/src/linuxに移動して,make oldconfigを実行。
# make menuconfigを実行。
# makeを実行。
ものすごく時間がかかりました。手動でもモジュールを作れるようですが,Puppyでの/boot/System.map の指定方法とかが分からなかったので諦めました。
o linux/fsにfs_stack.hを作る。中は,externvoid fsstack_copy_attr_all(struct inode *dest, const struct inode *src);の1行。By Linux/Dazuko/FAQ-MEMO1
2. dazukofs-3.1.3-rc2.tar.gz を usr/src 内に,tar zxvf dazukofs-3.1.3-rc2.tar.gzで展開。解凍フォルダにあるREADMEの説明に従う。
# cd dazukofs-3.1.3-rc2,移動後,makeを実行。
# make dazukofs_installを実行。
3. # dazukofsのモジュールをmodprobe dazukofsでロード。
4. DazukoFSをテストする。
o # mkdir /tmp/dazukofs_test     DazukoFSがテストのために使うディレクトリを作る。
o # mount -t dazukofs /tmp/dazukofs_test /tmp/dazukofs_test    作ったディレクトリをDazukoFSでマウントする。
o # cp /bin/* /tmp/dazukofs_test   テストのためのファイルを作ったディレクトリにコピーする。
o /usr/src/dazukofs-3.1.3-rc2/testに移動してテストプログラムを作るために,makeを実行。
o # env LD_LIBRARY_PATH=lib ./showfiles   テストプログラムを実行。
o そのままで,別の端末を開いて,
$ find /tmp/dazukofs_test -type f | xargs file
元の端末内に,アクセス中のファイル名が,表示されれば,テストは完了。CTRL-Cでテストプログラムを終了する。
o # umount /tmp/dazukofs_test    テストディレクトリをアンマウントする。
o # mount | grep dazukofs    DazukoFSがマウントしているディレクトリがあるかの確認。この時点では何もなくて正常。
5. boot 時の dazukofsモジュールの自動ロードとマウントのために,以下を行う。
デスクトップから「setup」→「Configure startup of Puppy」→「Click here to add a new module」→「Module add-list manager」と行って,dazukofsを追加。
6. READMEの/etc/fstab 追記する方法はモジュールのロードのタイミングの関係で使えなかったので,
/etc/rc.d/rc.local に以下を追記。
mount -t dazukofs /root /root
mount -t dazukofs /usr /usr
mount -t dazukofs /opt /opt
どこをマウントするのが適切かわからないのだが,一応上記の3つにした。ClamAvの作業に移る前に再起動。
(BugFix) /root をマウントすると,電源が落ちなくなった。電源が切れなくなった件について,/etc/rc.d/rc.shutdown を見ていたら,そのものずばりの [#091117 weird shutdown bug. would not shutdown when a partition mounted, x restarted.] という項があった。
922 行目に [STRAYPARTL="`echo "$MNTDPARTS" |grep -v "/dev/pts" |grep -v "/proc" |grep -v "/sys" |grep -v "tmpfs" |grep -v "rootfs" |grep -v 'on / ' | grep -v "/dev/root" | grep -v "usbfs" | grep -v "unionfs" | grep -v "/initrd"`"] があるので,これの末尾に | grep -v "dazukofs"を追加して,解決。

* ClamAvをLooxにインストールする。
1. パッケージマネージャで libbz2-dev をインストール。checkがらみです。
2. /root にcheck-0.9.8.tar.gz を解凍して,インストール。解凍フォルダ内にあるINSTALLの説明に従う。
# ./configure
# make
# make install
3. /root にclamav-0.96.1.tar.gz を解凍して,インストール。解凍フォルダ内にあるDocsの説明に従う。
まず,グループとユーザを作成。
# addgroup clamav
# adduser -G clamav -s /bin/false clamav
clamavのパスワードを設定。
$ ./configure –sysconfdir=/etc –enable-check  初めのオプションはclamd.confおよびfreshclam.confを/etc直下に作るため,2つ目はcheck使用のため。
$ make
# make install
4. unit tests 。
# make check
5. checkの結果    実行されていないテストは,Vaigrindが絡んでいるのですが,VaigrindはCrusoeをサポートしていないということでした。
======================
All 7 tests passed
(5 tests were not run)
======================
6. これは係わりないかもしれないのですが,# /sbin/sysctl -w kernel/shmmax=268435456 にて,shmmax を 268435456 (256MB) に書き換えました。
というのが,LooxS5/53W でやっていたときに segmentation fault が出て,clamd が頻繁に落ちました。ClamAvのBugzilla でもあまりはかばかしい回答がなかったのですが,ちょっと古いバージョンの話で「 freshclam をやったら直らない? 」なんていうのがありまして,その辺のからみがあるなら shmmax を増やしておいたらどうかなと思いました。
単なる気休めなんですが。
7. /etc にある clamd.conf の内容を編集。
o Example の頭に # をつけてコメントアウト。
o 以下の部分はアンコメント。
LogFile /tmp/clamd.log     テストラン後はコメントアウトする。
LogTime yes     テストラン後はコメントアウトする。
LocalSocket /tmp/clamd.socket
FixStaleSocket yes
User root     これを明示的に宣言しないと,オンアクセススキャンが効かないようです。おそらく,DBのパーミッションがらみ。
DetectPUA yes
ClamukoScanOnAccess yes
8. /etc/rc.d/rc.local に env LD_LIBRARY_PATH=/usr/local/lib /usr/local/sbin/clamd -c /etc/clamd.conf を追加。
起動時にいるだけですから, env で済ませました。再起動後,clamd を確認。
9. /etc にある freshclam.conf の内容を編集。
o Example の頭に # をつけてコメントアウト。
o 以下の部分はアンコメント。
UpdateLogFile /var/log/freshclam.log
LogTime yes
DatabaseMirror db.jp.clamav.net
NotifyClamd /etc/clamd.conf
コンソールから,freshclam.logを作成。
# touch /var/log/freshclam.log
# chown clamav:clamav /var/log/freshclam.log
10. /etc/rc.d/rc.local に env LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/freshclam -d を追加。
起動時にfreshclamがデーモンとして起動する。再起動して,freshclam.log の内容の更新を確認。これがらみで,rc.networkのMAXWAITを48
11. /root/clamav-0.96.1/test内のテスト用ウイルスを解凍(たとえば,unzip ~/clamav-0.96.1/test/clam.zip)しようとすると,以下のメッセージが出る。
error: cannot open zipfile [ /root/clamav-0.96.1/test/clam.zip ]
Operation not permitted
unzip: cannot find or open /root/clamav-0.96.1/test/clam.zip, /root/clamav-0.96.1/test/clam.zip.zip or /root/clamav-0.96.1/test/clam.zip.ZIP.
ただ,端末にしてもGUIで直接ファイルをクリックにしても,メッセージがわかりにくい。
12. テストラン→# env LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/clamscan –infected –remove –recursive / を打って,一応テストウィルスのお掃除。
このとき,以下のことが判明。DazukoFsがマウントしているディレクトリで見つかったマルファイルについては
WARNING: Can’t open file ファイル名: Operation not permitted
が出る。削除してくれないので,手動削除が必要。それ以外のディレクトリについては,
ファイル名: なんちゃらかんちゃら FOUND
ファイル名: Removed.
が出て,削除までしてくれる。
13. clamscan については,シェルを作ってcron に入れておくことも可能。Windowsマシンでさえ,そんなにたびたび,フルスキャンはしないし,freshclamはデーモンで動かしているので,定義ファイルの更新はしっかりやってくれるので,こちらは手動でもいいのではないかと思う。

* HAVPをLooxにインストールする。
petはないようなので,ソースから導入。
1. /root にhavp-0.92.tar.gz を解凍してインストール。解凍フォルダにあるINSTALLの説明に従う。
2.# ./configure
# make
# make install
3. /usr/local/etc/havp/havp.config を編集。
o REMOVETHISLINE deleteme   を削除。
o Listening port を8080にするので,
PORT 8080   をアンコメント。
BIND_ADDRESS 127.0.0.1   をアンコメント。
o ClamAV Library Scanner を有効化するために,
ENABLECLAMD true
o ClamAV Socket Scanner を有効化するために,
ENABLECLAMD true
CLAMDSOCKET /tmp/clamd.socket
4. # addgroup havp
# adduser -G havp -s /bin/false havp
# chown havp /var/tmp/havp /var/log/havp /var/run/havp
# chmod 700 /var/tmp/havp /var/log/havp /var/run/havp
LuPuもLinux の仲間なので,mandatory locking を有効にする。
# mount -o remount,mand /
5. ブラウザの設定をする。FireFoxを使うつもりなので,最新版の3.6.8をインストールし,日本語化(参照「懸案のLoox-#7。」)ののち,ネットワークの接続設定からプロキシを,127.0.0.1:8080にする。
6. eicarにでもアクセスして,確認。うまくいったら,rc.localに
# mount -o remount,mand /
# env LD_LIBRARY_PATH=/usr/local/lib /usr/local/sbin/havp -c /usr/local/etc/havp/havp.config
を記入して,起動時に起きるようにする。
返信する