2.9.3. Postfix が SASL を使用する設定
Postfix メール転送エージェントを、Simple Authentication and Security Layer (SASL) を使用するように設定できます。これにより、電子メッセージの送受信時の認証が強化されます。
Postfix は SASL ベースの SMTP 認証 (AUTH) をサポートしています。SMTP AUTH は Simple Mail Transfer Protocol の拡張です。現在、Postfix SMTP サーバーは次の方法で SASL 実装をサポートしています:
- Dovecot SASL
- Postfix SMTP サーバーは、UNIX ドメインソケットまたは TCP ソケットのいずれかを使用して、Dovecot SASL 実装と通信できます。Postfix と Dovecot アプリケーションが別のマシンで実行している場合は、この方法を使用します。
- Cyrus SASL
- 有効にすると、SMTP クライアントは、サーバーとクライアントの両方でサポートおよび受け入れられる認証方法を使用して、SMTP サーバーで認証する必要があります。
前提条件
-
dovecotパッケージがシステムにインストールされている
手順
Dovecot をセットアップします。
/etc/dovecot/conf.d/10-master.confファイルに次の行を含めます。service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }前の例では、Postfix と Dovecot の間の通信に UNIX ドメインソケットを使用しています。また、
/var/spool/postfix/ディレクトリーにあるメールキュー、およびpostfixユーザーとグループの下で実行しているアプリケーションなど、Postfix SMTP サーバーのデフォルト設定を想定しています。オプション: TCP 経由で Postfix 認証リクエストをリッスンするように Dovecot をセットアップします。
service auth { inet_listener { port = <port_number> } }/etc/dovecot/conf.d/10-auth.confファイルのauth_mechanismsパラメーターを編集して、メールクライアントが Dovecot での認証に使用する方法を指定します。auth_mechanisms = plain loginauth_mechanismsパラメーターは、さまざまなプレーンテキストおよび非プレーンテキストの認証方法をサポートしています。
/etc/postfix/main.cfファイルを変更して Postfix をセットアップします。Postfix SMTP サーバーで SMTP 認証を有効にします。
smtpd_sasl_auth_enable = yesSMTP 認証用の Dovecot SASL 実装の使用を有効にします。
smtpd_sasl_type = dovecotPostfix キューディレクトリーに相対的な認証パスを指定します。相対パスを使用すると、Postfix サーバーが
chrootでで実行されているかどうかに関係なく、設定が確実に機能する点にに注意してください。smtpd_sasl_path = private/authこの手順では、Postfix と Dovecot の間の通信に UNIX ドメインソケットを使用します。
通信に TCP ソケットを使用する場合に、別のマシンで Dovecot を探すように Postfix を設定するには、次のような設定値を使用します。
smtpd_sasl_path = inet: <IP_address> : <port_number>上記の例の
<IP_address>は、Dovecot マシンの IP アドレスに置き換えます。<port_number>は、Dovecot の/etc/dovecot/conf.d/10-master.confファイルで指定されているポート番号に置き換えます。Postfix SMTP サーバーがクライアントに提供する SASL メカニズムを指定します。暗号化されたセッションと暗号化されていないセッションに異なるメカニズムを指定できることに注意してください。
smtpd_sasl_security_options = noanonymous, noplaintext smtpd_sasl_tls_security_options = noanonymous上記のディレクティブでは、暗号化されていないセッション中は匿名認証を許可しないことと、暗号化されていないユーザー名やパスワードを送信するメカニズムを許可しないことが指定されています。暗号化セッション (TLS を使用) の場合、非匿名認証メカニズムのみが許可されます。