OS X サーバーから LDAP を使用する Linux 上の Postfix/Samba

OS X サーバーから LDAP を使用する Linux 上の Postfix/Samba

あるプロジェクトで、Mac Server ベースの LDAP に保存されているユーザーのデータベースを使用して、postfix+courier と samba を使用したメールサーバーを作成する必要があります。これを作成した人がいるか、または可能かどうか (理論的には可能のはずです) を教えてください。ヒントをいただければ、残りの人生ずっと感謝します :)

前もって感謝します

答え1

どうやら接尾辞宅配便、 そしてサンバすべて、LDAP からユーザー情報を取得することをサポートしています。

OS X サーバーの LDAP 検索ベースを知っておく必要があります (サーバー管理 -> サイドバーの Open Directory モジュール -> ツールバーの概要で見つけることができます)。これは通常、LDAP 言語でのサーバーの完全なドメイン名になります (例: macserver.example.com は dc=macserver,dc=example,dc=com)。ユーザー アカウントは cn=users,searchbase の下にあります (例: cn=users,dc=macserver,dc=example,dc=com)。

OS X は UNIX 標準 (RFC 2307) に準拠しているため、ユーザー属性のマッピングは比較的簡単です。サービスを構成する方法を理解するためにユーザーの LDAP 属性を確認する必要がある場合は、ワークグループ マネージャを使用して、アプリケーションの環境設定で [すべてのレコード] タブとインスペクタを有効にします (これは、ツールバーの [環境設定] タブではなく、ワークグループ マネージャ メニューの [環境設定] です)。これを有効にしたら、ユーザーを選択し、右側の [インスペクタ] タブを選択して、[ネイティブ] (別名 dsAttrTypeNative) 属性を探し、ユーザー レコードが LDAP にどのように保存されているかを確認します (注: [オプション] ボタンをクリックして、[ネイティブ属性を表示] 以外のすべてをオフにすると、ビューを少し簡略化できます)。

おそらく最も大きな問題にぶつかることになるのは、OS X の Open Directory がデフォルトでユーザー パスワードを「標準」形式 (LDAP のユーザー レコード内の Unix 暗号化形式) で保存しないため、Courier と Samba を設定してユーザー パスワードを検証するのが難しい場合があることです。OD は通常、Kerberos または SASL ベースのパスワード サーバーを介してユーザーを認証します。Kerberos の設定方法がわかれば (そしてクライアント ソフトウェア/設定がそれをサポートしていれば)、問題ありません。Courier または Samba がパスワード サービスに対して認証する方法を知っているとは思えませんが、私が間違っている可能性があります (もし間違っているなら、ぜひ知りたいです。詳細情報へのポインターをコメントに残してください)。

どちらも不可能な場合は、別のオプションとして、LDAP バインド経由で認証するようにサーバーを構成することもできます (つまり、パスワードを使用して OD サーバーへの LDAP 接続を認証しようとすることで、ユーザー パスワードを確認します)。クライアントから Linux サーバーへ、および Linux サーバーから OD LDAP サーバーへ、パスワードをプレーンテキストで送信する必要があるため、可能であればこの方法は避けてください (SSL を使用すると、IMAP および LDAP ではこの問題を回避できますが、SMB では回避できません。また、最近の SMB クライアントは、プレーンテキストでのパスワードの送信を拒否します)。(Courier または Samba のどちらかがこれをサポートしているかどうかはわかりません。)

最後に、ユーザーのパスワードを暗号化形式で保存することができます(ワークグループマネージャのユーザーの詳細タブにこのオプションがあります)。これは、クライアントとLinuxサーバー間でパスワードが暗号化されないことを意味するため(SSLを使用しない限り)、さらに避けてください。またLDAP ドメインへの読み取りアクセス権を持つユーザーによる辞書攻撃に対して脆弱です。

関連情報