Project

General

Profile

LDAP認証の設定

前提

  • SMTP認証がsaslauthdで設定されているものとする
  • saslauthdの設定をpam認証からldap認証に設定変更することで、postfixの認証をldap認証にする
  • バーチャルドメインは設定しない
  • ldapは認証だけ利用し、postfixで定義されたunixユーザのメールボックスにスプールする
    • バーチャルドメインやメールアドレス、スプールをLDAPの属性から取得する場合は別途postfixの設定が必要
  • LDAP側は下記の設定とする
    • 接続用のマネージャは「cn=Manager,dc=example,dc=local」
    • ユーザは「ou=Members,dc=example,dc=local」以下の「PosixAccount」属性持ちとする
    • saslauthdで認証するユーザ名がLDAP上の「uid」とする
    • saslauthdで認証するパスワードがLDAP上の「userPassword」とする

設定

  • 「/etc/sysconfig/saslauthd」を次の内容に編集する
    #MECH=pam
    MECH=ldap
    
  • 「/etc/saslauthd.conf」を新規作成し、次の内容を設定する
    ldap_servers: ldap://localhost
    ldap_search_base: ou=Members,dc=example,dc=local
    ldap_filter: (uid=%u)
    

テスト

  • 下記のコマンドでテスト用のユーザ名とパスワードのエンコード文字列を作成する
    echo -n  ユーザ名 | base64
    ユーザ名のエンコード文字列が表示される
    
    echo -n  パスワード | base64
    パスワードのエンコード文字列が表示される
    
  • telnetで接続を行う
    # telnet localhost 25
    
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 mx01.example.local ESMTP Postfix
    
  • EHLOを送信する
    EHLO mx01.example.local
    
    250-mx01.example.local
    250-PIPELINING
    250-SIZE 20000000
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN
    250-AUTH=LOGIN PLAIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    
  • ログイン要求を送信する
    AUTH LOGIN
    
    334 VXNlcm5hbWU6
    
  • エンコードしたユーザ名を入力する
    エンコードしたユーザ名
    
    334 UGFzc3dvcmQ6
    
  • エンコードしたパスワードを入力する
    エンコードしたパスワード
    
    235 2.7.0 Authentication successful
    
  • 成功したことを確認し、telnet切断を接続する
    quit
    
    221 2.0.0 Bye
    Connection closed by foreign host.