D. J. Bernstein
TCP/IP
ucspi-tcp
rblsmtpd は RBL に登録されているサイトからのメイルを拒否します。
tcpserver の下で動いている SMTP サーバで動かせます。
使い方
rblsmtpd opts prog
opts は getopt 形式のオプション郡です。
prog は一つ以上の引数から成ります。
通常、rblsmtpd は prog を起動します。
prog はメイルを受け取るために SMTP 交信を受け持ちます。
ただし、クライアントからのメイルを拒否するように指定されていれば、rblsmtpd は prog を呼び出しません。
代わりに、メッセージの送信の試みを一時的に全て拒否する内蔵の限定された SMTP 交信を行います。一方、記述子 2 にその動作記録を一行書き出します。
クライアントからの接続断が無い場合でも、rblsmtpd は60秒後に限定された SMTP 交信を打ち切ります。
オプション:
拒否されるクライアント
環境変数 $RBLSMTPD が設定されていてかつ空でないとき、
rblsmtpd はメイルを拒否します。
$RBLSMTPD をクライアントに対するエラーメッセージとして使います。
通常、rblsmtpd は tcpserver の下で動きます。
tcprules を使って、選択したクライアントに $RBLSMTPD を設定することができます。
$RBLSMTPD が空に設定されているとき、rblsmtpd はメイルを拒否しません。
$RBLSMTPD が設定されていないとき、rblsmtpd は RBL で $TCPREMOTEIP を検索し、$TCPREMOTEIP が登録されていれば、メイルを拒否します。
tcpserver はリモートホストの IP アドレスとして $TCPREMOTEIP を設定します。
オプション:
- -r base:
RBL のソースとして base を使います。
d.c.b.a.base が TXT レコードを持っていれば、IP アドレス a.b.c.d はそのソースに登録されています。
rblsmtpd はクライアントへのエラーメッセージとして TXT レコードの内容を使います。
- -a base:
anti-RBL のソースとして base を使います。
d.c.b.a.base が A レコードを持っていれば、IP アドレス a.b.c.d はそのソースに登録されて(anti-listed)います。
この場合、rblsmtpd はメイルを拒否しません。
いくつでも -r と -a オプションを付けることができます。
rblsmtpd は $TCPREMOTEIP を登録しているソースが見つかるまで各ソースを順番に試します。
-r オプションを付けなければ、rbl.maps.vix.com という RBL ソースを試します。
RBL sources
rblsmtpd 用に自分で RBL ソースや anti-RBL ソースを動かしたいのであれば、djbdns パッケージの rbldns を使うことができます。
以下のような公開 RBL ソースを聞いたことがあります:
- blackholes.mail-abuse.org または rbl.maps.vix.com
- dialups.mail-abuse.org または dul.maps.vix.com
- relays.msci.memphis.edu または relays.mail-abuse.org または rss.maps.vix.com
- relays.orbs.org
relays.mail-abuse.org と rss.maps.vix.com は2000年8月に rblsmtpd で動かすのをやめました。全ての TXT レコードが削除されたためです。
「ゾーンファイルが大きくなっているためそれらが除去された。」とメンテナーは言いました。
rbldns データベースがゾーンファイルより遥かに小さいので、この問題は rbldns では起こらないでしょう。
しかし、MAPS を動かしている人々は BIND に金銭的利害(financial interests)も持っていて、rbldns を使うのを拒否します。
一時エラー
通常、$RBLSMTPD が設定されていれば、rblsmtpd はその限定された SMTP 交信でエラーコード 451 を使います。
これは、まともなクライアントに後で再び接続を試みるように伝えます。
これにより、問題に気づいていない管理者に問題を認識して、中継を禁止し、RBLの登録を取消し、メイルを配送できるようにする機会を与えます。
だたし、$RBLSMTPD がハイフンで始まっていれば、rblsmtpd はハイフンを取り除き、エラーコード 553 を使います。
これは、まともなクライアントにすぐにメッセージを送り返すように伝えます。
RBL 検索においていくつかのエラー処理オプションがあります:
- -B:
(デフォルト)
RBL に登録されている IP アドレスに対してエラーコード 451 を使います。
- -b:
RBL に登録されている IP アドレスに対してエラーコード 553 を使います。
- -C:
(デフォルト)
``fail-open'' モードで RBL 検索を扱います。
RBL 検索が一時的に失敗した場合に、そのアドレスが登録されていないと考えます。
anti-RBL 検索が一時的に失敗した場合に、そのアドレスが登録されていると考えます。
不幸なことに、知識のある攻撃者がメイルを拒否しないように RBL 検索や anti-RBL 検索を一時的に失敗させることができます。
- -c:
``fail-closed'' モードで RBL 検索を扱います。
RBL 検索が一時的に失敗した場合に、そのアドレスが登録されていると考えます(しかし、-b があっても、エラーコード 451 を使います)。
anti-RBL 検索が一時的に失敗した場合に、そのアドレスが登録されていないと考えます(-b オプションが付いて、別の RBL 検索が成功してもエラーコード 451 を使います)。
不幸なことに、これは時々まともなメイルの配送を遅らせます。
訳:滝澤 隆史(rblsmtpd-0.70 における 前野 年紀 訳を基にしている)
Last modified: Mon Apr 16 20:27:37 2001