http://www.sendmail.org/~ca/email/chk-dbg.html
http://www.sendmail.org/~ca/email/dbg-out89.html#extext
e-mail from extern to extern.
sendmail -bt -d21.4
> .D{client_addr}1.2.3.4
> .D{client_name}aol.com
> check_rcpt <a@aol.com>
http://www3.ocn.ne.jp/~koshino/sendmail.html#rset check_relay
SMTP 接続してきたもとの IPアドレス
DNS を逆引き検索して得られるドメイン名
ホスト名(ドメイン名)とIPアドレスのあいだに "$|" を挟む形式になります
host.nanntoka.domain $| 222.333.444.555
CFでは CheckDebug という "$ と | をくっつけるだけ" のルールセットが準備されているので、これも併せて利用します
> CheckDebug,check_relay host.nanntoka.domain $| 222.333.444.555
check_mail
エンベロープでの送信人、つまり SMTP の
MAIL From:コマンドの情報を入力としてとるルールセットです。
マクロの値
client_addr SMTP接続元ホストのIPアドレスを保持
client_name 逆引きして得られるドメイン名を保持し
アドレステスト・モード
".D" を用いて設定することができる
> .D{client_addr}222.333.444.555
> .D{client_name}host.nanntoka.domain
> check_mail user@host.nanntoka.domain
check_rcpt
ンベロープでの受信人、つまりSMTPの
RCPT To: コマンドの情報を入力としてとるルールセットです。
・サイト内のホストから、そのサイト宛のメールの中継
・サイト内のホストから、外部サイト宛のメールの中継
・サイト外のホストから、そのサイト宛のメールの中継
・サイト外のホストから、外部サイト宛のメールの中継
最後のもののみを拒否する必要がある
"どのホストからか" についてはSMTP接続元を基準に判定
"どこ宛のメールか" についてはエンベロープでの受信人を基準に判定します。
マクロ client_addr の値
マクロ client_name の値
> .D{client_addr}222.333.444.555
> .D{client_name}host.nanntoka.domain
> check_rcpt user@host.nanntoka.domain
http://www.users.kudpc.kyoto-u.ac.jp/~w55062/spam.html
sendmail の smtpcheck 機能
sendmail の最新バージョンでは,次の三つのルールセットを用意しており,これらを sendmail.cf に適切に定義することで中継のチェックを行うことができます.
check_relay ルールセット
SMTP 接続を要求してきたホストのアドレスに関するチェック
check_mail ルールセット
エンベロープ発信者アドレスに関するチェック.SMTP 接続元の情報と併せたチェックを行います.
check_rcpt ルールセット
エンベロープ受信者アドレスに関するチェック.SMTP 接続元の情報,およびエンベロープ発信者アドレス情報と併せたチェックを行います.
これら三つのルールセットを,具体的には次のようなチェック目的に用いることができます.
check_relay
SMTP 接続自体を門前払いするホストを判定
SMTP 接続元ホストの IP アドレス (の範囲),あるいは,(DNS を参照できる場合には)ドメイン名によって門前払いするホストを指定できます. check_mail
check_relay で門前払いを行わなかった SMTP 接続元が,組織内であるか組織外であるかを判定
SMTP 接続元のアドレス(範囲)とエンベロープ発信者アドレス (省略可) の組合せで指定できます.
check_rcpt
メールの宛先に応じた受信の可否を判定 例えば,check_mail で「組織外」と判定された SMTP 接続元からのメールはエンベロープ受信者が「組織内」宛のものしか受信しない,などの指定ができます.
にゃんたろう 拝!
2006年10月27日 (金) 21:48:27 JST 作成