[Japanese|English]

SMTPGuardとは

SMTPGuardは、SMTP(Simple Mail Transfer Protocol)で流れてくるメールのフロー制御をするツールです。 ISPのメールシステムは、ISPの光ファイバー網やADSL網に繋がった契約者(お客様)が送ったメールや インターネットから契約者宛に送られたメールを大量に受信し、宛先アドレスに配送します。 メールシステムの配送性能には上限がありますので、一度に大量のメールを送られると 正常な配送活動ができなくなってしまいます。

このような状況に対応するため、SMTPGuard は誕生しました。

SMTPGuard Image

問題となるパターンユーニクIPアドレスメールの量
内部のユーザから SPAM 発生
ウイルスで汚染されたパソコンから発生
外部の SPAMMERが発生

「小」,「中」,「大」の言葉を上記で使っていますが、環境によって意味が違います。

効果的に動作するように、次の点を調査しておく必要があります。

SMTPGuard の目的を図で表します。


SPAM の特徴として、受け付け (INCOMING) の負荷となるだけではなく、 OUTGOING サーバの大変な負荷になります。SPAM で送信しようとしている メールのなか、多くのメールがバウンスされます。バウンスが又 queue に溜るだけではなく、元の送信者へエラーメッセージを返そうとしても 外部のサーバへ接続しようとする時タイムアウトしてしまいます。それで 最後にダブルバウンスが発生しますが、タイムアウトや溜ったキューで OUTGOING が危険な状態になります。この全体な SPAM 負荷を防ぐために INCOMING で SMTPGuard を利用します。

SMTPGuard はポイント方式のソフトとなっています。接続が張られる度に設定 ファイルに従ってポイントを加算していきます。SMTP セッション中に 得られる情報をもとに、あらかじめ定められたルールによってポイント の計算を行い、smtpd が受信拒否などの適切なアクションを行う ことを可能としています。得られる情報とは

上記等の情報を参照し、下記のアクションを起こせるようにしています

ok ホワイトリストとして扱う
wait 処理遅延
reject 受信拒否
mail 警告メールを送信する
log ログにメッセージを出力する
delete データベースのレコードを削除

設定ファイルの記述例

MAILFROM="postmaster@example.com"
SENDMAIL="/usr/sbin/sendmail"
EXPIRE=900

# IPアドレスが 172.16.3.* であれば、1ポイント加算される。
A: IP==172.16.3.        : add(1)

# MAIL FROM が example.com で終っていなければ、1ポイント加算される。
A: F!~=example.com      : add(1)

# RCPT TO 1回につき、1ポイント加算される。
A:                      : add(1)

# RCPT TO が example.com で終っていなければ、1ポイント加算される。
A: T!~=example.com      : add(1)

# RCPT TO 数が100を越えていれば、一時的に100ポイント加算する。
R: TC>100               : addlocal(100)

# ポイントが100を越えていれば、
#       o smtpd に "wait 5" を返す
#       o ログ出力
R: P>100                : wait(5),
        log( "inserting a small sleep in a SMTP session from " , IP )

# ポイントが1000を越えていれば、
#       o "admin@example.com" への警告メール送信
#       o データ保持期間を900秒延長
#       o ログ出力
#       o smtpd からクライアントに "MESSAGE" を返す
R: P>1000               : mail("admin@example.com"),
        extendexpire(900),
        reject("411 mail server temporally rejected message"),
        log("rejecting a SMTP session from ", IP)

SMTPGuard はフレキシブルで、システムのニーズに合わせてお守りできます。

リンク

ダウンロード
Last Updated: 2014-03-12 Yoshiaki Yanagihara
© 2005-2011 VA Linux Systems Japan, K.K.
© 2012- SCSK K.K.