Mon authentification DHCP avec la chaîne courte (juste le "fti/xxx") a arrêté de fonctionner samedi 28 septembre à 8h10. J'ai généré une chaîne longue à partir de mon mot de passe, d'une chaine aléatoire de 16 octets et du hash MD5 et j'ai réussi à me connecter du premier coup en IPv4 et IPv6 depuis mon routeur Turris Omnia !
Bon, ben j'y ai eu droit ce ce matin, ce qui m'a valu un déplacement sur site. heureusement, j'avais mis la nouvelle conf préparée en commentaire...
Par contre, chez moi, la chaîne complète n'a PAS marché, j'ai dû remplacer
option sendopts '0x4d:2b...33 0x5a:0000000000000000000000xxxxxxxxxxxxxxxxxxxxxx'
par
option sendopts '0x4d:2b...33 0x5a:00000000000000000000001a0900000558010341010dxxxxxxxxxxxxxxxxxxxxxx' .
Ca a marché sur le DGA4130.
La chaine complète avait été crée ainsi : (Je vous rassure j'ai changé login & mot de passe & mac ci-dessous )
# Option 77 (0x4D) : 2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 (valeur fixe ?)
# Option 90 (0x5A) : Suite de champs <type><taille><data> , la taille incluant les data + les 2 octets de type et taille:
# 0000000000000000000000 (valeur fixe) + 1a0900000558010341 (valeur fixe) +
# 010d + (username ppp avec le fti/ sur 11 caracteres) +
# 3c12XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (ou les XX sont 16 octets aléatoire <RANDSTRING>) +
# 0313YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY (ou les YY sont une valeur calculée ainsi : 1 octet aléatoire <RANDCHAR>
# + hash MD5 de (RANDCHAR + PASSWORD + RANDSTRING), PASSWORD étant le pass ppp)
# Option 61 (0x3D) :01ZZZZZZZZZZZZ' ou les ZZ sont l'adresse MAC de la box.
# username PPP = fti/2222222
# password PPP = aaaaaaa
# mac = 58:92:44:E9:A0:22
#
# Ce qui donne : (avec RANDCHAR = 'e' et RANDSTRING = 'f5y6n8e8u9spe8p9')
#
option sendopts '0x4d:2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 \
0x5d:0x5a:0000000000000000000000
1a0900000558010341
010d6674692f32323232323232
3c12663579366e3865387539737065387039
03136565 64373833663538373832666461316139393731386661323331663435353362\
0x3d:01589244e9a022
Et.... échec total , pas d'IP.
Pour calculer la valeur à placer dans 0313 , j'ai fait ainsi :
J'ai créé un fichier avec le contenu "eaaaaaaaf5y6n8e8u9spe8p9" (sans le 0x0a à la fin), puis :
md5sum <fichier> | hexdump -C
Et j'ai pris les valeurs en hexa.
Ce que je comprends pas c'est que le préfixe 0313 implique d'avoir 17 octets : Le randchar + 16 octets de MD5 . Mais chez moi md5sum me donne 32 octets, pas 16...
Dans l'urgence j'ai remis la conf qui marchait (15 personnes étaient coupées , quand même) mais je compte me re-pencher sur la question et , pourquoi pas, faire un petit script qui calcule & affiche les valeurs.