1.8. TLS
OpenLDAPサーバーへの認証は、暗号化されたセッションを使用するのが最適です。これは、トランスポート層セキュリティ(TLS)を使用することで実現できます。
ここでは、私たちは私たち自身になります 認証局 そして、そのCAとしてLDAPサーバー証明書を作成し、署名します。slapdはgnutlsライブラリを使用してコンパイルされているため、これらのタスクを完了するにはcerttoolユーティリティを使用します。
1. gnutls-bin および ssl-cert パッケージをインストールします。
sudo apt install gnutls-bin ssl-cert
2. 証明機関の秘密鍵を作成します。
sudo sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
3. テンプレート/ファイルを作成する /etc/ssl/ca.info CA を定義するには:
cn = 例会社 ca
証明書署名キー
4. 自己署名 CA 証明書を作成します。
sudo certtool --generate-self-signed \
--load-privkey /etc/ssl/private/cakey.pem \
--template /etc/ssl/ca.info \
--outfile /etc/ssl/certs/cacert.pem
5. サーバーの秘密鍵を作成します。
4 http://manpages.ubuntu.com/manpages/en/man5/slapd.access.5.html
sudo certtool --generate-privkey \
-- ビット 1024 \
--outfile /etc/ssl/private/ldap01_slapd_key.pem
交換する ldap01 ファイル名にサーバーのホスト名を含めてください。証明書と鍵に、それらを使用するホストとサービスに応じた名前を付けると、わかりやすくなります。
6. 作成する /etc/ssl/ldap01.info 次の内容を含む情報ファイル:
組織 = 例の会社 cn = ldap01.example.com tls_www_server
暗号化キー、署名キーの有効期限日数 = 3650
上記の証明書の有効期間は10年です。必要に応じて調整してください。
7. サーバーの証明書を作成します。
sudo certtool --generate-certificate \
--load-privkey /etc/ssl/private/ldap01_slapd_key.pem \
--load-ca-certificate /etc/ssl/certs/cacert.pem \
--load-ca-privkey /etc/ssl/private/cakey.pem \
--template /etc/ssl/ldap01.info \
--outfile /etc/ssl/certs/ldap01_slapd_cert.pem
8. 権限と所有権を調整します。
sudo chgrp openldap /etc/ssl/private/ldap01_slapd_key.pem sudo chmod 0640 /etc/ssl/private/ldap01_slapd_key.pem sudo gpasswd -a openldap ssl-cert
9. 'openldap' ユーザーを 'ssl-cert' グループに追加したので、slapd を再起動します。
sudo systemctl 再起動slapd.service
これで、サーバーは新しい TLS 構成を受け入れる準備が整いました。
ファイルを作成する 証明書情報.ldif 次の内容になります (適宜調整してください。この例では、https://www.cacert.org を使用して証明書を作成したと想定しています)。
dn:cn = config
追加: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
追加: olcTLSCertificateFile
olcTLS証明書ファイル: /etc/ssl/certs/ldap01_slapd_cert.pem
-
追加: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_slapd_key.pem
ldapmodify コマンドを使用して、slapd-config データベース経由で TLS の動作について slapd に通知します。
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
一般的な考えとは反対に、 ldaps:// in / etc / default / slapd 暗号化を使用するには、以下の手順が必要です。
SLAPD_SERVICES="ldap:/// ldapi:///"
TLS/SSL経由のLDAP(ldaps://)は廃止され、 StartTLS後者は、既存の LDAP セッション (TCP ポート 389 をリッスン) が TLS/SSL によって保護されることを意味しますが、LDAPS は HTTPS と同様に、TCP ポート 636 で動作する、最初から暗号化された独自のプロトコルです。