http://cr.yp.to/ucspi-tcp/rblsmtpd.html
https://tools.qmail.jp/ucspi-tcp/rblsmtpd.html
/利用例 --> spam/対策/dnsbl /有効性
1. rblsmtpd
D. J. Bernstein [Translated into Japanese by MAENO Toshinori] TCP/IP ucspi-tcp rblsmtpdプログラム
rblsmtpd は RBL リストに登録されたサイトからの メイルを拒絶する。
- tcpserverの元で動作するような SMTP サーバとともに使用できる。
1.1. 使いかた
- rblsmtpd opts prog
optsはgetopt風のオプションの並びであり、 progはひとつ以上の引数からなる。
通常 rblsmtpd は progを実行する。 prog は SMTP conversation を遂行して、送られてくるメイルを受信するものである。
しかし、 当該クライアントからのメイルを拒否するよう指示されたときには rblsmtpd は progを呼びださない。 代わりに、内蔵している制限された SMTP conversation を実行し、 一時的にメイル受信を拒否する。 その間に記述子 2 に一行の動作記録を書く。
rblsmtpd はたとえクライアントがSMTP接続を終了させなくとも 60秒後には制限されたSMTP接続を切断する。
オプション:
- -t n: タイムアウトを n 秒 とする。
1.2. 排除されるクライアント
$RBLSMTPD 環境変数が存在して、空でないとき、 rblsmtpd はメイルをブロックする。
- $RBLSMTPD をクライアントに対するエラーメッセージとして使う。 通常、rblsmtpd は tcpserverのもとで実行される; tcprulesを使って、 必要なクライアントに対して $RBLSMTPD を設定できる。
$RBLSMTPD が存在して空であるとき、 rblsmtpd はメイルをブロックしない。
$RBLSMTPD が存在しないとき、
- rblsmtpd は $TCPREMOTEIP を RBL中に検索し、もし $TCPREMOTEIP が登録されていれば、メイルをブロックする。
- $TCPREMOTEIPはtcpserverにより リモートホストの IP アドレスに設定されている。
オプション:
- -r base: base を RBL 情報として使用する。 IP アドレスを a.b.c.d とするとき、 d.c.b.a.base を検索して、 TXT レコードを持っていれば、登録されていることになる。 rblsmtpd は TXT レコードの内容をそのクライアントに対する エラーメッセージに使用する。 -a base: base を アンチ RBL 情報として使用する。 IP アドレスを a.b.c.d とするとき、 d.c.b.a.base を検索して、 A レコードが存在すれば、アンチ RBL に登録されていることになる。 この場合、rblsmtpd はメイルをブロックしない。
-r と -a オプションはいくつあってもよい。
- rblsmtpd は$TCPREMOTEIPが 登録されているものを見つけるまで各情報源を順に探していく。 まったく -r オプションを指定しなかったときには RBL 情報として rbl.maps.vix.comを使う。 これは将来変更される予定である。
1.3. RBL 情報源
もし自分自身で用意した RBL または アンチ RBL 情報を rblsmtpd で使いたいのなら、 djbdnsパッケージ中の rbldnsが使える。
以下のような RBL 情報源が公開されている:
bl.spamcop.net dev.null.dk list.dsbl.org, using rbldns as of 2002-03 multihop.dsbl.org, using rbldns as of 2002-03 or.orbl.org, down as of 2001-10 orbs.dorkslayers.com orbz.gst-group.co.uk relays.ordb.org relays.osirusoft.com unconfirmed.dsbl.org, using rbldns as of 2002-03
以下の RBL 情報源をさまざまの理由で使うのはやめた:
blackholes.mail-abuse.org, demanding money for access as of 2001-07 dialups.mail-abuse.org, demanding money for access as of 2001-07 dul.maps.vix.com, renamed dialups.mail-abuse.org inputs.orbz.org, disabled as of 2002-03 outputs.orbs.org, disabled in 2001-06 outputs.orbz.org, disabled as of 2002-03 rbl.maps.vix.com, renamed blackholes.mail-abuse.org relays.mail-abuse.org, TXT records eliminated in 2000-08, demanding money for access as of 2001-07 relays.msci.memphis.edu, a copy of relays.mail-abuse.org with TXT records, disabled in 2001-01 because mail-abuse.org started demanding money rss.maps.vix.com, renamed relays.mail-abuse.org
relays.mail-abuse.org は August 2000 に 全TXTレコードが削除されたため、 rblsmtpd では使えなくなった。 管理者は 'They were eliminated because the zone file is growing rather large,'と言っている。
- rbldns データベースはゾーンファイルよりもずっと小さいので、 rbldnsを使うならこの問題は起きない。 しかし、MAPS を提供している人達は BINDに金銭的に関連しており、 rbldnsを使おうとしない。
1.4. 一時的エラーの扱い
通常 $RBLSMTPD が存在すると、 rblsmtpd は制限つきSMTPセッションでエラーコード 451を返す。 これは正当なクライアントにあとで再度試みるように告げている。 問題に気づいていない中継サイト管理者に対して、 問題を認識して、中継をやめさせ、RBL登録を取り消してもらい、 メイルを配送してもらう機会を与えるためである。
しかし、$RBLSMTPD がハイフンで始まっているならば、 rblsmtpd はハイフンを取り除き、エラーコード 553 を返す。 これにより正当なクライアントにメッセージをただちにバウンスさせるよう通知する。
1.5. RBL 情報の検索結果とエラーが起きた時の処理
- -B: (Default.) RBLに登録されている IP アドレスに対して、エラーコード 451 を使う。
- -b: RBLに登録されている IP アドレスに対して、エラーコード 553 を使う。
- -C: (Default.) RBL検索を失敗時受信モードで運用する。
- つまり、 RBL検索が一時的に失敗したときに、そのアドレスは登録されていなかったものと想定する。 アンチRBL検索が一時的に失敗したときには、そのアドレスは登録されていたものと想定する。
- しかし、問題がある。 知識の十分な攻撃者ならば、彼のメイルはブロックされないように RBLあるいはアンチRBL検索を一時的に使えなくさせられる。
- -c: RBL検索を失敗時受信拒否モードで運用する。
- つまり、RBL検索が一時的に失敗したときに、そのアドレスが登録されていたものと 想定する。
- (ただし、 -b が指定されていても、エラーコードは 451 を使う。) アンチRBL検索が一時的に失敗したときには、そのアドレスは登録されていなかったものと 想定する (ただし、 -b が指定されていて、以降のRBL検索で登録されていた場合も、 エラーコードは 451 を使う。) この方法の問題は正当なメイルがときどき遅れることである。
[訳注: -B, -b, -C, -c オプションはそれ以降の -a, -r で指定された RBL に 効果があるらしい。rblsmtpd.c を確認されたい。
2003-06-06] 2003-06-06 訳 前野年紀 publicfile djbdns
moin向け整形 -- ToshinoriMaeno 2021-05-04 02:31:38