私はメールサーバーの世界に不慣れで、Ubuntu11.10のPostfixを介して自分のセットアップに取り組んでいます。これまでのところ、TLSを介してSASL認証が機能しているので、それは良いことです。私は今セキュリティについて心配しています。
つまり、Postfixに認証されていないすべての受信メールを受け入れさせたいのですが、認証された送信メールのみを許可します。これはまた、ポート465と587でSTARTTLSとTLSをサポートしているかどうか疑問に思いますが、それでもポート25でリッスンする必要がありますか? 25が閉じている場合、メールサーバーはポート587でメールを配信しようとしますか?
しかし、認証されていない着信を許可するが、認証された発信のみを許可することに戻って、追加してみました
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
master.cf
ファイルのsmtp行に移動しますが、認証されていない受信メールをブロックします。ポート25での着信のみを許可し、ポート465/587を発信専用のままにする方法はありますか?
何がうまくいくかはわかりませんが、必要に応じて残りの設定を投稿できます。私はこれらすべてに不慣れであり、それはまだ混乱しているので、どんな助けでも大歓迎です。ありがとうございました!
master.cf
のオプションを適用して、ポートごとにmain.cf
のオプションをオーバーライドすることを理解しました。
目標を達成するには、制限をsmtpd_recipient_restrictions
ではなくsmtpd_client_restrictions
として設定します。重要なのは、reject
だけでなくreject_unauth_destination
です。
mydestination = aardvark.com, acme.com
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination
これにより、認証されていないクライアントが、責任のないドメインに送信するのを防ぎます。このコンテキストでは、あなたが担当するドメインは単なるmydestination
以上のものです。マニュアルの reject_unauth_destination を参照してください。
私はこれを解決するために何時間も探していました、そしてあなたの答えはスポットオンクーリングです。
詳細については、これはPlesk/CentOSを使用している場合にも機能します(私の状況)。特にPleskを使用する場合、値permit_mynetworks
もデフォルトでsmtpd_recipient_restrictions
変数に追加され、すべてのPleskドメインが認証なしでSMTPメールを送信できるようになります。
また、セキュリティ上の理由からmain.cfに追加されました(興味のある人のために。
smtpd_client_connection_count_limit = 20
smtpd_sasl_authenticated_header = yes
maximal_queue_lifetime = 1d