Top過去ログ目次掲示板

作成日:2004年01月15日 作成:おやじ
掲示板で過去に質問された内容です。

No.2368 自宅外からメール送信できません。


No.2368 投稿時間:2004年01月15日(Thu) 20:35 投稿者名:D.H URL:
タイトル:自宅外からメール送信できません。

こんばんは。
おやじさん、今年もよろしくお願いします。

以前、SMTP-AUTHが上手くいかず質問しましたが、
今に至るまで外部からメール送信することはありませんでした。
しかし、外部からメール送信する必要が出てきたので、先日、自宅外からメール送信してみたところ、
「受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。
拒否された電子メール アドレス : ****@***.** 件名 '****', アカウント : '****.**',
サーバー : '****.**', プロトコル : SMTP, サーバーの応答 : '554 <****@***.**>: Recipient address rejected: Relay access denied', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 554,
エラー番号 : 0x800CCC79」
となり送信できません。
色々テストしてみたころ、
LAN内から
○MyDomain→MyDomain
○ISP→MyDomain
○MyDomain→ISP

自宅外から
○MyDomain→MyDomain
○ISP→MyDomain
×MyDomain→ISP
となり、自宅外でMyDomainからISPのメールアドレスへの送信だけができませんでした。

サーバーのログを見てみたところ、
reject: RCPT from ****.jp[***.***.***]: 554 <*****@****.ne.jp>: Recipient address rejected: Relay access denied; from=<******@MyDomain> to=<****@****.ne.jp> proto=ESMTP helo=<pc02>
と出力されていました。
この情報をもとにネットで調べてみましたが、解決には至りませんでした。

postconf -nで出力したmain.cfは
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = no
broken_sasl_auth_clients = yes
command_directory = /usr/local/postfix/bin
config_directory = /etc/postfix
daemon_directory = /usr/local/postfix/bin
debug_peer_level = 2
home_mailbox = Maildir/
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/local/postfix/mailq
manpage_directory = /usr/local/postfix/man
mydestination = $myhostname, localhost.$mydomain $mydomain
mydomain = ****.****.jp
myhostname = host.****.****.jp
mynetworks = 192.168.10.0/28, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/local/postfix/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/local/postfix/sendmail
setgid_group = postdrop
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains, reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous noplaintext
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 450
です。

postfixのバージョンは2.0.16です。
ご教示のほどよろしくお願い致します。


No.2371 投稿時間:2004年01月15日(Thu) 22:05 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:2.0系なら設定が違います。

こんばんは。

> smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains, reject
(snip)
> postfixのバージョンは2.0.16です。

HPを見てください。2.0系なら設定が違います。SMTP-AUTHではわかりにくかったら、SMTP-AUTH-TLSのほうを見てください。こちらは、2.0系ベースなのでわかりやすいでしょう。


No.2378 投稿時間:2004年01月17日(Sat) 00:00 投稿者名:D.H URL:
タイトル:Re: 2.0系なら設定が違います。

こんばんは。

> > smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains, reject
> (snip)
> > postfixのバージョンは2.0.16です。
>
> HPを見てください。2.0系なら設定が違います。SMTP-AUTHではわかりにくかったら、SMTP-AUTH-TLSのほうを見てください。こちらは、2.0系ベースなのでわかりやすいでしょう。

TLSのページを参考にして、
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
とやって試してみましたが、ダメでした。
他に何か原因があるのでしょうか?


No.2381 投稿時間:2004年01月17日(Sat) 10:54 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:SMTP-AUTHでアクセスしてますか?

SMTP-AUTHでアクセスしてますか?
HPにあるように、smtpd_recipient_restrictions の設定では、リレーを許可するものを設定しますが、

1. permit_mynetworks : mynetworksで指定されたネットワークからのリレーを許可。
  つまり、これで家庭内からはどこへでも送信できるようになる。
2. permit_sasl_authenticated : SMTP認証を通過したものは許可。
これで、SMTP認証がOKならどこへでも遅れるようになる。
3. reject_unauth_destination : 目的地が $inet_interfaces、$mydestination $virtual_alias_domains
または $virtual_mailbox_domains にマッチするアドレス宛のメール、及び$relay_domains にマッチする
目的地へのメール以外を拒否。
これで、このサーバが管理しているドメイン宛(即ち、家庭内向け)のメールは許可される。

ということで、外部から外部へ送るには2で許可しているので、SMTP-AUTHでアクセスしなければだめです。
これで、外部からの不正中継をガードしているのですから。


No.2383 投稿時間:2004年01月17日(Sat) 14:37 投稿者名:D.H URL:
タイトル:上手くいきました。

こんにちは。

> SMTP-AUTHでアクセスしてますか?

OutLook(OE含)でメールを送信する際、認証するように設定していたのですが、
maillogを見ると、
「sasl_method=LOGIN, sasl_username=user」

「SASL PLAIN authentication failed」
という出力がなく、認証されていませんでした。
(というよりSASL-AUTHが機能していなかったのかも)

> HPにあるように、smtpd_recipient_restrictions の設定では、リレーを許可するものを設定しますが、
>
> 1. permit_mynetworks : mynetworksで指定されたネットワークからのリレーを許可。
>   つまり、これで家庭内からはどこへでも送信できるようになる。
> 2. permit_sasl_authenticated : SMTP認証を通過したものは許可。
> これで、SMTP認証がOKならどこへでも遅れるようになる。
> 3. reject_unauth_destination : 目的地が $inet_interfaces、$mydestination $virtual_alias_domains
> または $virtual_mailbox_domains にマッチするアドレス宛のメール、及び$relay_domains にマッチする
> 目的地へのメール以外を拒否。
> これで、このサーバが管理しているドメイン宛(即ち、家庭内向け)のメールは許可される。
>
> ということで、外部から外部へ送るには2で許可しているので、SMTP-AUTHでアクセスしなければだめです。
> これで、外部からの不正中継をガードしているのですから。

おっしゃる通りです。
私も、2がおかしいと思い、クライアントやサーバーの設定を何度も確認したのですが、
目立っておかしいところはありませんでした。
そこで、main.cf.origをコピーして、始めから設定し直したころ上手くいきました。
おそらく、1.0系から2.0系にバージョンアップした際、横着して1.0系のmain.cfを流用していたのが
いけなかったのかもしれません。
お手数をお掛けして申し訳ございませんでした。
今後は横着せず、いちから設定します。



掲示板▲頁先頭