49
Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX Retour d’expérience sur la mise en place d’un serveur FreeRadius Dominique CARON Ing ´ enieur de Recherche CNRS Administrateur Syst ` eme UNIX, Universit ´ e MONTPELLIER II Powered By ’Puissance du Poing’ Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.1/14

Free radius

Embed Size (px)

DESCRIPTION

,,

Citation preview

Page 1: Free radius

Mise en place d’un serveur Radiuspour authentification sur une

serveur VPN sous LinuXRetour d’expérience sur la mise en place d’un

serveur FreeRadiusDominique CARON

Ingenieur de Recherche CNRSAdministrateur Systeme UNIX, Universite MONTPELLIER II

Powered By ’Puissance du Poing’

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.1/14

Page 2: Free radius

Le serveur VPN (POPTop)

� POPTop est un serveur qui implémente le protocole pptpd(Point to Point Tunneling Protocol). Il encapsule despaquets PPP dans du GRE (Generic Routine Encapsulation)

POPTop ne gère ni l’encryptage du tunnel, nil’authentification.

POPTop s’appuie sur PPP. PPP implémente plusieursprotocoles d’authentification dont MSchap(Microsoftcompatible authentication and encryption) v1 et v2, PAP(Password authentication protocol) ,CHAP etc...

La seule façon, à ma connaissance, de créer un canal cryptéest d’utiliser le protocole mppe qui nécessite de compiler lemodule ppp_mppe dans le noyau Linux du serveur et dansles noyaux des clients Linux!

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14

Page 3: Free radius

Le serveur VPN (POPTop)

� POPTop est un serveur qui implémente le protocole pptpd(Point to Point Tunneling Protocol). Il encapsule despaquets PPP dans du GRE (Generic Routine Encapsulation)

� POPTop ne gère ni l’encryptage du tunnel, nil’authentification.

POPTop s’appuie sur PPP. PPP implémente plusieursprotocoles d’authentification dont MSchap(Microsoftcompatible authentication and encryption) v1 et v2, PAP(Password authentication protocol) ,CHAP etc...

La seule façon, à ma connaissance, de créer un canal cryptéest d’utiliser le protocole mppe qui nécessite de compiler lemodule ppp_mppe dans le noyau Linux du serveur et dansles noyaux des clients Linux!

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14

Page 4: Free radius

Le serveur VPN (POPTop)

� POPTop est un serveur qui implémente le protocole pptpd(Point to Point Tunneling Protocol). Il encapsule despaquets PPP dans du GRE (Generic Routine Encapsulation)

� POPTop ne gère ni l’encryptage du tunnel, nil’authentification.

� POPTop s’appuie sur PPP. PPP implémente plusieursprotocoles d’authentification dont MSchap(Microsoftcompatible authentication and encryption) v1 et v2, PAP(Password authentication protocol) ,CHAP etc...

La seule façon, à ma connaissance, de créer un canal cryptéest d’utiliser le protocole mppe qui nécessite de compiler lemodule ppp_mppe dans le noyau Linux du serveur et dansles noyaux des clients Linux!

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14

Page 5: Free radius

Le serveur VPN (POPTop)

� POPTop est un serveur qui implémente le protocole pptpd(Point to Point Tunneling Protocol). Il encapsule despaquets PPP dans du GRE (Generic Routine Encapsulation)

� POPTop ne gère ni l’encryptage du tunnel, nil’authentification.

� POPTop s’appuie sur PPP. PPP implémente plusieursprotocoles d’authentification dont MSchap(Microsoftcompatible authentication and encryption) v1 et v2, PAP(Password authentication protocol) ,CHAP etc...

� La seule façon, à ma connaissance, de créer un canal cryptéest d’utiliser le protocole mppe qui nécessite de compiler lemodule ppp_mppe dans le noyau Linux du serveur et dansles noyaux des clients Linux!

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14

Page 6: Free radius

PPPd

� Avec PPPD l’authentification par défaut se faitpar fichier (/etc/ppp/pap-secrets ou chap-secret).

� Ce qui rend la gestion des utilisateurs péniblepour ne pas dire impossible par exemple dans lecas de changement de mot de passe.

� Pour remédier à ce problème on a pensé à radius(en plus ça fait très Pro ;-)

� Comme on est radin et qu’on veut (un peu)comprendre, on se tourne vers le libre(FreeRadius ou GNURadius)

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.3/14

Page 7: Free radius

FreeRadius

� Radius = Remote Authentification in Dial-InUser Service .

Radius ne VA PAS ENCRYPTER le tunnelRadius va se charger : ( de l’authentification, desautorisations, des informations de sessions).Attention , pour qu’un serveur VPN de typePOPTop puisse correspondre avec un serveurRadius IL FAUT RECOMPILER PPPd afind’avoir le module radius.soOn installe freeradius par rpm ou tar.gz , pas deproblème particulier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14

Page 8: Free radius

FreeRadius

� Radius = Remote Authentification in Dial-InUser Service .

� Radius ne VA PAS ENCRYPTER le tunnel

Radius va se charger : ( de l’authentification, desautorisations, des informations de sessions).Attention , pour qu’un serveur VPN de typePOPTop puisse correspondre avec un serveurRadius IL FAUT RECOMPILER PPPd afind’avoir le module radius.soOn installe freeradius par rpm ou tar.gz , pas deproblème particulier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14

Page 9: Free radius

FreeRadius

� Radius = Remote Authentification in Dial-InUser Service .

� Radius ne VA PAS ENCRYPTER le tunnel

� Radius va se charger : ( de l’authentification, desautorisations, des informations de sessions).

Attention , pour qu’un serveur VPN de typePOPTop puisse correspondre avec un serveurRadius IL FAUT RECOMPILER PPPd afind’avoir le module radius.soOn installe freeradius par rpm ou tar.gz , pas deproblème particulier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14

Page 10: Free radius

FreeRadius

� Radius = Remote Authentification in Dial-InUser Service .

� Radius ne VA PAS ENCRYPTER le tunnel

� Radius va se charger : ( de l’authentification, desautorisations, des informations de sessions).

� Attention , pour qu’un serveur VPN de typePOPTop puisse correspondre avec un serveurRadius IL FAUT RECOMPILER PPPd afind’avoir le module radius.so

On installe freeradius par rpm ou tar.gz , pas deproblème particulier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14

Page 11: Free radius

FreeRadius

� Radius = Remote Authentification in Dial-InUser Service .

� Radius ne VA PAS ENCRYPTER le tunnel

� Radius va se charger : ( de l’authentification, desautorisations, des informations de sessions).

� Attention , pour qu’un serveur VPN de typePOPTop puisse correspondre avec un serveurRadius IL FAUT RECOMPILER PPPd afind’avoir le module radius.so

� On installe freeradius par rpm ou tar.gz , pas deproblème particulier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14

Page 12: Free radius

Authentification

� Par le Système- Le nom et le mot de passe de l’utilisateur sont ceux dusystème (UNIX), Freeradius utilise /etc/passwd et/ou NIS.C’est la config par défaut de FreeRadius

En InterneLe nom et le mot de passe de l’utilisateur sont stockés dansles fichiers de config de radius

Par Base de donnée(MySQL,Oracle,PostgreSQL,LDAP)les informations de l’utilisateur sont stockés dans une basede donnée, attention la communication Radius<->SQLn’est pas encrytée.

PAM (Pluggable Authentication Service) c’estselon la config de PAM que va se faire l’authentification

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14

Page 13: Free radius

Authentification

� Par le Système- Le nom et le mot de passe de l’utilisateur sont ceux dusystème (UNIX), Freeradius utilise /etc/passwd et/ou NIS.C’est la config par défaut de FreeRadius

� En InterneLe nom et le mot de passe de l’utilisateur sont stockés dansles fichiers de config de radius

Par Base de donnée(MySQL,Oracle,PostgreSQL,LDAP)les informations de l’utilisateur sont stockés dans une basede donnée, attention la communication Radius<->SQLn’est pas encrytée.

PAM (Pluggable Authentication Service) c’estselon la config de PAM que va se faire l’authentification

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14

Page 14: Free radius

Authentification

� Par le Système- Le nom et le mot de passe de l’utilisateur sont ceux dusystème (UNIX), Freeradius utilise /etc/passwd et/ou NIS.C’est la config par défaut de FreeRadius

� En InterneLe nom et le mot de passe de l’utilisateur sont stockés dansles fichiers de config de radius

� Par Base de donnée(MySQL,Oracle,PostgreSQL,LDAP)les informations de l’utilisateur sont stockés dans une basede donnée, attention la communication Radius<->SQLn’est pas encrytée.

PAM (Pluggable Authentication Service) c’estselon la config de PAM que va se faire l’authentification

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14

Page 15: Free radius

Authentification

� Par le Système- Le nom et le mot de passe de l’utilisateur sont ceux dusystème (UNIX), Freeradius utilise /etc/passwd et/ou NIS.C’est la config par défaut de FreeRadius

� En InterneLe nom et le mot de passe de l’utilisateur sont stockés dansles fichiers de config de radius

� Par Base de donnée(MySQL,Oracle,PostgreSQL,LDAP)les informations de l’utilisateur sont stockés dans une basede donnée, attention la communication Radius<->SQLn’est pas encrytée.

� PAM (Pluggable Authentication Service) c’estselon la config de PAM que va se faire l’authentification

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14

Page 16: Free radius

Schéma des encryptages

INTERNET

Routeur/Firewall

Serveur VPN

Serveur FreeRadius

Serveur SQL

Client VPN

Canal encrypté ou non

Canal encrypté

Canal non encrypté

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14

Page 17: Free radius

Schéma des encryptages

INTERNET

Routeur/Firewall

Serveur VPN

Serveur FreeRadius

Serveur SQL

Client VPN

Canal encrypté ou non

Canal encrypté

Canal non encrypté

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14

Page 18: Free radius

Schéma des encryptages

INTERNET

Routeur/Firewall

Serveur VPN

Serveur FreeRadius

Serveur SQL

Client VPN

Canal encrypté ou non

Canal encrypté

Canal non encrypté

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14

Page 19: Free radius

Schéma des encryptages

INTERNET

Routeur/Firewall

Serveur VPN

Serveur FreeRadius

Serveur SQL

Client VPN

Canal encrypté ou non

Canal encrypté

Canal non encrypté

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14

Page 20: Free radius

Configuration de FreeRadiusIl est clair que les fichiers de configurations ne sont pas trèsconviviaux. Cela peut effrayer au début. Mais ils sont vraimentbien commentés.

� Aïe Aïe , ca se Corse.# ls /usr/local/freeradius-1.0.1/etc/raddb/

acct users experimental.conf oraclesql.conf snmp.confattrs hints postgresql.conf sql.confcerts/ huntgroups preproxy users usersclients ldap.attrmap proxy.conf x99.confclients.conf mssql.conf radiusd.conf x99passwd.sampledictionary naslist eap.conf naspasswd realms

radiusd.conf: fichier principal de configuration du serveur

clients.conf: fichier de configuration des clients (type , No IP..)

sql.conf: fichier de config pour accès au serveur MySQL.

users: fichier de configuration si pas de contrôle par SGBD.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14

Page 21: Free radius

Configuration de FreeRadiusIl est clair que les fichiers de configurations ne sont pas trèsconviviaux. Cela peut effrayer au début. Mais ils sont vraimentbien commentés.

� Aïe Aïe , ca se Corse.# ls /usr/local/freeradius-1.0.1/etc/raddb/

acct users experimental.conf oraclesql.conf snmp.confattrs hints postgresql.conf sql.confcerts/ huntgroups preproxy users usersclients ldap.attrmap proxy.conf x99.confclients.conf mssql.conf radiusd.conf x99passwd.sampledictionary naslist eap.conf naspasswd realms

radiusd.conf: fichier principal de configuration du serveur

clients.conf: fichier de configuration des clients (type , No IP..)

sql.conf: fichier de config pour accès au serveur MySQL.

users: fichier de configuration si pas de contrôle par SGBD.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14

Page 22: Free radius

Configuration de FreeRadiusIl est clair que les fichiers de configurations ne sont pas trèsconviviaux. Cela peut effrayer au début. Mais ils sont vraimentbien commentés.

� Aïe Aïe , ca se Corse.# ls /usr/local/freeradius-1.0.1/etc/raddb/

acct users experimental.conf oraclesql.conf snmp.confattrs hints postgresql.conf sql.confcerts/ huntgroups preproxy users usersclients ldap.attrmap proxy.conf x99.confclients.conf mssql.conf radiusd.conf x99passwd.sampledictionary naslist eap.conf naspasswd realms

radiusd.conf: fichier principal de configuration du serveur

clients.conf: fichier de configuration des clients (type , No IP..)

sql.conf: fichier de config pour accès au serveur MySQL.

users: fichier de configuration si pas de contrôle par SGBD.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14

Page 23: Free radius

Configuration de FreeRadiusIl est clair que les fichiers de configurations ne sont pas trèsconviviaux. Cela peut effrayer au début. Mais ils sont vraimentbien commentés.

� Aïe Aïe , ca se Corse.# ls /usr/local/freeradius-1.0.1/etc/raddb/

acct users experimental.conf oraclesql.conf snmp.confattrs hints postgresql.conf sql.confcerts/ huntgroups preproxy users usersclients ldap.attrmap proxy.conf x99.confclients.conf mssql.conf radiusd.conf x99passwd.sampledictionary naslist eap.conf naspasswd realms

radiusd.conf: fichier principal de configuration du serveur

clients.conf: fichier de configuration des clients (type , No IP..)

sql.conf: fichier de config pour accès au serveur MySQL.

users: fichier de configuration si pas de contrôle par SGBD.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14

Page 24: Free radius

Configuration de FreeRadiusIl est clair que les fichiers de configurations ne sont pas trèsconviviaux. Cela peut effrayer au début. Mais ils sont vraimentbien commentés.

� Aïe Aïe , ca se Corse.# ls /usr/local/freeradius-1.0.1/etc/raddb/

acct users experimental.conf oraclesql.conf snmp.confattrs hints postgresql.conf sql.confcerts/ huntgroups preproxy users usersclients ldap.attrmap proxy.conf x99.confclients.conf mssql.conf radiusd.conf x99passwd.sampledictionary naslist eap.conf naspasswd realms

radiusd.conf: fichier principal de configuration du serveur

clients.conf: fichier de configuration des clients (type , No IP..)

sql.conf: fichier de config pour accès au serveur MySQL.

users: fichier de configuration si pas de contrôle par SGBD.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14

Page 25: Free radius

Configuration de FreeRadiusIl est clair que les fichiers de configurations ne sont pas trèsconviviaux. Cela peut effrayer au début. Mais ils sont vraimentbien commentés.

� Aïe Aïe , ca se Corse.# ls /usr/local/freeradius-1.0.1/etc/raddb/

acct users experimental.conf oraclesql.conf snmp.confattrs hints postgresql.conf sql.confcerts/ huntgroups preproxy users usersclients ldap.attrmap proxy.conf x99.confclients.conf mssql.conf radiusd.conf x99passwd.sampledictionary naslist eap.conf naspasswd realms

radiusd.conf: fichier principal de configuration du serveur

clients.conf: fichier de configuration des clients (type , No IP..)

sql.conf: fichier de config pour accès au serveur MySQL.

users: fichier de configuration si pas de contrôle par SGBD.Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14

Page 26: Free radius

clients.confC’est le seul fichier à modifier si vous désirez faireune authentification System (username et mot de passeUNIX)

� Syntaxe très simple .client host.domainname

secret = motdepasseradiusshortname = aliasnastype = other

Autant de fois qu’il y a de clients. Chaque client peut avoirun mot de passe différent.

host.domainname peut être remplacé par Adresse IP

les type NAS connu par Freeradius:cisco, computone, livingston, max40xx,multitech, netserver, pathras, patton, portslave, tc,usrhiper,otherCONSEIL: Il est imperatif d’intervenir dasn ce fichier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14

Page 27: Free radius

clients.confC’est le seul fichier à modifier si vous désirez faireune authentification System (username et mot de passeUNIX)

� Syntaxe très simple .client host.domainname

secret = motdepasseradiusshortname = aliasnastype = other

Autant de fois qu’il y a de clients. Chaque client peut avoirun mot de passe différent.

� host.domainname peut être remplacé par Adresse IP

les type NAS connu par Freeradius:cisco, computone, livingston, max40xx,multitech, netserver, pathras, patton, portslave, tc,usrhiper,otherCONSEIL: Il est imperatif d’intervenir dasn ce fichier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14

Page 28: Free radius

clients.confC’est le seul fichier à modifier si vous désirez faireune authentification System (username et mot de passeUNIX)

� Syntaxe très simple .client host.domainname

secret = motdepasseradiusshortname = aliasnastype = other

Autant de fois qu’il y a de clients. Chaque client peut avoirun mot de passe différent.

� host.domainname peut être remplacé par Adresse IP

� les type NAS connu par Freeradius:cisco, computone, livingston, max40xx,multitech, netserver, pathras, patton, portslave, tc,usrhiper,other

CONSEIL: Il est imperatif d’intervenir dasn ce fichier.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14

Page 29: Free radius

users

� Ce fichier permet de connaître les directives c’està dire la méthode d’authentification et lesautorisations à appliquer à chaque utilisateur sion ne désire pas utiliser de base de données .

Chaque entrée de ce fichier commence par le nomd’un utilisateur, l’entrée DEFAULT concerne tousles utilisateurs.L’attribut Auth-Type permet de définir le(s)type(s) d’authentification permis.L’attribut Fall-Through (yes or no) permet de direà radius si il doit continuer dans le fichier pour lecas ou l’authentification aurait échouée.CONSEIL :Ne touchez pas a ce fichier ;-)

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14

Page 30: Free radius

users

� Ce fichier permet de connaître les directives c’està dire la méthode d’authentification et lesautorisations à appliquer à chaque utilisateur sion ne désire pas utiliser de base de données .

� Chaque entrée de ce fichier commence par le nomd’un utilisateur, l’entrée DEFAULT concerne tousles utilisateurs.

L’attribut Auth-Type permet de définir le(s)type(s) d’authentification permis.L’attribut Fall-Through (yes or no) permet de direà radius si il doit continuer dans le fichier pour lecas ou l’authentification aurait échouée.CONSEIL :Ne touchez pas a ce fichier ;-)

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14

Page 31: Free radius

users

� Ce fichier permet de connaître les directives c’està dire la méthode d’authentification et lesautorisations à appliquer à chaque utilisateur sion ne désire pas utiliser de base de données .

� Chaque entrée de ce fichier commence par le nomd’un utilisateur, l’entrée DEFAULT concerne tousles utilisateurs.

� L’attribut Auth-Type permet de définir le(s)type(s) d’authentification permis.

L’attribut Fall-Through (yes or no) permet de direà radius si il doit continuer dans le fichier pour lecas ou l’authentification aurait échouée.CONSEIL :Ne touchez pas a ce fichier ;-)

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14

Page 32: Free radius

users

� Ce fichier permet de connaître les directives c’està dire la méthode d’authentification et lesautorisations à appliquer à chaque utilisateur sion ne désire pas utiliser de base de données .

� Chaque entrée de ce fichier commence par le nomd’un utilisateur, l’entrée DEFAULT concerne tousles utilisateurs.

� L’attribut Auth-Type permet de définir le(s)type(s) d’authentification permis.

� L’attribut Fall-Through (yes or no) permet de direà radius si il doit continuer dans le fichier pour lecas ou l’authentification aurait échouée.

CONSEIL :Ne touchez pas a ce fichier ;-)

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14

Page 33: Free radius

users

� Ce fichier permet de connaître les directives c’està dire la méthode d’authentification et lesautorisations à appliquer à chaque utilisateur sion ne désire pas utiliser de base de données .

� Chaque entrée de ce fichier commence par le nomd’un utilisateur, l’entrée DEFAULT concerne tousles utilisateurs.

� L’attribut Auth-Type permet de définir le(s)type(s) d’authentification permis.

� L’attribut Fall-Through (yes or no) permet de direà radius si il doit continuer dans le fichier pour lecas ou l’authentification aurait échouée.

� CONSEIL :Ne touchez pas a ce fichier ;-)Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14

Page 34: Free radius

sql.conf

� Ce fichier n’est utilisé que si vous désirez utiliser unserveur MySQL pour la gestion des utilisateurs.

Vérifier dans radius.conf, à la section module, la ligne:$INCLUDE $ confdir /sql.conf

Ainsi que dans la section authorize que sql soit biendécommenté. Vous pouvez mettre file en commentaire dans la section authorize

pour ne permettre que ce type d’authorisation.

Attributs OBLIGATOIRES.server = ”localhost” # MySQL serverlogin = ”radius” # MySQL usernamepassword = ”xxxxxxx” # MySQL user passwordradius db = ”Radius” # MySQL radius database

Freeradius est livré avec un petit code PHP permettantaisément de gérer les utilisateurs en base de données

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.10/14

Page 35: Free radius

sql.conf

� Ce fichier n’est utilisé que si vous désirez utiliser unserveur MySQL pour la gestion des utilisateurs.

� Vérifier dans radius.conf, à la section module, la ligne:$INCLUDE $

confdir

/sql.conf

Ainsi que dans la section authorize que sql soit biendécommenté. Vous pouvez mettre file en commentaire dans la section authorize

pour ne permettre que ce type d’authorisation.

Attributs OBLIGATOIRES.server = ”localhost” # MySQL serverlogin = ”radius” # MySQL usernamepassword = ”xxxxxxx” # MySQL user passwordradius db = ”Radius” # MySQL radius database

Freeradius est livré avec un petit code PHP permettantaisément de gérer les utilisateurs en base de données

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.10/14

Page 36: Free radius

sql.conf

� Ce fichier n’est utilisé que si vous désirez utiliser unserveur MySQL pour la gestion des utilisateurs.

� Vérifier dans radius.conf, à la section module, la ligne:$INCLUDE $

confdir

/sql.conf

Ainsi que dans la section authorize que sql soit biendécommenté. Vous pouvez mettre file en commentaire dans la section authorize

pour ne permettre que ce type d’authorisation.

� Attributs OBLIGATOIRES.server = ”localhost” # MySQL serverlogin = ”radius” # MySQL usernamepassword = ”xxxxxxx” # MySQL user passwordradius db = ”Radius” # MySQL radius database

Freeradius est livré avec un petit code PHP permettantaisément de gérer les utilisateurs en base de données

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.10/14

Page 37: Free radius

radiusd.conf

� Il est divisé en sections (Security, proxy, threadpool,modules, authorize, authenticate et accounting),

La section security permet de protéger le serveur contrequelques attaques DoS notamment.

La section proxy permet de configurer les paramètresrelatifs à la communication avec d’autres serveursRADIUS.

La section thread pool permet de configurer le nombre deserveurs qui traitent les requêtes et le nombre de processuslancés.

La section modules.C’est l’une des plus importantes. Ellepermet d’activer et de configurer les méthodesd’authentification. Cette section est la plus longue.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14

Page 38: Free radius

radiusd.conf

� Il est divisé en sections (Security, proxy, threadpool,modules, authorize, authenticate et accounting),

� La section security permet de protéger le serveur contrequelques attaques DoS notamment.

La section proxy permet de configurer les paramètresrelatifs à la communication avec d’autres serveursRADIUS.

La section thread pool permet de configurer le nombre deserveurs qui traitent les requêtes et le nombre de processuslancés.

La section modules.C’est l’une des plus importantes. Ellepermet d’activer et de configurer les méthodesd’authentification. Cette section est la plus longue.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14

Page 39: Free radius

radiusd.conf

� Il est divisé en sections (Security, proxy, threadpool,modules, authorize, authenticate et accounting),

� La section security permet de protéger le serveur contrequelques attaques DoS notamment.

� La section proxy permet de configurer les paramètresrelatifs à la communication avec d’autres serveursRADIUS.

La section thread pool permet de configurer le nombre deserveurs qui traitent les requêtes et le nombre de processuslancés.

La section modules.C’est l’une des plus importantes. Ellepermet d’activer et de configurer les méthodesd’authentification. Cette section est la plus longue.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14

Page 40: Free radius

radiusd.conf

� Il est divisé en sections (Security, proxy, threadpool,modules, authorize, authenticate et accounting),

� La section security permet de protéger le serveur contrequelques attaques DoS notamment.

� La section proxy permet de configurer les paramètresrelatifs à la communication avec d’autres serveursRADIUS.

� La section thread pool permet de configurer le nombre deserveurs qui traitent les requêtes et le nombre de processuslancés.

La section modules.C’est l’une des plus importantes. Ellepermet d’activer et de configurer les méthodesd’authentification. Cette section est la plus longue.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14

Page 41: Free radius

radiusd.conf

� Il est divisé en sections (Security, proxy, threadpool,modules, authorize, authenticate et accounting),

� La section security permet de protéger le serveur contrequelques attaques DoS notamment.

� La section proxy permet de configurer les paramètresrelatifs à la communication avec d’autres serveursRADIUS.

� La section thread pool permet de configurer le nombre deserveurs qui traitent les requêtes et le nombre de processuslancés.

� La section modules.C’est l’une des plus importantes. Ellepermet d’activer et de configurer les méthodesd’authentification. Cette section est la plus longue.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14

Page 42: Free radius

radiusd.conf (2)

� La section authorize spécifie l’ordre et les méthodesd’authentification dans lequel le serveur doit vérifier lesidentités des utilisateurs désireux de s’authentifier. Pardéfaut, c’est seulement par le fichier users que l’on peutvérifier les utilisateurs.

La section authenticate précise quels modules sontdisponibles pour l’authentification. Ne pas confondre avecla section précédente.

La section accounting spécifie la manière dont les logsvont être enregistrés

CONSEIL :Ne pas triturer ce fichier sans comprendre unminimum.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14

Page 43: Free radius

radiusd.conf (2)

� La section authorize spécifie l’ordre et les méthodesd’authentification dans lequel le serveur doit vérifier lesidentités des utilisateurs désireux de s’authentifier. Pardéfaut, c’est seulement par le fichier users que l’on peutvérifier les utilisateurs.

� La section authenticate précise quels modules sontdisponibles pour l’authentification. Ne pas confondre avecla section précédente.

La section accounting spécifie la manière dont les logsvont être enregistrés

CONSEIL :Ne pas triturer ce fichier sans comprendre unminimum.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14

Page 44: Free radius

radiusd.conf (2)

� La section authorize spécifie l’ordre et les méthodesd’authentification dans lequel le serveur doit vérifier lesidentités des utilisateurs désireux de s’authentifier. Pardéfaut, c’est seulement par le fichier users que l’on peutvérifier les utilisateurs.

� La section authenticate précise quels modules sontdisponibles pour l’authentification. Ne pas confondre avecla section précédente.

� La section accounting spécifie la manière dont les logsvont être enregistrés

CONSEIL :Ne pas triturer ce fichier sans comprendre unminimum.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14

Page 45: Free radius

Tester RadiusFreeradius est fourni avec quelques utilitaires de test.

� check-radiusd-config permet de tester le fichier de config duserveur

radtest% radtest caron noel32 localhost 1812 SicRetKeySending Access-Request of id 228 to 127.0.0.1:1812

User-Name = ”caron”User-Password = ”noel32”NAS-IP-Address = perseusNAS-Port = 1812

rad recv: Access-Accept packet from host 127.0.0.1:1812, id=228, length=20

Au début, démarrer le démon radiusd avec l’option -X

PPPd compilé avec le module radius.so, fournit un utilitaireradlogin pour tester le client Radius.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14

Page 46: Free radius

Tester RadiusFreeradius est fourni avec quelques utilitaires de test.

� check-radiusd-config permet de tester le fichier de config duserveur

� radtest% radtest caron noel32 localhost 1812 SicRetKeySending Access-Request of id 228 to 127.0.0.1:1812

User-Name = ”caron”User-Password = ”noel32”NAS-IP-Address = perseusNAS-Port = 1812

rad recv: Access-Accept packet from host 127.0.0.1:1812, id=228, length=20

Au début, démarrer le démon radiusd avec l’option -X

PPPd compilé avec le module radius.so, fournit un utilitaireradlogin pour tester le client Radius.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14

Page 47: Free radius

Tester RadiusFreeradius est fourni avec quelques utilitaires de test.

� check-radiusd-config permet de tester le fichier de config duserveur

� radtest% radtest caron noel32 localhost 1812 SicRetKeySending Access-Request of id 228 to 127.0.0.1:1812

User-Name = ”caron”User-Password = ”noel32”NAS-IP-Address = perseusNAS-Port = 1812

rad recv: Access-Accept packet from host 127.0.0.1:1812, id=228, length=20

� Au début, démarrer le démon radiusd avec l’option -X

PPPd compilé avec le module radius.so, fournit un utilitaireradlogin pour tester le client Radius.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14

Page 48: Free radius

Tester RadiusFreeradius est fourni avec quelques utilitaires de test.

� check-radiusd-config permet de tester le fichier de config duserveur

� radtest% radtest caron noel32 localhost 1812 SicRetKeySending Access-Request of id 228 to 127.0.0.1:1812

User-Name = ”caron”User-Password = ”noel32”NAS-IP-Address = perseusNAS-Port = 1812

rad recv: Access-Accept packet from host 127.0.0.1:1812, id=228, length=20

� Au début, démarrer le démon radiusd avec l’option -X

� PPPd compilé avec le module radius.so, fournit un utilitaireradlogin pour tester le client Radius.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14

Page 49: Free radius

(mes) Conclusions

� Mis à part le fait que la communication entre le serveurRadius et son client soit encryptée, un serveur radius n’estpas autre chose qu’un serveur de type NIS ou LDAP (avecquelques spécificité d’informations propres aux NAS).

� La mise en place d’un serveur Radius n’implique pas que lacommunication sera sécurisée de bout en bout (une attaquesur le serveur SQL mal protégé donne au pirate tous lesMdP de tous les utilisateurs.

� C’est grâce au passage par MySQL que la gestion desutilisateurs peut être plus aisée, mais utiliser le fichier/etc/ppp/chap-secrets ne semble pas moins sécurisé que parun serveur Radius ...

� En réalité je ne comprends pas très très bien l’intérêt d’unserveur radius :-(, si ce n’est son obligation pour gérér lesauthentification sur un NAS propriétaire.

Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.14/14