c3216498eb58d2b5e87301f2d2c2c0bd0f2ea8dd
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 |