FreeBSDでウィルスメールフィルター

| コメント(0) | トラックバック(0)

amavisd-new(A Mail Virus Scanner)というメールフィルターがあります。このソフトは、SMTPで取り扱うメールをspamチェッカーやウィルスチェッカーに送ってチェックするためのフィルターです。
このソフトとClam AntiVirusを組み合わせて、ウィルスメールフィルターを設定したいと思います。

MTAはpostfixを使用している前提で書いています。
ちなみに、spamフィルターまで入れてしまうと、自分がお客さんなどに送信するメールまでspam扱いされる可能性もありますので、amavisd-newではspamメールフィルターは使わないようにします。

まず、インストールの際、一点注意点があります。
amavisd-newもportsから一発インストールできるのですが、Clam AntiVirusと連携する場合は、ユーザー・グループを一致させる必要があります。
そのため、makeにオプションをつけてインストールします。
(こちらのサイトを参考にしました:http://www.leafgreen.jp/freebsd/clamav.html)


# cd /usr/ports/security/amavisd-new
# make AMAVISUSER=clamav AMAVISGROUP=clamav install

インストールが完了したら、設定に入ります。
まずは、/usr/local/etc/amavisd.confを設定します。

以下の設定を有効にします。


@bypass_spam_checks_maps  = (1);  # controls running of anti-spam code
$daemon_user  = 'clamav';     # (no default;  customary: vscan or amavis), -u
$daemon_group = 'clamav';     # (no default;  customary: vscan or amavis), -g
$mydomain = 'harmonicom.jp';   # a convenient default for other settings

「@bypass_spam_checks_maps」が入っていると、spamフィルターが動作しなくなります。

また、以下はコメント化してしまいます。


#$virus_admin               = "virusalert@$mydomain";  # notifications recip.
#$mailfrom_notify_admin     = "virusalert@$mydomain";  # notifications sender
#$mailfrom_notify_recip     = "virusalert@$mydomain";  # notifications sender
#$mailfrom_notify_spamadmin = "spam.police@$mydomain"; # notifications sender
#$mailfrom_to_quarantine = ''; # null return path; uses original sender if undef

ウィルスメールが来るたびに警告メールが欲しい人は、逆にここを設定してください。
私は不要だと思ったので入れていません。

そして、以下の設定を記述します。


$undecipherable_subject_tag = '';
$myhostname = 'mail.harmonicom.jp';  # must be a fully-qualified domain name!
$notify_method  = 'smtp:[127.0.0.1]:10025';
$forward_method = 'smtp:[127.0.0.1]:10025';  # set to undef with milter!

$undecipherable_subject_tagは、圧縮ファイルなどでチェックできなかったものがある場合に、Subjectに文字列を追加します。デフォルトだと「***UNCHECKED***」と入るので、これがうっとうしい場合は、空文字を指定します。

また、amavisd-newはウィルス検知のたびに警告メールを送ってくるので、静かにさせるために下記の設定を追加します。


$warnvirussender  = 0;
$warnspamsender   = 0;
$warnbannedsender = 0;
$warnbadhsender   = 0;

ここも前述のとおり、警告メールが必要な人は入れないようにしてください。

そして使用するウィルス対策ソフトの設定をします。
Clam AntiVirusを有効にします。


@av_scanners = (
  ### http://www.clamav.net/
['ClamAV-clamd',
  &ask_daemon, ["CONTSCAN {}n", "/var/run/clamav/clamd"],
  qr/bOK$/, qr/bFOUND$/,
  qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
);
@av_scanners_backup = (
  ### http://www.clamav.net/   - backs up clamd or Mail::ClamAV
  ['ClamAV-clamscan', 'clamscan',
    "--stdout --no-summary -r --tempdir=$TEMPBASE {}",
    [0], qr/:.*sFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
);

これ以外のウィルスチェッカーは全てコメントアウトします。かなり多くてめんどくさいですが、がんばってください。

次に、postfixの/usr/local/etc/postfix/main.cfに以下の設定を追記します。


content_filter = smtp-amavis:[127.0.0.1]:10024

最後に、同じくpostfixの/usr/local/etc/postfix/master.cfに下記の設定を追記します。


smtp-amavis unix  -       -       n       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o disable_dns_lookups=yes
127.0.0.1:10025 inet n    -       n       -       -       smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes

全ての設定が完了したら、/etc/rc.confに


amavisd_enable="YES"

を追加して、amavisd-newを起動し、postfixを再起動します。
Clam AntiVirusのデーモンが起動していなかったら、併せて起動します。


# /usr/local/etc/rc.d/amavisd start
# /usr/local/etc/rc.d/postfix restart
# /usr/local/etc/rc.d/clamav-clamd start

ためしに設定したメールサーバーを使ってテストメールを送ってみましょう。
eicarというところでテスト用の擬似ウィルスコードを配布していますので、そのコードをメール本文に記述して、送信してみてください。
http://www.eicar.org/anti_virus_test_file.htm
マシンのウィルスチェッカーに引っかかって送信できない人は、sendmailコマンドで試してみましょう。


# sendmail (自分のアドレス)
(eicarコードを入力)
.

すると、メールログやClamAVのログにウィルス検知の記録が残ります。


# cat /var/log/maillog
Jan  7 18:44:28 mail amavis[21882]: (21882-19) Blocked INFECTED (Eicar-Test-Signature), <ooo> -> <xxxxx>,
quarantine: virus-45nAaY2kC6uX, Message-ID: <20080107094428.0C049138B496@xxx.jp>,
mail_id: 45nAaY2kC6uX, Hits: -, size: 403, 146 ms
# cat /var/log/clamav/clamd.log Mon Jan 7 18:44:28 2008 -> /var/amavis/tmp/amavis-20080107T173525-21882/parts/p001: Eicar-Test-Signature FOUND

トラックバック(0)

トラックバックURL: http://blog.harmonicom.jp/mt/mt-tb.cgi/87

コメントする

プロフィール

ヤマカズー(ヤマカズ)

Webコンサルティング会社に勤めるシステムコンサルタントのおっちゃんです。
趣味はコンピューター。まんまですね。
あと申し訳程度に空手とか。
子供が二人います。

kazooooo at gmail.com

mixiはこちら

HARMONICOM

twitter

スゲーなんだこれ!?w > スマホをPCのセカンドディスプレーにできるAndroidアプリがイカス! #asciiplus http://t.co/4hbbnZeb
2012-02-02 20:08:03
いやあぁぁぁぁ~~!! ん?「D」と「.」?……「し」「る」? RT @hizous : @yamakazoo サーバの後ろに悲しそうな顔をした日本髪の若い女性が見えます・・・何か心当たりはないですか・・・? ん?キーボードの「D」と「、」のところを指さしているようです・・・
2012-02-02 11:39:49
家のMacBookといい会社のサーバーといい、原因不明なところでCPUがフルパワーになったり、ディスクへのアクセスが異様に遅くなったりする……これってある意味、寿命ってことなのかな……
2012-02-02 11:16:13
おお! RT @YahooNewsJP : [社会]<雑記帳>劇団四季「キャッツ」出演者が電子確定申告 - 毎日新聞 http://t.co/5tDvGJI6
2012-02-01 22:50:43
うちの会社にも備蓄いっぱい!! 深夜メンテの時にこっそり食べ(ry RT @YahooNewsJP : [社会]「ビスコ」売り上げ過去最高に…備蓄用缶人気で - 読売新聞 http://t.co/ZKIpZ1RJ
2012-02-01 19:12:41
follow me on Twitter