そろそろLDAPにしてみないか?

第15回 FDS+Postfixでメールサーバ管理

この記事を読むのに必要な時間:およそ 5 分

Cyrus-SASLの設定

Postfixは認証時にSASLライブラリを使用しますが,この時SASLライブラリは設定ファイルとなる/usr/lib/sasl2/smtpd.confを参照します。/usr/lib/sasl2というパスはcyrus-saslのコンパイル時にライブラリ中に埋め込まれます。確認するためには

% strings /usr/lib/libsasl2.so | less

などとして,SASL_CONF_PATHという文字列を追ってみると良いでしょう。また,smtpdというファイル名の一部はPostfixのようなアプリケーション側で定義することができます。具体的にはsmtpd_sasl_pathという設定がそれに該当しますが,通常このパラメータを変更する必要は無いでしょう。

では,giengerldap用の設定です。便宜上今回は,ディレクトリ検索用に,cn=Directory Managerというディレクトリ管理者のDNを用いていますが,実際にはセキュリティを高めるため,参照専用のDNなどを作成し,そのDNを指定するようにしてください。またファイルパーミッションを600などの適切な値に設定しておきます。

リスト12 /usr/lib/sasl2/smtpd.conf

# プラグインの定義
auxprop_plugin: giengerldap
# LDAPサーバの場所
gl_uri: ldap://localhost
# バインドDN,パスワード
gl_binddn: cn=Directory Manager
gl_bindpw: dssecret
# 検索ベース
gl_basedn: dc=bluecoara,dc=net
# 検索フィルタ。メールアドレスをSMTP Auth時のユーザ名とする
gl_search: (mail=%s)
# 認証方式の定義
mech_list: LOGIN PLAIN CRAM-MD5 DIGEST-MD5

次に,CRAM-MD5などのダイジェスト認証を行うためには,サーバ側に平文や中間値のパスワードが必要になりますので,ユーザエントリのuserPassword属性を

userPassword: hnakamitsu
userPassword: {CLEAR}hnakamitsu

のような平文状態に変更してください。システム全体で平文パスワードを保存したい場合には,管理コンソールよりConfigurationタブを選択し,左側メニューのDataツリーをクリック,右側に表示されるPasswordsメニューより,Password encryptionをCLEARになるよう設定してください。

以上でSMTPサーバの設定が完了しました!

まとめ

今回はLDAP認証のためにgiengerldapを紹介しましたが,オフィシャルプラグインでないと導入に不安を持つ方もいらっしゃるでしょうから,それ以外の認証方式を紹介しておきます。

表1 LDAPに関連するさまざまな認証方式

方式特徴必要な設定
saslauthd+ldapSASLライブラリはsaslauthdとプロセス間中心。saslauthdデーモンがLDAPサーバへの問い合わせを行う。仕組み上,CRAM-MD5などのダイジェスト認証は使用できない。saslauthdの設定と起動
saslauthd+pam+ldapSASLライブラリはsaslauthdとプロセス間中心。saslauthdデーモンはPAMライブラリと会話。PAMライブラリがLDAPサーバへの問い合わせを行う。仕組み上,CRAM-MD5などのダイジェスト認証は使用できない。saslauthdの設定と起動,OS内でのPAMの設定
ldapdbSASLライブラリが直接LDAPサーバへの問い合わせを行う。LDAPサーバ側に平文パスワードを登録することで,CRAM-MD5など使用可能。LDAPサーバ側でのSASL認証設定とSASLプロキシ設定,CRAM-MD5認証などを行うためにディレクトリ内には平文パスワードが必要
giengerldapSASLライブラリが直接LDAPサーバへの問い合わせを行う。LDAPサーバ側に平文パスワードを登録することで,CRAM-MD5など使用可能。CRAM-MD5認証などを行うためにディレクトリ内には平文パスワードが必要
authdaemondSASLライブラリはauthdaemondとプロセス間中心。authdaemondデーモンがLDAPサーバへの問い合わせを行う。仕組み上,CRAM-MD5などのダイジェスト認証は使用できない。courier-authlibの導入とauthdaemondの起動

次回はdovecotを用いてPOP3/IMAP4環境を構築します。

著者プロフィール

中満英生(なかみつひでお)

大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。