Services/RADIUS.md
... ...
@@ -324,6 +324,129 @@ la configuration complète du module est disponible [ici](Services/RADIUS/config
324 324
### Cas de Beaune
325 325
TODO
326 326
327
+
328
+
329
+# Tester son serveur RADIUS
330
+
331
+Pour tester l'authentification PEAPv0/MSCHAPv2 il y a deux outils.
332
+En effet, il faut tester séparément la partie MSCHAP et la partie EAP.
333
+
334
+## Test de l'authentification MSCHAP
335
+
336
+C'est la première chose à tester. En effet, si l'authentification MSCHAP ne fonctionne pas
337
+l'authentification EAP n'aboutiera pas.
338
+
339
+On va donc tester le Radius Virtuel "inner-tunnel" séparément
340
+
341
+Pour cela, on utilise la commande `radtest` :
342
+
343
+`radtest -t mschap USER PASSWORD 127.0.0.1:18120 10 testing123`
344
+ou :
345
+ - `-t mschap` permet de sélectionner l'authentification
346
+
347
+ - `USER` et `PASSWORD` sont les identifiants d'un utilisateur de test du LDAP (on peut
348
+utiliser n'importe lequel, mais il faut écrire le mot de passe en clair dans la commande).
349
+Au ResEl, on peut utiliser le couple id/pwd : `jdoetwo`/`jdoetwo`.
350
+
351
+ - `10` ne sert à rien mais est un paramètre obligatoire (voir `man radtest`)
352
+
353
+ - `testing123` est le mot de passe pour localhost dans le fichier `client.conf`
354
+
355
+si la réponse ressemble à ceci alors le inner-tunnel doit être fonctionnel.
356
+
357
+```
358
+freerad@beowulf ~/3.0 % radtest -t mschap jdoetwo jdoetwo localhost:18120 10 testing123
359
+Sent Access-Request Id 217 from 0.0.0.0:44752 to 127.0.0.1:18120 length 133
360
+ User-Name = "jdoetwo"
361
+ MS-CHAP-Password = "jdoetwo"
362
+ NAS-IP-Address = 127.0.0.1
363
+ NAS-Port = 10
364
+ Message-Authenticator = 0x00
365
+ Cleartext-Password = "jdoetwo"
366
+ MS-CHAP-Challenge = 0x2f9b49eb165fcd82
367
+ MS-CHAP-Response = 0x000100000000000000000000000000000000000000000000000059aa57b76bf01ea415ba8d7d2a14e4ec3759c805c29272a4
368
+Received Access-Accept Id 217 from 127.0.0.1:18120 to 0.0.0.0:0 length 84
369
+ MS-CHAP-MPPE-Keys = 0x00000000000000001a6f5e791bb802ec0f728f34860e1921
370
+ MS-MPPE-Encryption-Policy = Encryption-Allowed
371
+ MS-MPPE-Encryption-Types = RC4-40or128-bit-Allowed
372
+```
373
+
374
+La partie intéressante est `Received Access-Accept Id 217 from 127.0.0.1:18120 to 0.0.0.0:0`.
375
+En cas d'erreur on doit recevoir un `Access-Reject`.
376
+
377
+## Test de l'authentification PEAP
378
+
379
+Pour tester l'authentification PEAP j'utilise l'outil `eapol_test` à compiler depuis les
380
+sources de `wpa_supplicant`. Un tuto est disponible [ici](http://deployingradius.com/scripts/eapol_test/).
381
+Le problème étant que je n'ai pas réussi à le compiler (des erreurs
382
+dans le code source, apparament...) donc j'ai réussi à le télécharger sur
383
+[le site de Eduroam Tchèque](https://www.eduroam.cz/rad_eap_test/).
384
+
385
+Le fichier de configuration pour tester l'authentificatation PEAPv0/MSCHAPv2 à été trouvé sur
386
+[deployingradius.com/scripts/eapol_test/](http://deployingradius.com/scripts/eapol_test/)
387
+Des fichiers de configuration pour d'autres authentification sont aussi disponibles
388
+##### peap-mschapv2.conf
389
+
390
+```
391
+#
392
+# eapol_test -c peap-mschapv2.conf -s testing123
393
+#
394
+network={
395
+ ssid="example"
396
+ key_mgmt=WPA-EAP
397
+ eap=PEAP
398
+ identity="jdoetwo"
399
+ anonymous_identity="jdoetwo"
400
+ password="jdoetwo"
401
+ phase2="autheap=MSCHAPV2"
402
+
403
+ #
404
+ # Uncomment the following to perform server certificate validation.
405
+# ca_cert="/etc/raddb/certs/ca.der"
406
+}
407
+```
408
+
409
+Pour effectuer le test, la commande est la suivante:
410
+
411
+`19:38 bmateu@beowulf ~ % sudo ./eapol_test -c peap-mschapv2.conf -s testing123`
412
+en se placant dans le répertoire contenant l'exécutable de eapol_test et le fichier de configuration.
413
+
414
+ - `-s testing123` est l'option pour choisir le mot de passe pour localhost configuré dans `clients.conf`
415
+
416
+L'output est très verbeux, mais normalement si l'authentification échoue c'est assez clair.
417
+Avec une authentification réussie les dernières lignes sont :
418
+
419
+```
420
+...
421
+EAPOL: Received EAP-Packet frame
422
+EAPOL: SUPP_BE entering state REQUEST
423
+EAPOL: getSuppRsp
424
+EAP: EAP entering state RECEIVED
425
+EAP: Received EAP-Success
426
+EAP: EAP entering state SUCCESS
427
+CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
428
+EAPOL: IEEE 802.1X for plaintext connection; no EAPOL-Key frames required
429
+WPA: EAPOL processing complete
430
+EAPOL: SUPP_PAE entering state AUTHENTICATED
431
+EAPOL: SUPP_BE entering state RECEIVE
432
+EAPOL: SUPP_BE entering state SUCCESS
433
+EAPOL: SUPP_BE entering state IDLE
434
+eapol_sm_cb: success=1
435
+PMK from EAPOL - hexdump(len=32): 4d e7 bf c7 3f 05 e8 dd 8d d0 12 2d 98 9a 94 3d e7 fb 25 77 92 74 00 4f 1c 41 01 fc 2b ce 76 41
436
+EAP: deinitialize previously used EAP method (25, PEAP) at EAP deinit
437
+ENGINE: engine deinit
438
+MPPE keys OK: 1 mismatch: 0
439
+SUCCESS
440
+
441
+
442
+```
443
+
444
+
445
+On peut aussi regarder si on a bien recu un auth ok dans le fichier de log `radius.log` par défault dans
446
+`/var/log/freeradius/radius.log` pour l'utilisateur `jdoe`.
447
+
448
+
449
+
327 450
# Proxy RADIUS
328 451
329 452
... ...
@@ -346,6 +469,7 @@ Dans cet exemple, le partenaire fictif serait '''unet.fr'''
346 469
* Le serveur radius comprend que la requête concerne UNet et redirige le dialoque vers leur pool de serveurs RADIUS.
347 470
* Le pool de serveurs RADIUS d'UNet prend une décision, qui est ensuite appliquée par le point d'accès auquel Emma Michu s'est connectée.
348 471
472
+
349 473
# Radmin : Outil de debug radius
350 474
Radmin est un outil qui permet de contrôler le serveur radius
351 475
la manPage est dispo ici : http://freeradius.org/radiusd/man/radmin.html