[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:48420] Debian4.0のamavis-newのlha展開について



はじめて投稿させていただきます。船津と申します。

現在、Debian4.0(etch)を使用して、amavis-new+clamdによるウィルススキャン環境を
作成しています。
この作業中、lha展開について分からない事がありますので質問させてください。

sendmailを使用しているため、amavisd-milter-1.2.1を別途コンパイルして
使用しています。milter経由でAM.PDPプロトコルによるamavis-newとの通信する
部分はできています。

メールの添付ファイルが.zipや.exe等の場合は、問題なくclamdによる警告が
行われますが、添付ファイルがlzh形式の場合、
うまくウィルススキャンが動かない場合があります。

具体的には、debian上でlha圧縮したものは、正しく展開されclamdによる
チェックが行われますが、Windows上(LHMeliting)で圧縮したものはチェックされずに
すり抜けてしまうようです。

amavis-newのlog_levelを5にして実行したところ、ログ上に

amavis[6539]: (06539) Issued a new file name: p881
amavis[6539]: (06539) store_mgr: extracting "x" to file /var/lib/amavis/afl3H9PHiW006565/parts/p881 using /usr/bin/lha
amavis[7460]: (06539) open_on_specific_fd: target fd0 closing, to become < /dev/null
amavis[7460]: (06539) open_on_specific_fd: target fd2 closing, to become > /dev/null
amavis[6539]: (06539) run_command: [7460] /usr/bin/lha pq /var/lib/amavis/afl3H9PHiW006565/parts/p002.exe x </dev/null 2>/dev/null
amavis[6539]: (06539) store_mgr: extracted by /usr/bin/lha, exit 0

と表示されます。

debianで圧縮した場合は、

amavis[16142]: (16142) store_mgr: extracting "clam.exe" to file /var/lib/amavis/afl3F9pYs2016168/parts/p004 using /usr/bin/lha
amavis[16185]: (16142) open_on_specific_fd: target fd0 closing, to become < /dev/null
amavis[16185]: (16142) open_on_specific_fd: target fd2 closing, to become > /dev/null
amavis[16142]: (16142) run_command: [16185] /usr/bin/lha pq /var/lib/amavis/afl3F9pYs2016168/parts/p002.exe clam.exe </dev/null 2>/dev/null

と表示されます。

lhaアーカイブのファイル名取得処理に何か問題があるような気がしましたので
amavis-newの該当部分(do_lha)から正規表現を取ってきて、以下のような
テストスクリプトでテストしたところ、Windowsによる圧縮ではファイル名を
取得できないようでした。

tmp.pl
# windows lha
$line="[MS-DOS]                  5321  28.2% Jan 19 11:12 filename";
$line =~ /^(?:\S+\s+){6}\S+\s*(\S.*?)\s*\z/s;
print $1,"\n";

# debian lha
$line = "-rw-r--r--     0/0       88797  11.4% Apr 17 17:43 filename";
$line =~ /^(?:\S+\s+){6}\S+\s*(\S.*?)\s*\z/s;
print $1,"\n";

# perl tmp.pl
e
filename
#

以上、長くなりましたが、上のような問題を回避するための設定等ありましたら、
ご教示をお願いします。

また、amavis-newのdo_lha部分だけ見ると、日本語ファイル名(SHIFT-JIS)の
ファイル名がlha中にあると同様にすり抜けが発生するような気がするのですが
そんなことは無いでしょうか?
当方は、
LANG=ja_JP.EUC-JP
で運用してます。

合わせて、ご教示ください。よろしくお願いします。

-- 
----------------------------------------------------------------------------
import java.awt.Graphics;
public class SignatureApplet extends java.applet.Applet {
 public void paint(Graphics g) {
  g.drawString("Sea Of Serenity, MR&T Consulting, Yokomaha, Japan.", 5, 25);
  g.drawString("ryu@xxxxxxxxxxxxxxxx", 5, 35);
 }
}