Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/07/2008, à 14:44

raziel

[RESOLU] LDAP + TLS = Problème liste de chiffrements

Bonjour tout le monde,

Je suis en train de configurer un serveur ldap avec du tls... Aprés configuration, lorsque j'essaye de lancer le serveur pour un test voila ce que ça donne :

TLS: could not set cipher list HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5.
main: TLS init def ctx failed: -1
slapd destroy: freeing system resources.
slapd stopped.
connections_destroy: nothing to destroy.

Dans le fichier de config /etc/ldap/sladp.conf, je vérifie que le paramètre TLSCipherSuite est correct via la commande 

sudo openssl ciphers -v HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5

Le résultat est somme toute correct :

ADH-AES256-SHA          SSLv3 Kx=DH       Au=None Enc=AES(256)  Mac=SHA1
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
ADH-DES-CBC3-SHA        SSLv3 Kx=DH       Au=None Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
ADH-AES128-SHA          SSLv3 Kx=DH       Au=None Enc=AES(128)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
DES-CBC3-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5 
ADH-RC4-MD5             SSLv3 Kx=DH       Au=None Enc=RC4(128)  Mac=MD5 
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
RC2-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5 
RC4-MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5

J'ai vu sur plusieurs documentations que le problème pouvait être dû au fait que la clé privée de mon serveur n'appartenait pas à l'utilisateur system qui éxécute le serveur slapd. Chez moi, il n'en est rien l'utilisateur est bien le même et la clé privée est bien en readonly (400). Donc je n'arrive pas à savoir d'où cela provient.

voici le fichier /etc/default/slapd :

SLAPD_CONF=
SLAPD_USER="openldap"
SLAPD_GROUP="openldap"
SLAPD_PIDFILE=
SLAPD_SERVICES="ldap://127.0.0.1/ ldaps:///"
SLAPD_OPTIONS=""

Mon fichier /etc/ldap/slapd.conf :

[...]
TLSCACertificateFile /usr/lib/ssl/CA/private/CA.crt
TLSVerifyClient never
TLSCertificateFile /usr/lib/ssl/CA/certs/ldap/server_signed_ldap.pem
TLSCertificateKeyFile /usr/lib/ssl/CA/private/ldap/server_tls.pem
TLSCipherSuite HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5
[...]

Et enfin mon /etc/ldap.conf (ou /etc/ldap/ldap.conf)

[...]
SSL start_tls
TLS_CACERT /usr/lib/ssl/CA/private/CA.crt
TLS_REQCERT demand
TLS_CERT      /usr/lib/ssl/CA/certs/ldap/server_signed_ldap.pem
TLS_KEY       /usr/lib/ssl/CA/private/ldap/server_tls.pem
[...]

Petite précision : Je me suis créé une autorité de certificat avec openssl. Pour générer le certificat du serveur j'ai rempli le champs "COMMON NAME" avec mon ancien FQDN. Comme j'en ai un nouveau désormais est-ce que cela peut-il venir de là?

Merci d'avance pour votre aide!

Dernière modification par raziel (Le 18/07/2008, à 12:32)

Hors ligne

#2 Le 18/07/2008, à 12:31

raziel

Re : [RESOLU] LDAP + TLS = Problème liste de chiffrements

Ok les amis merci pour votre .... heuuu... lecture de mon post mais j'ai trouvé la solution par moi-même.

Pour ceux à qui cela intéresserait :

Il se trouve qu'openldap marche, non pas avec openssl mais depuis quelques versions, avec gnutls !

Donc si nous voulons choisir les chiffrements qui seront négociés, il ne convient plus de spécifier le paramêtre TLSCiphersSuite selon les listes de chiffrements données par la syntaxe d'openssl :

sudo openssl ciphers -v HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5

ADH-AES256-SHA          SSLv3 Kx=DH       Au=None Enc=AES(256)  Mac=SHA1
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
ADH-DES-CBC3-SHA        SSLv3 Kx=DH       Au=None Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
ADH-AES128-SHA          SSLv3 Kx=DH       Au=None Enc=AES(128)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
DES-CBC3-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5 
ADH-RC4-MD5             SSLv3 Kx=DH       Au=None Enc=RC4(128)  Mac=MD5 
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
RC2-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5 
RC4-MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5

Il convient maintenant d'utiliser la syntaxe donnée par la commande :
sudo gnutls-cli -l

Le résultat sera tout autre :

Cipher suites:
TLS_ANON_DH_ARCFOUR_MD5                                 0x00, 0x18      SSL 3.0
TLS_ANON_DH_3DES_EDE_CBC_SHA1                           0x00, 0x1b      SSL 3.0
TLS_ANON_DH_AES_128_CBC_SHA1                            0x00, 0x34      SSL 3.0
TLS_ANON_DH_AES_256_CBC_SHA1                            0x00, 0x3a      SSL 3.0
TLS_PSK_SHA_ARCFOUR_SHA1                                0x00, 0x8a      TLS 1.0
TLS_PSK_SHA_3DES_EDE_CBC_SHA1                           0x00, 0x8b      TLS 1.0
TLS_PSK_SHA_AES_128_CBC_SHA1                            0x00, 0x8c      TLS 1.0
TLS_PSK_SHA_AES_256_CBC_SHA1                            0x00, 0x8d      TLS 1.0
TLS_DHE_PSK_SHA_ARCFOUR_SHA1                            0x00, 0x8e      TLS 1.0
TLS_DHE_PSK_SHA_3DES_EDE_CBC_SHA1                       0x00, 0x8f      TLS 1.0
TLS_DHE_PSK_SHA_AES_128_CBC_SHA1                        0x00, 0x90      TLS 1.0
TLS_DHE_PSK_SHA_AES_256_CBC_SHA1                        0x00, 0x91      TLS 1.0
TLS_SRP_SHA_3DES_EDE_CBC_SHA1                           0xc0, 0x1a      TLS 1.0
TLS_SRP_SHA_AES_128_CBC_SHA1                            0xc0, 0x1d      TLS 1.0
TLS_SRP_SHA_AES_256_CBC_SHA1                            0xc0, 0x20      TLS 1.0
TLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1                       0xc0, 0x1c      TLS 1.0
TLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1                       0xc0, 0x1b      TLS 1.0
TLS_SRP_SHA_DSS_AES_128_CBC_SHA1                        0xc0, 0x1f      TLS 1.0
TLS_SRP_SHA_RSA_AES_128_CBC_SHA1                        0xc0, 0x1e      TLS 1.0
TLS_SRP_SHA_DSS_AES_256_CBC_SHA1                        0xc0, 0x22      TLS 1.0
TLS_SRP_SHA_RSA_AES_256_CBC_SHA1                        0xc0, 0x21      TLS 1.0
TLS_DHE_DSS_ARCFOUR_SHA1                                0x00, 0x66      TLS 1.0
TLS_DHE_DSS_3DES_EDE_CBC_SHA1                           0x00, 0x13      SSL 3.0
TLS_DHE_DSS_AES_128_CBC_SHA1                            0x00, 0x32      SSL 3.0
TLS_DHE_DSS_AES_256_CBC_SHA1                            0x00, 0x38      SSL 3.0
TLS_DHE_RSA_3DES_EDE_CBC_SHA1                           0x00, 0x16      SSL 3.0
TLS_DHE_RSA_AES_128_CBC_SHA1                            0x00, 0x33      SSL 3.0
TLS_DHE_RSA_AES_256_CBC_SHA1                            0x00, 0x39      SSL 3.0
TLS_RSA_NULL_MD5                                        0x00, 0x01      SSL 3.0
TLS_RSA_EXPORT_ARCFOUR_40_MD5                           0x00, 0x03      SSL 3.0
TLS_RSA_ARCFOUR_SHA1                                    0x00, 0x05      SSL 3.0
TLS_RSA_ARCFOUR_MD5                                     0x00, 0x04      SSL 3.0
TLS_RSA_3DES_EDE_CBC_SHA1                               0x00, 0x0a      SSL 3.0
TLS_RSA_AES_128_CBC_SHA1                                0x00, 0x2f      SSL 3.0
TLS_RSA_AES_256_CBC_SHA1                                0x00, 0x35      SSL 3.0
Certificate types: X.509, OPENPGP
Protocols: SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2
Ciphers: AES 256 CBC, AES 128 CBC, 3DES 168 CBC, DES CBC, ARCFOUR 128, ARCFOUR 40, RC2 40, NULL
MACs: SHA, MD5, SHA256, SHA384, SHA512, MD2, RIPEMD160, NULL
Key exchange algorithms: Anon DH, RSA, RSA EXPORT, DHE RSA, DHE DSS, SRP DSS, SRP RSA, SRP, PSK, DHE PSK
Compression: LZO, DEFLATE, NULL

A partir de là mon paramêtre (qui se trouve dans /etc/ldap/slapd.conf)
TLSCipherSuite=HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5

devient donc :
TLSCipherSuite=TLS_ANON_DH_ARCFOUR_MD5:TLS_ANON_DH_3DES_EDE_CBC_SHA1:TLS....(etc, etc)

Liens qui m'ont aidés dans mes recherches :
http://www.openldap.org/lists/openldap- … 00199.html
http://www.openssl.org/docs/apps/ciphers.html
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=462588

Bonne continuation à toutes et à tous !:)

Hors ligne