2010年12月24日

[postfix-jp: 3880]postfix + stunnel の relayhost における localhost と 127.0.0.1 の動作について

postfix + stunnel の relayhost における localhost と 127.0.0.1 の動作について

竹内と申します。

以前、
[postfix-jp: 3668] relayhost で SMTP over SSL/TLS は使えますか?(OP25B 対策)
http://www.postfix-jp.info/ML/arc-2.4/msg00666.html

を投稿し、解決策をご教示頂き、最近まで順調に運用していましたが、
(恐らく)postfix 2.7.2 へのバージョンアップにより、問題が生じました。

やっていることは

「OP25B 対策として自宅サーバーから外部へのメールを ISP(朝日ネット)のメールサーバーに
stunnel 経由 の SMTP over SSL/TLS で relayhost する」

です。

バージョンアップ前までは postfix の main.cf にて

relayhost = [localhost]:10465
( 10465 は stunnel の待ち受けポート)

で、外部へメールが配送出来ていたのが、バージョンアップ後は

maillog に

Dec 21 08:25:46 home postfix/smtp[62954]: warning: relayhost configuration probl
em
Dec 21 08:25:46 home postfix/smtp[62954]: 24FD11147A:
to=<exsample@xxxxx>,
relay=none, delay=1, delays=0.17/0.33/0.51/0, dsn=4.3.5, status=deferred (Host
or domain name not found. Name service error for name=localhost
type=A: Host foun
d but no data record of requested type)

となり、外部へ配送出来なくなりました。
エラーを見ると、「localhost なんか知らないよ」と言っているので、

relayhost = [127.0.0.1]:10465

としてみると、再び配送出来るようになりました。

この自宅サーバーはルーターの配下にプライベートIP を振ってあり、ローカル DNS は立てていません。
resolv.conf の nameserver には、ISP の DNS サーバーを指定しています。
バージョンアップ前の postfix は relayhost 先について /etc/hosts を参照してくれていたのが、
バージョンアップ後は、ISP の DNS サーバーに localhost を参照しに行って、不明となり、上記の
エラーとなったのではないかと想像し、この自宅サーバーにローカル DNS を立てて、resolv.conf の
nameserver を 127.0.0.1 とすると

relayhost = [localhost]:10465

でも、再び配送出来るようになりました。

さて、自宅サーバーにおいて、ローカル DNS を立てない状況で

# telnet localhost 10465
# ping localhost
は意図したように動きますが

# nslookup localhost

Non-authoritative answer:
*** Can't find localhost: No answer

となります。
つまり、/etc/hosts を参照しにいくかどうかは、アプリケーションに依存しており、
postfix 2.7.2 の relayhost では参照しなくなったのではないかと考えているのですが、これで
正しいのでしょうか?
あるいは、私のような自宅サーバーの場合、ローカル DNS を立てるのが当たり前など、
OS, postfix 等の設定が間違っているのでしょうか?

以上についてご意見を賜りたく、今回投稿させて頂く次第です。
どうぞよろしくお願いします。

最後に、現在の環境・設定を添付いたします。

■ 環境

8.1 FreeBSD 8.1-RELEASE-p2
postfix 2.7.2,1
cyrus-sasl-2.1.23_1
stunnel-4.34_1

■ postfix( postconf -n)
taRgrey http://k2net.hakuba.jp/targrey/)を使用しています。

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_mail_to_commands = alias,forward,include
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:[127.0.0.1]:10026
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
html_directory = /usr/local/share/doc/postfix
inet_interfaces = all
mail_owner = postfix
mailbox_size_limit = 0
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = exsample.com
myhostname = abc.exsample.com
mynetworks = 192.168.0.0/24 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
receive_override_options = no_address_mappings
relayhost = [127.0.0.1]:10465
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = cram-md5,digest-md5,plain,login
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/isp_passwd
smtp_sasl_security_options = noanonymous, noplaintext
smtpd_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_recipient_access hash:$config_directory/whitelist_recipient
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
smtpd_helo_required = yes
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_client_access
regexp:$config_directory/filter_spampd
check_recipient_access hash:$config_directory/whitelist_recipient
check_client_access hash:$config_directory/whitelist_client
check_client_access
regexp:$config_directory/permit_client_nots25r
reject_invalid_hostname
reject_non_fqdn_sender
reject_unknown_sender_domain
reject_non_fqdn_recipient
reject_multi_recipient_bounce
check_helo_access regexp:$config_directory/reject_helo
check_sender_ns_access hash:$config_directory/reject_ns
check_sender_mx_access hash:$config_directory/reject_mx
check_sender_ns_access regexp:$config_directory/check_ns
check_policy_service unix:private/spf-policy
check_policy_service inet:60000
check_client_access regexp:$config_directory/prepend_client
permit
smtpd_restriction_classes =
check_sender_info
reject_client_blackip
unknown_local_recipient_reject_code = 550

■ isp_passwd

[127.0.0.1]:10465 isp_id:password


# postmap isp_passwd

■ stunnel.conf

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = SSLv3

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/run/stunnel
setuid = stunnel
setgid = stunnel
; PID is created inside the chroot jail
pid = /stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = zlib

; Some debugging stuff useful for troubleshooting
debug = 7
output = /stunnel.log

; Use it for client mode
client = yes

; Service-level configuration

[ssmtp]
accept = 127.0.0.1:10465
connect = mailssl.asahi-net.or.jp:465

以上

_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list


投稿者 xml-rpc : 2010年12月24日 04:49
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100941
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。