FreeBSD QandA 789
Q. natd + qmail でプライベートネットワーク内のメイルサーバへメールを配
送しようとしています。ところが、プライベートネットワーク内から外へメー
ルできるんですが、外から内へはメールできなくて
hoge@hoge_domain... Deferred: Operation timed out with pis.toba-cmt.ac.jp.
というエラーメールが返ってきます。何がいけないんでしょう。
A. これは MTA が MX を引いた後、natd マシン上で TCP の 25 番で相手と通
信したけれど相手にしてくれるプログラムがいなかった時のメッセージです。
natd では divert ソケットと共に用いてマシンに入ってくるパケットについ
ては指定された変換テーブルに従ってプライベートアドレスに変換し、外部へ
のパケットについては発信元 IP アドレスを現在のマシンのものにするという
変換を行います。したがって、natd は外部からきたパケットについてはいわ
ば関所のような働きをするわけで、このとき通行手形にあたるものが変換テー
ブルとなるわけです。通常変換テーブルは -redirect_port や
-redirect_address でユーザが指定したものです。ただし、-deny_incoming
を no にするとユーザ指定外のパケットも通してしまいますので、普通はこれ
を yes にして必要外のパケットは通さないようにし、必要なものだけ
-redirect_port や -redirect_address で指定します。
まずあなたの指定した natd.cf ファイルを見てください。
"-deny_incoming yes" にもかかわらず -redirect_port で 25 番ポート (こ
れ SMTP の TCP ポート番号ですね :) を指定していないんじゃないですか?
deny_incoming yes
redirect_port tcp internal_mail_server_address:25 25
を指定してください。また、qmail を御使いですから natd マシン上では
qmail コントロールファイル smtprouts の中に
.internal_domain_name:
:internal_mail_server_name.internal_domain_name
を作っておかなければなりません。これは内部から外部へは配送できているの
で大丈夫でしょう。
[参考資料: natd(8), qmail-control(5), qmail-remote(8)]
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。