先日はProftpdのパスワードの件でお世話になりました.吉田と申します.
今回お教え頂きたいのはPostfixのSMTP-Authの事です.
TLSを使わないので,おやじさんの
http://www.aconus.com/~oyaji/mail2/smtp-redhat.htm
を読みながらSMTP-Authの所を設定し,qpopperも設定しました.
PostfixはRedHat9 FTP版に入っていたものを使っています.
WAN側からメールが送信できるかを確認するため
smtpd_recipient_restrictions =のところのpermit_mynetworksを削除してテス
トしているのですが,
Outlook Expressで「このメールサーバーは認証が必要」にチェックを入れて
メールを送信するとパスワードを何度も要求されてメールが送信できません.
このチェックをはずすとメールが送信できるのです.
原因がつかめず,何か設定するところが抜けているのかご教示頂きたく存じます.
◆詳細は以下のとおりです◆
一通り設定して,
Linuxマシンとクライアントマシン(Windowsマシン)をクロスケーブルで接続し,
Outlook Expressの設定で「このメールサーバーは認証が必要」にチェックを入れて,
ユーザー名とsaslpasswdで登録したユーザー名とパスワードを設定して,
Outlook Expressでメールの送信/受信テストをしているのですが
認証でパスワードを求められます. パスワードやユーザー名は間違いなく設
定しているのですが.
#sasldblistuserでは登録されていることは確認出来ています.
また,telnetで25番ポートに接続してEHLO localhostと入力してみたのですが,
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
と表示されるのでSMTP-AUTHは設定できにように見えるのですが.
◆main.cfは次のように設定しています◆
【01】queue_directory = /var/spool/postfix
【02】command_directory = /usr/sbin
【03】daemon_directory = /usr/libexec/postfix
【04】mail_owner = postfix
【05】myhostname = mail.test.jp
【06】mydomain = test.jp
【07】myorigin = $myhostname
【08】inet_interfaces = all
【09】mydestination = $myhostname, localhost.$mydomain $mydomain
【10】mynetworks = 168.0.0.0/24, 127.0.0.0/8
【11】relay_domains = $mydestination
【12】alias_maps = hash:/etc/postfix/aliases
【13】mail_spool_directory = /var/spool/mail
★↑↑IMAPを使わないのでこのようにしています.
【14】debug_peer_level = 2
【15】debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
【16】sendmail_path = /usr/sbin/sendmail
【17】newaliases_path = /usr/bin/newaliases.postfix
【18】mailq_path = /usr/bin/mailq.postfix
【19】setgid_group = postdrop
【20】manpage_directory = /usr/share/man
【21】sample_directory = /usr/share/doc/postfix-1.1.11/samples
【22】readme_directory = /usr/share/doc/postfix-1.1.11/README_FILES
【23】alias_database = hash:/etc/postfix/aliases
【24】smtpd_sasl_auth_enable = yes
【25】smtpd_sasl_security_options = noanonymous
【26】smtpd_sasl_local_domain = $mydomain
【27】smtpd_recipient_restrictions = permit_sasl_authenticated, check_relay_domains, reject
★↑↑LAN内でテストするため permit_mynetworksをはずしています.
【28】broken_sasl_auth_clients = yes
===================================================
長くなってしまいましたが,アドバイスよろしくお願いします.
こんばんは。
> WAN側からメールが送信できるかを確認するため
> smtpd_recipient_restrictions =のところのpermit_mynetworksを削除してテス
> トしているのですが,
削除する必要はなく、下記で設定してあればこのクライアントの認証は入るはずです。
> Outlook Expressで「このメールサーバーは認証が必要」にチェックを入れて
> メールを送信するとパスワードを何度も要求されてメールが送信できません.
> このチェックをはずすとメールが送信できるのです.
saslで失敗しているのではないでしょうか?sasldbのownerやパーミッションはPostfixが
読めるようになっていますか?試験的にパーミッションを777にしてみてもわかると思います。
いずれにしても、ログがどうなっているかをみるとヒントがあるはずです。(これ、基本です。)
> 【10】mynetworks = 168.0.0.0/24, 127.0.0.0/8
これは明らかにおかしいです。168.0.0.0/24はグローバル空間です。家庭内で使用して
いるネットワーク(192.168.0.0/24とか192.168.1.0/24と思いますが・・・)を指定して
ください。(単なるミスタイプ?)
おやじさん
さっそくコメントありがとうございます.
> 【10】mynetworks = 168.0.0.0/24, 127.0.0.0/8
これは確かに記述ミスでした.お恥ずかしいです (^^;)
パーミッションも確認は確認しているのですが,
もう一度maillogとそれ以外の設定も確認してみます.
それではまた.
補足なんですが、saslが動作せずハマる原因として sasldblistusersで表示する
サーバ名と /etc/postfix/main.cf内の smtpd_sasl_local_domain行のサーバ名
を一致させる必要があります。
> #sasldblistuserでは登録されていることは確認出来ています.
ここのサーバ名が mail.test.jpになっていると、
【26】smtpd_sasl_local_domain = $mydomain
↓
【26】smtpd_sasl_local_domain = $myhostname
このようにしなくてはいけません。
おやじさん、ごぶさたしています。D.Hです。
吉田さんはじめまして、横から失礼します。
SMTP-Authが上手くいかないとのことですが、私ももろはまり、おやじさんに質問したことがあります。
このBBSの過去ログを見れば、解決できますよと言いたいのですが、ないようなので。
吉田さんは、main.cfを
> 【05】myhostname = mail.test.jp
> 【06】mydomain = test.jp
> 【07】myorigin = $myhostname
> 【08】inet_interfaces = all
(中略)
> 【24】smtpd_sasl_auth_enable = yes
> 【25】smtpd_sasl_security_options = noanonymous
> 【26】smtpd_sasl_local_domain = $mydomain
と設定していますが、これだと認証に失敗します。
私と同じことしています。
試しに、
【26】smtpd_sasl_local_domain = $mydomain
を
smtpd_sasl_local_domain = $myhostname
に修正してください。これで上手くいくはずです。
なぜなら、smtpd_sasl_local_domainの値とsasldblistusersを実行した際のrealmが一致しないと認証に失敗するからです。ちなみにデフォルトはsmtpd_sasl_local_domain=$myhostnameです。
U-mexさん、D.Hさん、こんばんは。
これで当たりでしょうね。
> 吉田さんは、main.cfを
>
> > 【05】myhostname = mail.test.jp
> > 【06】mydomain = test.jp
> > 【07】myorigin = $myhostname
> > 【08】inet_interfaces = all
> (中略)
> > 【24】smtpd_sasl_auth_enable = yes
> > 【25】smtpd_sasl_security_options = noanonymous
> > 【26】smtpd_sasl_local_domain = $mydomain
>
> と設定していますが、これだと認証に失敗します。
> 私と同じことしています。
> 試しに、
> 【26】smtpd_sasl_local_domain = $mydomain
> を
> smtpd_sasl_local_domain = $myhostname
> に修正してください。これで上手くいくはずです。
> なぜなら、smtpd_sasl_local_domainの値とsasldblistusersを実行した際のrealmが一致しないと認証に失敗するからです。ちなみにデフォルトはsmtpd_sasl_local_domain=$myhostnameです。
以前、どこかにこの問題を書いたのはずと思って見直したら、SMTP-AUTH+TLSのところに書いてありました。ボケが始まっている。もう容量オーバ・・・・かな。
SMTP-AUTHの方も直しておきます。ただ、おやじの設定は、MXを使うとホスト名が設定できないzive固有の問題なので、デフォルトのmyhostnameで統一したほうがいいですね。
# ローカル認証 realm の名前を設定
# デフォルトはmyhostnameであるが、1台しかサーバがないのでここではmydomainを指定。
# なお、ここでの設定は、myoriginの設定と後述するsaslpasswdの設定時のmydomainの設定の3個所が
# 同一でないとエラーとなるので注意が必要。
D.Hさん、おやじさん、どうもです。
> SMTP-Authが上手くいかないとのことですが、私ももろはまり、おやじさんに質問したことがあります。
> このBBSの過去ログを見れば、解決できますよと言いたいのですが、ないようなので。
過去ログ487にありました。
この時も、私やD.Hさん、おやじ殿のレスのやり取りがありましたね。
U-mexさん、どうもです。
> > SMTP-Authが上手くいかないとのことですが、私ももろはまり、おやじさんに質問したことがあります。
> > このBBSの過去ログを見れば、解決できますよと言いたいのですが、ないようなので。
>
> 過去ログ487にありました。
過去ログありましたね。BBSのトップページの下にある各ページにはなかったので、
過去ログはないのかと思い込んでいました。
> この時も、私やD.Hさん、おやじ殿のレスのやり取りがありましたね。
あのときは、おやじさん、U-mexさんに助けて頂きました。
吉田さんへ。過去ログ487を見れば、少しは参考になると思いますよ。
たくさんコメント頂いてありがとうございます.
これから,設定をもう一度見直してみます.
それでもうまくできなければ,また質問させてください.
先日はアドバイス頂きありがとうございました.
その後いろいろとチャレンジしてみたのですが,どうしても認証に失敗してしまう状態が続いています.
OutlookExpress Ver6で接続したときのmaillogを見ると
mail postfix/smtpd[895]: connect from unknown[192.168.0.18]
mail postfix/smtpd[895]: warning: unknown[192.168.0.18]: SASL LOGIN authentication failed
mail postfix/smtpd[895]: disconnect from unknown[192.168.0.18]
となっています.
どこか根本的な所で私が間違っているようなんですが,それがどこなのか判らなくて.何かヒントを頂けないでしょうか.
前にも書きましたが、main.cfの
smtpd_sasl_local_domain = $mydomain
を
smtpd_sasl_local_domain = $myhostname
に修正しましたか?
もし修正したなら、その後Postfixを再起動させましたか?
再起動しないと、修正した内容が有効になりません。
それと、もう1箇所気になった点があります。
main.cfでmyorigin = $myhostnameとなっているので、これをmyorigin = $mydomainに変更してみてください。
設定の方はこれで問題ないと思いますが、念のためパスワードを最初から作り直してください。
その際、saslpasswd –c –u test.jp usernameではなく、saslpasswd –c –u mail.test.jp username
としてください。
これで上手くいくはずです。
テストするときは、メーラーは使わず、まずサーバー上で行ってください。
理由は、上手くいかなかったとき、原因を切り分けしやすくするためです。
テスト方法はおやじさんのページを見てください。
なんか、文字化けしていたみたいです。
> その際、saslpasswd –c –u test.jp usernameではなく、saslpasswd –c –u mail.test.jp username
> としてください。
saslpasswd -c -u test.jp usernameではなく、saslpasswd -c -u mail.test.jp usernameとしてください。
そう言えば、/etc/postfix/master.cfにも
smtp inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
…これが必要なのかな? 私のmaster.cfにはこれが書いてあるので一応
おまじないとして追加してはどうでしょうか?
お世話になります.
いままでご教示頂いた通にしているのですが,
パスワードのエンコードの所がうまく出来ていない模様です.
# printf 'yoshida\0yoshida\0passwd' | mmencode
と入れると
-bash: mmencode: command not found
と出ます.
RedHat9でFTPからダウンロードしてCDに焼いた物を使っているのですが,何か他
のパッケージ類をインストールする必要があるのでしょうか.
サーバーでtelnetを使ってlocalhost 25に接続すると
下記のように表示されているので,
「250-AUTH………」が確認できるのでここはokと思うのです.
ここはOKと思うのですが.
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.test.jp ESMTP Postfix
EHLO localhost
250-mail.test.jp
250-PIPELINNING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
アドバイスよろしくお願いします.
> パスワードのエンコードの所がうまく出来ていない模様です.
>
> # printf 'yoshida\0yoshida\0passwd' | mmencode
> と入れると
> -bash: mmencode: command not found
> と出ます.
これは、メッセージの通り、mmencodeと言うコマンドは存在しないということです。
私も、このメッセージが出たことがあります。
このコマンドを使用するには、別途プログラムをインストールする必要があります。CDにも入っているはずです。
> > パスワードのエンコードの所がうまく出来ていない模様です.
> >
> > # printf 'yoshida\0yoshida\0passwd' | mmencode
> > と入れると
> > -bash: mmencode: command not found
> > と出ます.
>
> これは、メッセージの通り、mmencodeと言うコマンドは存在しないということです。
> 私も、このメッセージが出たことがあります。
> このコマンドを使用するには、別途プログラムをインストールする必要があります。CDにも入っているはずです。
そうですね。
私は Redhatじゃなく Vineを使用しているので確認取れていないのですが
mmencodeが入っているパッケージは metamailか mm辺りにありそうな気が
します。
そのパッケージが RH9-CDにあるかどうかは不明ですが…。
> mmencodeが入っているパッケージは metamailか mm辺りにありそうな気が
> します。
> そのパッケージが RH9-CDにあるかどうかは不明ですが…。
mmencode は聞きなれた名前でないのでおや?と思いましたが
mimencode と同じなのですね。mimencodeなら入っていると思います。
Res頂いているのにお返事できなくてスミマセン.
サーバーのハードディスクがクラッシュしてしまい大変なことになってしまい
お教え頂いたことを実行して報告する時間がありません.
バックアップを取ろうかと思っていた矢先のクラッシュで大泣き状態です.
吉田さんと同じくSMTP-AUTHで詰まっている者です。
mmencodeは、xemacsを導入すると、/usr/lib/xemacs-XXXXX/i386-XXXXXX/に入ってます(XXXはバージョン名なのでご自分の環境で確認してください)。もともとはmetamailに含まれているらしいですね。
SMTP-AUTHについてはこちらのログを参考にがんばってみます。うまくいったら報告させていただきます。
できないできないといろいろいじくり回した結果、なにが幸いしたか不明ですが動きました。
ただ、こちらのサイトがあったからうまくいったのは間違いないありません。ありがとうございました!
調子に乗ってvncserverをぶち込んで、サーバ(液晶パネルが故障したノート)はモニタなし運用できるところまでいきました。これからもこちらを参考にさせていただきます!