natural born minority
偉い長い時間ハマった上、希望を満たせなかった…ので記念で記事にします。
少し古い技術ですが、「SAMBAでファイルアクセスされた瞬間にウィルススキャンする機構」であるsamba-vscanを導入します。
ウィルススキャンソフトはフリー定番の clamav
。
apt-get install samba clamav clamav-daemon
/home/tmp
とします./configure
, make
まで終わったsambaが必要らしいので、パッケージの元となったソースを取得しコンパイルします。
apt-get install gcc
apt-get source samba
cd ./samba-3.*/source
./configure
make proto
http://www.openantivirus.org/ のサイトからソースを落とします。
wget http://www.openantivirus.org/download/samba-vscan-0.3.6c-beta5.tar.gz
tar -xvzf samba-vscan-0.3.6c-beta5.tar.gz
mv samba-vscan-0.3.6c-beta5 samba-vscan
※後述のパッチが上記の”samba-vscan”というディレクトリ名を期待しているため、リネーム
善意の方が作ってくれた野良パッチを当てます。
wget http://www.maxxer.it/wp-content/uploads/2010/04/samba-3.2.5_vscan-0.3.6c-beta5.patch.gz
gunzip samba-3.2.5_vscan-0.3.6c-beta5.patch.gz
patch -p0 < samba-3.2.5_vscan-0.3.6c-beta5.patch
さらに、samba-3.Xに対してインターフェイスが古い(らしい)ので、以下を参考にパッチを作成、当てます。
http://www.mail-archive.com/samba@lists.samba.org/msg98075.html
cd samba-vscan
vi ./global_h_extend.patch
1 ===================================================================
2 --- include/vscan-global.h.orig 2004-10-05 21:47:54.000000000 +0200
3 +++ include/vscan-global.h 2008-12-09 15:55:04.000000000 +0100
4 @@ -69,6 +69,17 @@
5 #endif
6 #endif
7
8 +/* Patched by T. Wild, 9.12.2008, because pstrcpy removed by samba.org */
9
10 +#define PSTRING_LEN 1024
11 +typedef char pstring[PSTRING_LEN];
12 +#define pstrcpy(d,s) safe_strcpy((d),(s),sizeof(pstring)-1)
13 +#define pstrcat(d,s) safe_strcat((d),(s),sizeof(pstring)-1)
14 +
15 +/* Furthermore init_module changed to init_samba_module */
16 +
17 +#define init_module(void) init_samba_module(void)
18 +
19 +/* end of patch by T. Wild */
20
21 #endif /* __VSCAN_GLOBAL_H */
22 ===================================================================
patch -p0 < ./global_h_extend.patch
先程コンパイルしたsambaのソースをやりやすい場所に移動します。
(作業ディレクトリに移動した前提)
cp -r ./samba-3.*/source ./samba-vscan/samba-source
configファイルを改造。(オプションで指定しても良いが、全自動で行きたいので)
cd ./samba-vscan
vi ./configure
3675 SAMBA_SOURCE="./samba-source"
3676 SAMBA_INSTALLPERMS_BIN="0644"
4302 SAMBA_VFSLIBDIR="/usr/lib/samba/vfs"
6907 s,@SAMBA_INSTALLPERMS_BIN@,$SAMBA_INSTALLPERMS_BIN,;t t
※細かいことは、内容読んで「お察し下さい」
./configure
(省略、以下出力)
** Configuration summary for samba-vscan 0.3.6c beta5 :
Compile samba-vscan for Samba : "3.2.5"
Compile samba-vscan with sources in: ../samba-3.2.5/source/
Compile samba-vscan backends : oav sophos fprotd fsav trend icap mksd kavp clamav nai antivir
Use GLOBAL_LIBS :
Use libmksd as : builtin
Use libkavdc as : builtin
Now type "make" to build all mentioned backends.
Or "make {}" to build only specific backend(s).
On *BSD systems please use GNU make (gmake) instead of BSD make (make).
と、出る。
make
お、エラーなし?拍子抜けだがうまく行った。(その前に試行錯誤で半日吹っ飛んでるがw)
make install
これで、 /usr/lib/samba/vfs/
に vscan-*.so
なファイルが10個以上コピーされている…はず。
必要なファイルは vscan-clamav.so
だけなので、 make install
せずにファイルコピーでも良いです。
リアルタイムスキャンを行うため,設定ファイルを記述。
vi /etc/samba/smb.conf
5 [global]
~
26 vfs objects = vscan-clamav
27 vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
vi /etc/samba/vscan-clamav.conf
1 [samba-vscan]
2 max file size = 10485760
3 verbose file logging = yes
4 scan on open = yes
5 scan on close = yes
6 deny access on error = yes
7 deny access on minor error = yes
8 send warning message = yes
9 infected file action = quarantine
10 quarantine directory = /var/tmp/clamav/quarantine
11 quarantine prefix = vir-
12 max lru files entries = 100
13 lru file entry lifetime = 5
14 exclude file types =
15 clamd socket name = /var/run/clamav/clamd.ctl
再起動
/etc/init.d/clamav-daemon restart
/etc/init.d/samba restart
これで、完了。eicar.com とかテストファイルを置いてみて、アクセス出来ないならOK。
vscan-clamav.confに「発見したらどうするか」の設定があるくらいなので、「ファイル置く→即時に拒否」してくれるのかと思いきや、「ファイルは置ける」「置いた後アクセス不能」という挙動。
たしかにこれなら「外の人には迷惑かけない」仕組になるが、「ウィルスファイルを溜めるサーバ」になっちゃう気が…
設定ファイルとログを観察する限りでは、
にスキャンしているようですが、そのうち 1. のタイミングの時だけ「発見しても何もしない」ようです。
これは、多分「仕様の動きとは違う」と思われますが…他環境や旧モジュールの組み合わせで検証するほど時間はないので、知っている方が居たらどうか教えてください。
これはきっと仕様。
ウィルススキャンにより異常がおこってもメッセージボックスからではわかりません。
ウィンドウズ上のファイル操作(ウィルスファイルをコピーするとか)なら「指定されたネットワーク名は利用できません」、アプリとかなら「アクセス権がありません」と表示されます。
まあ、仕組を考えればそれが限界な気もするが、なんとかできるならなんとかしたいなぁと。
以上、問題ありまくりながらも導入完了し、なんとなくええ感じに。
他サイトでよく言われている、「CPU負荷」「遅い」などは、そもそもネットワーク&マシンが遅い我が家では「きにならない」→「問題はない」としときましょっかねー。
気になってきたらもう全面廃止でウィークリー全ファイルチェックとかに切り替えようと思います。
blog comments powered by Disqus