コンテンツにスキップ

LDAP サーバに対する SSL 接続について

はじめに

用途

この文書には、TeamFile において LDAP サーバを SSL 接続として利用する為の注意点が記載されております。

対象者

TeamFile サーバのサーバ管理者

TeamFile における SSL+LDAP 概要

TeamFile の SSL+LDAP 機構

TeamFile はユーザの認証のために LDAP に対する接続が行えます。ユーザ認証は常時行われますので LDAP サーバの状態が変化したら即時反映されるようになっています。
通常 LDAP への接続はポート 389 にて行われますが、この接続では通信の内容が覗けてしまう為、セキュリティ的に問題がありますが、SSL 接続を行う事により TeamFile と LDAP 間の通信を暗号化し、この問題を回避する事ができます。

ただし、SSL 接続による LDAP 認証は SSL 接続によるパフォーマンスの低下が予想されます。TeamFileの認証はステートレスで接続の都度(ユーザが操作するたび)に行われますので、接続による LDAP サーバの性能を十分テストの上利用ください。

設定方法

設定ファイル

サーバの設定ファイル(mod_dav_tf.conf)の LDAP 接続ディレクティブの他に、以下の記述を追加してください。(その他のディレクティブはディレクティブガイドを参照してください)

TfLDAPSSLSupport on 
TfLDAPCertAuthFile (SSL証明書の絶対パス) 

「TfLDAPCertAuthFile」も含め SSL 接続には以下の注意点を全てクリアする必要があります。

  1. LDAP サーバの SSL 証明書または CA 証明書が存在していること
  2. Base64 エンコードされた SSL 証明書であること(Base64 以外はサポートしていません)

  3. teamfile という Unix ユーザからアクセスできるパーミッションを持っていること。
    root がオーナであれば、other ユーザにパーミッションが必要です。(chmod o+r )
    ファイルだけでなく、上位ディレクトリへのアクセスが禁止されている場合には
    そちらもアクセス可能なように許可すること。

  4. SELinux の機構によりアクセスがブロックされているなら、 それを許可(RHEL4 のみ)
    する。ls – alFZ を入力して、表示エラーになるようでしたら無視してください。
  5. SSL-LDAP サーバへの接続ポートが「TfLDAPHostPort」に正しく指定されていること
  6. TeamFile サーバから「TfLDAPHostPort」で指定されたポートを使って外部と通信できること
  7. SSL 証明書の Common Name が正確に「TfLDAPHost」に指定されていること
    CommonName が xxx.xxx.ac.jp であれば、この文字列をそのまま指定してください。
    IP アドレスに変換して記述すると必ず失敗してしまいます。(*1
  8. TfLDAPHost」に指定された Common Name が TeamFile サーバから名前解決できること(*2)

*1 SSL 証明書は自己署名でも問題ありません。その場合であっても TfLDAPHost と証明書内の
 CommonName は一致させてください。
*2 host で解決しても問題ありません。

LDAP サーバと TeamFile サーバとの接続の確認

TeamFile は内部に OpenLDAP のコマンド郡が含まれています。こちらを利用していくつかテストを行います。この時点では TeamFile 本体の機能は利用せずにコマンドによるサーバ間の接続テストを行います。

接続確認の為の準備作業

  1. ディレクトリの作成
    mkdir – p /usr/local/teamfile/etc/openldap 
    
  2. ファイルを作成
    cd /usr/local/teamfile/etc/openldap 
    vi ldap.conf 
    
  3. ldap.conf ファイルの編集
    TLS_CACERT (TfLDAPCertAuthFileで指定したSSL証明書の絶対パス) 
    

ldapsearch による接続テスト

コマンドを実行して接続のテストを行います。

実行例

$> /usr/local/teamfile/bin/ldapsearch -x -b "dc=teamfile,dc=com" -D 
"cn=Manager,dc=teamfile,dc=com" -H 
"ldaps://localhost.localdomain:636/" -w secret -s sub
"(objectclass=*)" 

teamfile などのdcなどは、環境に合わせて変更してください。

こちらで接続が行えなかった場合は、TeamFile でも接続ができません。再度設定を見直してください。
また、上記コマンドを – d 1 を追加するとデバック出力となり、より詳細な結果が表示されます。

TeamFile サーバの接続

TeamFile の設定が問題無ければ再起動します。LDAP サーバ側の接続ログもあわせて確認ください。