smtp で流れてくるメールを制御できるように実装されたツールです。
ISP のニーズに合わせて考えられたソリューションです。ISP では
内部 (お客様) のユーザから大量にメールが送信されてきます。サーバが
大きく活動していることは幸いですが、SPAM を送ったり、ウイルスが
送られたりするユーザもいます。DSL や光ファイバの快速回線でお客様
とつながっている場合はメールサーバの大変な負荷となり、運用者の
面から大問題となります。そこに smtpguard が誕生…
| |||
問題となるパターン |
ユーニク IP アドレス | メールの量 | |
小 | 大 | 大 | 小 | 小 | 中 |
「小」、「中」、「大」の言葉を上記で使っていますが、環境によって
意味が違います。有用に設定できるようにため、
を調査する必要があります。下記は smtpguard の目的を図で表します。
上記等の情報を参照し、下記のアクションを起こせるようにしています | |||
ok |
ホワイトリストとして扱う | ||
wait |
処理遅延 | ||
reject |
受信拒否 | ||
警告メールを送信する | |||
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 はフレキシブルで、システムのニーズに合わせてお守りできます。
|