Erreur dans l'installation ITDS sur RedHat 6.x

Symptôme

Lors d'une installation ITDS sur un serveur Linux CentOS 6.3, avec une base DB2 9.5 FP3, la commande idscfgdb tombe en erreur. :

/opt/ibm/ldap/V6.2/sbin/idscfgdb -I idsldap -a idsldap -w MotDePasse -t idsldap -l /product/db2data

You have chosen to perform the following actions:

GLPCDB023I Database 'idsldap' will be configured.
GLPCDB024I Database 'idsldap' will be created at '/product/db2data'
GLPCDB035I Adding database 'idsldap' to directory server instance: 'idsldap'.
GLPCTL017I Cataloging database instance node: 'idsldap'.
GLPCTL018I Cataloged database instance node: 'idsldap'.
GLPCTL008I Starting database manager for database instance: 'idsldap'.
GLPCTL009I Started database manager for database instance: 'idsldap'.
GLPCTL026I Creating database: 'idsldap'.
GLPCTL030E The DB2 administrator ID or password specified is not valid.
GLPCTL028E Failed to create database: 'idsldap'. The failure might have occurred because the system was not set up correctly before using the tool.

Diagnostic de l'erreur

Dans le fichier db2dump/db2diag.log :

FUNCTION: DB2 UDB, bsu security, sqlexLogPluginMessage, probe:20
DATA #1 : String with size, 66 bytes
Password validation for user idsldap failed with rc = -2146500504

Chose curieuse, on arrive bien à se connecter au niveau de l'OS, avec le bon mot de passe.

Cause

Après plusieurs recherches, il s'avère que ceci est dû à un problème d'algorithme d'encryption du mot de passe, incompatible avec la version DB2 9.5 FP3 (cf . http://www-01.ibm.com/support/docview.wss?uid=swg21470246). Cette version 9.5 FP3 accepte les algorithmes suivants :

  • Crypt
  • MD5
  • SHA1

Résolution

Pour voir l'algorithme utilisé actuellement (sur une distribution RedHat ou CentOS) :

authconfig --test | grep hashing
 password hashing algorithm is sha512

Effectivement, depuis la version 6.x de RedHat, l'algorithme a été passé en SHA512, alors qu'il était auparavant en MD5 par défaut.

On peut modifier cet algorithme, avec la commande suivante, pour le remettre en md5:

authconfig --passalgo=md5 --update

On peut ensuite changer le mot de passe du compte, et vérifier son mot de passe dans le fichier /etc/shadow :

idsldap:$1$/vnYHAO0$TRDsnUiwtXCBRc4uvDbY/1:15950:0:99999:7:::

Le premier élément du mot de passe donne le type de cryptage utilisé :

  • $1$: MD5.
  • $5$: SHA-256.
  • $6$: SHA-512.
  • $2a$: blowfish.
  • Sinon, c'est du DES.

Dans le cas initial (SHA512), la ligne correspondante dans le fichier était la suivante :

idsldap:$6$BISB5e9r$1PELkpAv9KnJalG0DNbYsI23kK2r9Z4og51G8X/6mGSJGYVxrq.hFLOBgWadsa/iVPssTtBj.AuzdAmonIXAi0:15950:0:99999:7:::

Attention : ceci modifie l'algorithme, en baissant le niveau d'encryption. Une autre solution est de passer sur DB2 FixPack4, qui gère d'autres types d'algorithmes :

  • Crypt
  • MD5
  • SHA1
  • SHA256
  • SHA512
  • Blowfish
Catégorie