現状は理解しているわけでは おへん 試行錯誤してみよう
このような sendmail に関する log が 残ってると します 適当に改行をし てるが 雰囲気は 理解できるでしょう。
Sep 13 13:53:40 servertest sendmail[5820]:\ j8D4rdtZ005820: ruleset=check_rcpt, arg1=<popogigi1975@yahoo.com.tw>, \ relay=[219.133.247.112], reject=550 5.7.1 <popogigi1975@yahoo.com.tw>\ ... Relaying denied. IP name lookup failed [219.133.247.112] Sep 13 13:54:31 servertest sendmail[5820]: j8D4rdtZ005820: \ lost input channel from [219.133.247.112] to MTA after rcpt Sep 13 13:54:31 servertest sendmail[5820]: j8D4rdtZ005820: \ from=<dgsergser@aol.com>, size=0, class=0, nrcpts=0, proto=SMTP, \ daemon=MTA, relay=[219.133.247.112]
さて 以下のように 仮定してみましょう
arg1=<popogigi1975@yahoo.com.tw>これが 検査の対象と なると云うことです
relay=[219.133.247.112] これが 要求してきた サーバーの IP アドレスと云うことです。
from=<dgsergser@aol.com> これが 送信者メールのアドレスと云うことです。
popogigi1975@yahoo.com.tw :: dig yahoo.com.tw の 結果は 202.43.195.13
219.133.247.112 :: dig -x 219.133.247.112 の 結果は
中国の IP アドレスの ようです
dgsergser@aol.com :: dig aol.com の 結果は 205.188.142.182
64.12.50.151
此の仮定から 考えられる事は popogigi1975@yahoo.com.tw は この IP アド レス [219.133.247.112 ] では 無いと 考えられます 又 発信者 も dgsergser@aol.com は まったく 別の IPアドレス 2個有りますが そこから 発 信 (送信)してきています というような 感じです
実は試験方法も 良く理解できていないのですが 取り敢えず 試行錯誤してみ ましょう。 まず現在 動いている sendmail を 停止 してから
$ su - Password: # ps ax | grep sendmail | grep -v grep 86 ? S 0:00 sendmail: accepting connections # kill 86 # ps ax | grep sendmail | grep -v grep
アドレステストモードで 動かします
# /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
/* まず アドレステストモードにて 立ち上げてみます */
/* 試験方法 これが 正解か どうかはさておき 以下の 仮定の試験をします */
/* 使用する エリアの 確認をしておきます */
> ${client_name}
Undefined
> ${client_addr}
Undefined /* ここで 使用する ものを 決めてやります */
> .D{client_addr}219.133.247.112 /* 発信者のIPアドレス */
> check_rcpt popogigi1975@yahoo.com.tw /* 発信者のメールアドレス */
/* これは 送信してきたという 意味では 有りません */
/* popogigi1975@yahoo.com.tw が 219.133.247.112 の ものとして */
/* 仮定してるのであり 本当の所は 偽物と 考えられます */
... /* 途中省略して */
Relay_ok returns: popogigi1975 @ yahoo . com . tw
Basic_check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
/* 結果云々は "550 Relaying denied" です 試験方法自体 良いのか悪いのか わからないが */
.../* さて これも 良いのか悪いのかわからないが まず アドレステスト モード を 再起動します */
> /quit
# /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Undefined /* 何にも無いよ */
> ${client_addr}
Undefined /* 何にも無いよ */
> .D{client_name}yahoo.com.tw
> ${client_name} /* 確認しておきます */
yahoo.com.tw
> check_rcpt popogigi1975@yahoo.com.tw
Relay_ok returns: RELAY
Basic_check_rcpt returns: RELAY
check_rcpt returns: RELAY
/* これは よいのですか? それでは */
> ${client_addr}
Undefined
> ${client_name}
yahoo.com.tw
> .D{client_addr}219.133.247.112 /* {client_addr}を 決めてやります */
> ${client_addr}
219.133.247.112
> ${client_name}
yahoo.com.tw
/* これは 当然 おかしな組合せに なっているはずです ここで 次の試験をします */
> check_rcpt popogigi1975@yahoo.com.tw
...
Relay_ok returns: yahoo . com . tw
Basic_check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
/* 結果は "550 Relaying denied" ですが これは 試験方法 も 含めて 良いのでしょうか? */
/* 最後に これをやっておきましょう 送信者メールのアドレスを 決めてみます */
> ${client_addr}
219.133.247.112
> ${client_name}
yahoo.com.tw
/* 此処までは変化しません そのままの状態です */
> .Dfdgsergser@aol.com /* 送信者メールのアドレスを 決める */
> $f
dgsergser@aol.com /* 確認 */
/* さて 受信者を 決めねばいけんのかも しれません が */
/* わからないので 送信者受信者 同じで まず 試験を してみましょう */
> check_rcpt dgsergser@aol.com
...
Relay_ok returns: yahoo . com . tw
Basic_check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
/* 結果は "550 Relaying denied" と云うことです */
/* もう一つ メールアドレスが 有りました popogigi1975@yahoo.com.tw */
/* これで 試験をしてみましょう */
> ${client_addr} /* 発信者のIPアドレス */
219.133.247.112
> ${client_name} /* 発信者のFQDN */
yahoo.com.tw
> $f /* 発信者のメールアドレス */
dgsergser@aol.com
> check_rcpt popogigi1975@yahoo.com.tw
...
Relay_ok returns: yahoo . com . tw
Basic_check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
/* 結果云々は "550 Relaying denied" です 試験方法自体 吟味必要ですが */
注意 試験方法自体 意味が有るのかどうか 含めて 吟味する必要が有ります これは 悪魔で 試行錯誤の結果にしかすぎません
ルールを 見る方法として 以下の様な方法が 有るようです
> =Scheck_rcpt
R$* $: $1 $| $> Local_check_rcpt $1
R$* $| $# $* $# $2
R$* $| $* $@ $> Basic_check_rcpt $1
> =SBasic_check_rcpt
R< > $# error $@ nouser $: "553 User address required"
R$@ $# error $@ nouser $: "553 User address required"
R$* $: < $&{deliveryMode} > $1
R< d > $* $@ deferred
R< $* > $* $: $2
R$* $: $1 $| @ $> Rcpt_ok $1
R$* $| @ $# TEMP $+ $: $1 $| T $2
R$* $| @ $# $* $# $2
R$* $| @ RELAY $@ RELAY
R$* $| @ $* $: O $| $> Relay_ok $1
R$* $| T $+ $: T $2 $| $> "Relay_ok" $1
R$* $| $# TEMP $+ $# error $2
R$* $| $# $* $# $2
R$* $| RELAY $@ RELAY
RT $+ $| $* $# error $1
R$* $# error $@ 5 . 7 . 1 $: "550 Relaying denied"
> =SRelay_ok
R$* $: $&{client_addr}
R$@ $@ RELAY
R0 $@ RELAY
R127 . 0 . 0 . 1 $@ RELAY
RIPv6 : : : 1 $@ RELAY
R$=R $* $@ RELAY
R$* $: $> A < $1 > < ? > < + Connect > < $1 >
R< RELAY > $* $@ RELAY
R< < TMPF > > $* $# TEMP $@ 4 . 3 . 0 $: "451 Temporary system failure. Please try again later."
R< $* > < $* > $: $2
R$* $: [ $1 ]
R$=w $@ RELAY
R$* $: < $&{client_resolve} >
R< TEMP > $# TEMP $@ 4 . 7 . 1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
R< FORGED > $# error $@ 5 . 7 . 1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
R< FAIL > $# error $@ 5 . 7 . 1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
R$* $: < @ > $&{client_name}
R< @ > $* $=P $: < ? > $1 $2
R< @ > $+ $: < ? > $[ $1 $]
R$* . $1
R< ? > $=w $@ RELAY
R< ? > $=R $@ RELAY
R< ? > $* $: < $( access Connect : $1 $: ? $) > < $1 >
R< ? > < $* > $: < $( access $1 $: ? $) > < $1 >
R< RELAY > $* $@ RELAY
R< $* < TMPF > > $* $# TEMP $@ 4 . 3 . 0 $: "451 Temporary system failure. Please try again later."
R< $* > < $* > $: $2
にゃんたろう 拝!
2006年 9月17日 (日) 21:38:17 JST 作成