Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.3.10.5. Postfix が SASL を使用する設定

Red Hat Enterprise Linux 7 版のPostfixは、SMTP 認証(またはSMTP AUTH) にDovecotまたはCyrus SASL実装を使用できます。SMTP 認証は、Simple Mail Transfer Protocol のエクステンションです。有効にすると、SMTP クライアントは、サーバーとクライアントの両方がサポートし、受け入れる認証方法を使用して、SMTP サーバーを認証する必要があります。このセクションでは、Dovecot SASL 実装を利用するように Postfix を設定する方法について説明します。
Dovecot POP/IMAP サーバーをインストールして、システムで Dovecot SASL 実装を使用できるようにするには、root ユーザーとして次のコマンドを発行します。
~]# yum install dovecot
PostfixSMTP サーバーは、UNIX ドメインソケット または TCP ソケット のいずれかを使用して、Dovecot SASL 実装と通信できます。後者の方法は、PostfixDovecot のアプリケーションが別々のマシンで動作している場合のみ必要です。このガイドでは、プライバシーを強化する UNIX ドメインソケット方式を優先しています。
PostfixDovecot SASL実装を使用するように指示するには、両方のアプリケーションに対していくつかの設定変更を実行する必要があります。以下の手順に従ってください。
Dovecot のセットアップ
  1. メインの Dovecot 設定ファイル /etc/dovecot/conf.d/10-master.conf を変更して、次の行を含めます (デフォルトの設定ファイルには、関連するセクションのほとんどがすでに含まれているため、行のコメントを解除する必要があります)。
    service auth {
      unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
      }
    }
    上記の例では、PostfixDovecotの間の通信に UNIX ドメインのソケットを使用することを想定しています。また、/var/spool/postfix/ ディレクトリーにあるメールキュー、および postfix ユーザーとグループの下で実行されているアプリケーションを含む Postfix SMTP サーバーのデフォルト設定を想定しています。このように、読み取りと書き込みのパーミッションは、postfix のユーザーとグループに制限されます。
    また、DovecotTCP経由でPostfixの認証要求をリッスンするように設定するには、以下のような設定を行います。
    service auth {
      inet_listener {
        port = 12345
      }
    }
    上記の例では、12345 を使用するポートの番号に置き換えます。
  2. /etc/dovecot/conf.d/10-auth.conf 設定ファイルを編集して、Postfix SMTP サーバーに plain および login 認証メカニズムを提供するように Dovecot に指示します。
    auth_mechanisms = plain login
Postfix のセットアップ
Postfix の場合、メインの設定ファイル /etc/postfix/main.cf のみを変更する必要があります。以下の設定ディレクティブを設定できます。
  1. Postfix SMTP サーバーで SMTP 認証を有効にします。
    smtpd_sasl_auth_enable = yes
  2. SMTP 認証に Dovecot SASL 実装を使用するように Postfix に指示します。
    smtpd_sasl_type = dovecot
  3. Postfix キューディレクトリーに相対的な認証パスを提供します (相対パスを使用すると、Postfix サーバーが chroot で実行されているかどうかに関係なく設定が機能することが保証されます)。
    smtpd_sasl_path = private/auth
    この手順では、PostfixDovecotの間の通信に UNIX ドメインのソケットを使用することを想定しています。通信に TCP ソケットを使用する場合に、別のマシンで Dovecot を探すように Postfix を設定するには、次のような設定値を使用します。
    smtpd_sasl_path = inet:127.0.0.1:12345
    上記の例では、127.0.0.1DovecotマシンのIPアドレスに、12345Dovecotの設定ファイル/etc/dovecot/conf.d/10-master.confで指定したポートに置き換える必要があります。
  4. Postfix SMTPサーバーがクライアントに提供するSASLメカニズムを指定します。暗号化されたセッションと暗号化されていないセッションで、異なるメカニズムを指定できることに注意してください。
    smtpd_sasl_security_options = noanonymous, noplaintext
    smtpd_sasl_tls_security_options = noanonymous
    上記の例では、暗号化されていないセッションの間、匿名認証は許可されず、暗号化されていないユーザー名やパスワードを送信するメカニズムも許可されないことを指定しています。暗号化セッション (TLS を 使用) の場合、非匿名認証メカニズムのみが許可されます。
    許可されるSASLメカニズムを制限するためにサポートされているすべてのポリシーのリストは、http://www.postfix.org/SASL_README.html#smtpd_sasl_security_optionsを参照してください。
関連情報
以下のオンラインリソースでは、SASLによるPostfix SMTP 認証の設定に役立つ情報を提供しています。