web-dev-qa-db-ja.com

Postfix、saslauthd、mysql、smtp認証の問題

メールサーバー(ubuntu 10.04)で認証を取得しようとしていますが、問題が発生しています。 SMTPセットアップ用のpostfix付きサーバー、宅配便セットアップ付きのimapサーバーがあります。私の接尾辞認証はcyrus(私は実際にdovecotを試していません)saslauthを使用しています。ユーザー名とパスワードはMySqlデータベースに保存されます。 imap-sslを使用したログインは、リモートクライアント(Thunderbird)で機能し、メールを読むことができます。 SMTP側を機能させることができず、問題をsaslauthに集中させました。

でテストする

testsaslauthd -u 'username' -p 'passowrd' -s smtp 

戻り値

connect() : Permission denied

データベース内のパスワードは暗号化されており、このtestsaslauthdはプレーンテキストのパスワードを使用して暗号化すると思います。

これを機能させる方法を教えてくれる人を探しています。メールサーバーは初めてで、完全に機能するものはありません。ありがとう。どのログファイルを確認/投稿する必要があるか、どのテストを実行するか、確認する権限を尋ねてください。

編集:(3/26/2012)詳細については、メールクライアントを動作させることができません。次のようなエラーが発生します。

The message could not be sent because connecting to SMTP server <mydomain.com> failed. The server may be unavailable or is refusing SMTP connections

Iptablesでそれぞれのポートを開いていますが、上記で実行したテストのため、内部の問題であると推測しています。また、telnetmail.mydomain.com 25に実行してehlo localhostを実行し、これを取得しました

250-mail.domain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

編集:(3/28/2012 2:45 pm)

~$ postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mime_header_checks = regexp:/etc/postfix/mime_header_checks
mydestination = mail.mydomain.co, localhost, localhost.localdomain
myhostname = mail.mydomain.co
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
readme_directory = no
recipient_delimiter = +
relayhost =
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-forwards.cf, mysql:/etc/postfix/mysql-email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-mailboxes.cf
virtual_uid_maps = static:5000

編集:解決済み(2012年3月29日)@ AveryPaneと@ malloc4kの両方に私を正しい方向に向けてくれてありがとう。私がしなければならなかったいくつかのことは、私のMXレコードが適切な順序になっていることを確認してください。サーバーが接続を受け入れているかどうかを確認するために、ツールintodns.comと http://www.mxtoolbox.com を使用しました。次に、tail -fを使用して、エラーがないかログを監視し、DNSレコードを整理し、いくつかの構成ファイルを微調整すると、実際に何かがログに記録されていることを確認しました。

私が知らなかった2つのことは、一部のISPがポート25をブロックしていることでした。これは、私の場合、Thunderbirdがポート25でサーバーを認識していなかった理由である可能性があります。ファイル/etc/postfix/master.cfの2番目に設定があります。 postfixがリッスンできるようにするポートについて。デフォルトのポート25は回線です

smtp      inet  n       -       -       -       -       smtpd

これは基本的にhiim postfixと言っています、私はポート25で実行します。メールサーバーで人気のある別のポート587でpostfixを実行したい場合は、master.cfの近くにこの行を追加してください

587      inet  n       -       -       -       -       smtpd

再起動/etc/init.d/postfix restartを実行すると、設定されているはずです。それが私にとっての解決策でした。

4
italiansoda

これを機能させる方法を教えてくれる人を探しています。メールサーバーは初めてで、完全に機能するものはありません。

私の友人、Eメール地獄へようこそ。あなたは良い仲間です。まず、電子メールサーバーの実行に真剣に取り組んでいる場合は、勉強したいと思うでしょう。電子メールはほとんどのユーティリティサービスのようです-当然のことと思われますが、それを機能させるために必要な努力について誰も考えたくありません。優れた(そしてありがたいことに簡単な)O'Reillyの本 Postfix:The Definitive Guide をお勧めします。これは、Postfixを実行するための優れた情報源です。

グローバルな電子メールシステムの多くは基本的にお互いの配達を踏みにじらないという紳士協定の集まりであるため、私はいくつかの基本的な「ゲームのルール」についても読むのに時間がかかります。確かに、 RFC 2142 などのようなドキュメントの厚い山を通り抜けることはできますが、これをいくつかの簡単なルールに要約できると思います。

  • 責任ある管理者になります。つまり、機能的な[email protected]アドレスと、実際にはビットバケット。これらを/ dev/nullに送信することは、ブラックリストに登録するもう1つの優れた方法です。結局のところ、問題について他の人の話を聞かない人に対処したいのは誰ですか彼らが作っているのですか?
  • あなたはコミュニティの一員になりました。つまり、あなたは物事を成し遂げた他の管理者に出くわすでしょう、えーと、異なってそして物事を成し遂げる方法について異なる意見を持つでしょう。彼らが賢明であるか、それに理由がある限り、ただリラックスして聞いてください。
  • このコミュニティでは、あなたはあなた自身のサーバーに責任があります。他の人があなたが不当なことをしているのを見つけた場合(スパムオープンリレーであるなど-瞬間)あなたは短い順序でブラックリストに載せられます。正しいことをするために最善を尽くします。
  • 独自のサーバーを実行するということは、サーバーにリソースを費やしたことを意味します。スパマー(「メールマーケター」を装った)に惑わされないでください彼ら彼らがやりたいことを何でもする権利がありますあなたのリソース。私はこれを「しかし、しかし、しかし、それはあなたの決定ではなく、受信者の決定であり、あなたは私の電子メールを通過させなければならない」という形でよく耳にします。あなたの応答は常に「それはmy決定であり、それはmyサーバーであり、そしてyoは私のブラックリストの色あせた記憶です」であるはずです。
  • 他のサーバーは使用するリソースではありません。他の人の親切と配慮からそれらを使用します。他の管理者に親切にし、サーバーに大量の電子メールを送信することに関する「黄金律」を覚えておいてください。誰かが電子メールメッセージをサーバー上の2,000の異なるメールボックスに転送し、配信を数分間拘束した場合、それを希望しますか?
  • すべてをセットアップしてしばらく実行した後、戻ってログを定期的にチェックします。はい、1時間あたり数千のエントリは、(a)豚肉の副産物を受信トレイに配信するか、(b)あなたを他の誰かに配信するための出発点として使用しようとするスパマーです。それは私たちを導きます...
  • スパマーは数か月ごとに戦術を変更します。通常、迷惑行為をなくすには、スパム対策設定を少し調整するだけで十分です。
  • $ {DIETY}を愛するために、インターネットのパブリック側でオープンリレーを実行しないでください。オープンリレーの概念、つまり誰からでもメールを受け取り、どこにでも配信できるマシンは、インターネットがより親切で穏やかな場所だった昔の遺物です。今日の時代には、スパマーはあなたを見つけ、あなたのマシンを彼ら自身の個人的な電子メール機関銃に変え、その過程であなたの良い名前をだましてしまうでしょう。
  • サーバーを気にしない管理者に遭遇し、防御的なドライバーが道路上の他の(愚かな)ドライバーを探すように、あなたはそれらに注意する必要があります。
  • 悪い管理者は通常悪いサーバーを構成します。ただ手っ取り早く金を稼ぎたいだけの商用プロバイダーがあり、彼らは誰に何が起こっても気にしませんそれ以外の場合は、サーバーを「大胆に破壊」します。これは、あなたが愚かなことをするサーバーに出くわすことを意味し、何人かの管理者があなたと電話に出て、なぜそれが「あなたの問題」であり、彼らではないのかについて唾を吐きたいでしょう。サーバーを再確認し、それが本当にあなたではないことを確認してから、4人の手がかりで彼らのエラーを丁寧に知らせてください...

まだまだたくさんありますが、これらの基本的なことで正しい方向に向けることができます。


メールクライアントを動作させることができません、

質問の「クライアントが送信できない」部分に関しては、問題はメールを受け入れるドメインに関連しています。具体的には、あなたの投稿は次のように述べています。

mydestination =
myhostname = my.domain.com

それらは両方とも正しくありません。 here を見てmydestinationパラメータを設定し、 here を見てmyhostnameパラメータを設定します。これらの2つのパラメーターは、基本的に、宛先:電子メールアドレスの右半分にあるものに基づいて、配信のために何を受け入れるかを接尾辞に伝えます。それらを何も設定せず、my.domain.comは、my.domain.comの配信のみを受け入れることを意味しますが、mydestinationが空白であるため、配信されません。私は間違っているかもしれませんが、それはあなたが望んでいたことではないと思います。

5
Avery Payne

問題はCyrus設定またはPAM設定にある可能性があります(おそらくCyrus SASLはPAMを使用してセットアップでMySQLと通信します)。

私はあなたに2つのことをアドバイスします:

  1. Postfixドキュメントの適切なセクションを注意深く読んでください: SASL_README

  2. /var/log/auth.logを確認してください

0
malloc4k