Freeradius – ActiveDirectory

Cet article montre les étapes nécessaires à l’utilisation de Freeradius sur une Debian Wheezy pour authentifier les utilisateurs sur un serveur ActiveDirectory (Windows Server 2012).

Les requêtes EAP seront encapsulées en TTLS ou en PEAP, l’authentification sera effectuée via un challenge EAP MSCHAP v2.

La partie proxy sera aussi configurée pour permettre l’authentification via d’autres serveurs radius disposant de leurs propres bases d’utilisateurs.

Informations générales

  • domaine DNS : test.example.org
  • domaine NetBios : TEST
  • nom du serveur AD : ad.test.example.org
  • adresse du DNS de l’AD : 10.0.0.1

Une parfaite résolution DNS est essentielle à tout système, en particulier quand il y a un annuaire ActiveDirectory. On modifie donc les paramètres DNS de la Debian pour utiliser le DNS de l’AD.

De même une synchronisation horaire précise est essentielle. On modifie donc la configuration NTP pour utiliser le serveur AD comme source de temps. Ici j’utilise openntp :

J’utilise le nom du domaine de l’AD pour profiter du RR DNS.
On redémarre le serveur pour bien prendre en compte les modifications.

Intégration du serveur dans l’ActiveDirectory

Installation des paquets

Kerberos

L’utilisation de Kerberos n’est pas indispensable pour joindre une machine à l’AD, mais elle est recommandée.

Configuration

La casse est importante dans le protocole Kerberos, par convention on utilise le nom DNS en majuscule pour les royaumes.

Récupération d’un ticket Kerberos

Vérification du ticket

Samba

Configuration

Redémarrage de Samba

Intégration dans l’AD

Si le ticket Kerberos est valide, vous devriez obtenir le message suivant :

Dans le cas contraire, ou en l’absence de Kerberos, vous obtiendrez ceci :

Les 2 dernières lignes indiquent que l’ajout du serveur dans le DNS de l’AD a échoué, cela n’a rien d’anormal si vous n’utilisez pas Kerberos ou si vos DNS n’acceptent pas la création dynamique d’objets, il vous suffit d’aller créer manuellement une entrée pour votre serveur Linux dans le DNS de l’AD.
Si vous obtenez autre chose, c’est probablement qu’il y a un problème de résolution de nom ou de configuration.

Redémarrage de WinBind

Tests de la liaison avec l’annuaire

Test de la connexion RCP :

Lister les utilisateurs de l’annuaire (attention si vous avez un grand nombre de comptes) :

Test d’authentification :

Les 2 premières lignes indiquent que l’authentification en clair a échoué, ce qui est normal, c’est la dernière ligne qui est importante, elle indique que l’authentification par Challenge/Response est valide.

Freeradius

Installation des paquets

Autorisation pour le ntlm

L’authentification sur l’annuaire est effectuée en NTLM, il faut donc que le service radius ait le droit d’utiliser winbind.

Configuration de Freeradius

La configuration de Freeradius est très complexe car très complète. Elle couvre par défaut une très grande variété de cas d’utilisation. Il est donc recommandé de ne pas la modifier, mais juste de l’adapter.
Dans le cas présent, j’ai choisi de ne pas respecter cette recommandation pour éviter de poster plus de 5000 lignes de configuration, c’est environ le nombre de lignes des différents fichiers de configuration.

Il n’y a normalement que 4 fichiers à modifier :

  • /etc/freeradius/eap.conf : il contient la configuration des méthodes EAP
  • /etc/freeradius/modules/mschap : c’est ce module qui fera l’authentification sur l’AD
  • /etc/freeradius/proxy.conf : sert à relayer les requêtes sur d’autres serveurs radius
  • /etc/freeradius/clients.conf : c’est ici que sont déclarés les NAS autorisés à utiliser le radius

Configuration de l’EAP

Configuration du MS-CHAP v2

Dans certaines configuration, il faudra ajouter votre nom de domaine à la commande ntlm_auth avec la directive suivante : –domain=TEST

Configuration du proxy radius

Les requêtes des utilisateurs précisant un domaine d’authentification qui n’est pas le notre seront transmises à un autre serveur radius (1.1.1.1 dans l’exemple).

Déclaration des NAS

On déclare ici les NAS qui pourront interroger notre serveur radius

Redémarrage du service

Test local

Conclusion

Je n’ai pas couvert le détail de la configuration, il s’agit encore une fois d’une prise de notes mise en forme.

Il faudrait compléter cette installation avec le paramétrage des journaux, l’accounting et la sécurisation de la configuration avant d’envisager une mise en production. Peut être dans un prochain article.

Laisser un commentaire