dmaの認証ではまったはなし

FreeBSDのMTAであるdma(DragonFly Mail Agen)についてハマった話。需要があるのかどうかはわからないけれど同じような症状で悩んでいる人がいればぜひ

FreeBSDは歴史的にsendmailというのが主体となっていてインターネットがSPAMで溢れかえっていなかった時代においてはそれでよかったのですが昨今の現状は25番ポートは受信のみって感じにして送信は587からsubmissionで送るってのが定番です。プロバイダも25番をほとんど塞いでおりそのあたりのPCから直接MXとお話しができなくなっているのが普通かと思います。なので環境によってはメールを送るにはsubmission一択です。

それを実装してくれるのがdma。メールサーバを指定してID/PASSで認証してから送ってくれるんでgmailなども使えるらしいです。(使ったことがない)

submissionを使ったメールの送信はEHLOなどでネゴってからSTARTTLSに落とし、そのあとID/PASSを入れるというパターンが多いかと思います。弊postfixのサーバもそういう実装。

ところが二つあるサーバのうち1つはdmaでうまく送れるのですがもう一つが送れません。STARTTLSのあとに認証に落ちない。その差がどこにあるのか?というのをおっかけてハマってました。結論から言うとdmaは AUTH LOGINにしか対応していない(AUTH PLAIN非対応)ということのようです。dmaのソースをみたらわかりました。

AUTH PLAINもAUTH LOGINも認証方式やセキュリティレベルに大きな差はなく両方対応しているサーバがほとんどだと思うのですが弊サーバでは片側だけ外していたのでした。多分なんかの実験で使ったのだと思う。
EHLOでAUTH LOGIN出すようjにしたらしっかり動きました。

他にもクセがあり cram-md5をEHLOで広告してしまうと必ずcram-md5で認証しようとします。これはMTAの仕様的には広告されt方式での認証なのでdma側の問題ではないのですが、弊サーバの事情(歴史的事情で)CRAM-MD5可能なユーザとそうでないユーザが混在しててハマってしまいました。多くのMUAでは cram-md5よりplain textによる認証を好むのでしょう。CRAM-MD5は「十分に信頼できない(安全ではない)」とされており結局平文認証のほうが強度が高いと推理するのかなと。

 

 

 

Posted by issei

Category : BSD