今日のぢろーらもはメール関連のトラブル対応してました。内容としては「メールの送信のみができない。受信はできる。」というものです。その会社の全員ではなく、一部も人のみ使えないようです。今日はそちらを取り上げてみます。もちろん、対応先の企業が特定できてしまうと問題ありますが、けっこう他の環境でもありえる問題なんじゃないのかな、と思ったので、できるだけ一般化した形でお届けしますm(_ _)m
「今まで使えてたのに突然発生した」というのが腑に落ちないところではあるのですが、だとすると、先にクライアントの設定を疑ったほうがいいかな?確かこのシステムではSMTP認証使っているはずなので、メールクライアントでその設定が外れてるのかな?まずすぐ思いつくのはそこですね。
昔はメールといえばPOPでの受信のみパスワードが必要、SMTPに関してはオープンリレーを防ぐくらいで、基本的にはどこからでも認証なしで自由に送れる、という感じでした。それが何年か前からOP25B(Outbound Port25 Blocking)に対応するプロバイダが増え、外出先から会社のメールサーバを使用するときは、サブミッションポート(TCP:587)を使った上でSMTP認証を行なわないといけない、という状況が増えました。ぢろーらもも以前自宅で使っていたプロバイダがOP25Bはじめたのが4年前でした。
OP25Bの記事は多くありますが、たとえばhttp://bb.watch.impress.co.jp/cda/special/14369.html あたりがわかりやすいです。クライアント側でどんな設定が必要か、ですが、たとえばMicrosoftのOutlookであればMicrosoftのサポートオンライン(http://support.microsoft.com/kb/931826/ja)にも紹介されています。
でも、ここはきっと設定してるはずだよね・・・一応確認しましたが、正しく設定されていました。
あとはエラーメッセージに注目、「0x800ccc92」というコードでした。インターネットで探してみると、「受信ができない」という問題に対する対応方法ではありますが、Microsoftのサポートオンライン(http://support.microsoft.com/kb/882931/ja )の内容も参考になりそうです。Outlookの設定が壊れている可能性を示唆し、アカウントとパスワードの設定しなおし、アカウント削除/再作成、(前にOutlook Expressを使ってた場合)Outlook Expressからのエクスポート、という方法が掲載されています。
これも試してみましたがだめでした・・・。
だとするとクライアントの設定ではなく、サーバやシステムのほうに問題があるのかな・・・と思って、ぢろーらもはそちらを調べよう、と考えていました。しかし、その前にたまたま試してみた設定で、とりあえずメールの送信ができました。それは”メールクライアントで送信認証をしないでそのままメールを送る”つまり”SMTP認証のチェックを外す”、ということです。
でもなんでこれでうまくいくんだろ?だとすると、やっぱりサーバまわりの可能性が高い?と思って、システムのほうを調べると、メールサーバの前段にいたアンチスパム製品が一時的に応答しなくなっていたらしいのです。壊れた?それとも、ケーブル外れてただけ?まあ、すぐ復旧できるならいいんだけどさ・・・。
ここのシステムの構成上(というか、アンチスパム製品をいれるときは通常そうしますが)、アンチスパムが応答しない場合は、クライアントからのSMTP通信(メール送信、SMTP認証)はすべて直接メールサーバに行きます。通常、この構成であればスパムメールが漏れてくるだけで、メール自体を止めることはないはずなのです。でも、今回は特定の人のみメールが送信できない(受信はできる)、という状態になりました。
で、アンチスパムがの復旧すると、もとのとおりSMTP認証ありの状態で送れるようになりました。
考えてみると不思議な現象です。
・アンチスパム製品がある間はSMTP認証に問題ない
・アンチスパム製品がなく、直接メールサーバにSMTP認証を行なう場合、通信が失敗するクライアントがいる
おそらくアンチスパム製品、メールサーバの仕様等から考えると、おそらくこんな理由なのかと思います。
・アンチスパム製品が生きている場合、クライアントからのSMTP認証はすべてアンチスパム 製品が代理応答する
・アンチスパム製品自体がクライアントのアカウント情報を持っているわけではないので、SMTP認証を受けたアンチスパム製品は、別のコネクションを使ってメールサーバに認証を行なう。しかもここの間の認証はSMTPではなかった。つまり、「クライアント⇔アンチスパム間とアンチスパム⇔メールサーバ間で認証のしくみが異なる」ということ
・アンチスパム製品がダウンした場合、メールサーバ自体もSMTP認証は可能となっている(こちらはたとえばPostfix&SASLのしくみで実現します。参照サイト:http://fedorasrv.com/postfix.shtml http://www.miloweb.net/postfix2.html など)
・SASLを使用する場合、Linux等のOSのアカウントとは別に、SMTP-AUTH用のアカウント設定が必要
→ おそらく、これが抜けていたので、特定の人のみメールが送れなかったのだと思います。
認証なしにした場合にはOKだった理由ですが、こちらはおそらくメールサーバでもアンチスパム製品でも、「社内のクライアントIPであればリレーを許可(認証なしでのメール送信可能)」という設定だったからのようです。
ん?パケットの流れとしてはどうなっているのかな、と思ってWireSharkでキャプチャしてみました。SMTP AUTHを行なう場合、クライアントからのEHLOのあと、サーバが返すメッセージ内に認証方式(LOGIN、PLAIN、CRAM-MD5 など)が提示され、普通だったらクライアントがどの認証方式を使うかを選択して認証がはじまるはずですが、クライアントで認証をさせない設定にした場合には、認証方式を提示されてもクライアントは問答無用でMAIL FROM送っているみたいです。で、リレー許可になっていたらメールサーバもそれが受け入れる、というわけです。
やはりメールが使えないと業務にかなり支障があるため、早めに復旧できてよかったです
この記事が気に入りましたら、また、お役に立ちましたら、以下のアイコンをクリックしていただけると嬉しいです(^^)