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

Mise en place d’un serveur Radius pour authentication …student.4must.be/wp-content/uploads/2010/09/FreeRadius.pdf · serveur VPN sous LinuX Retour d’expØrience sur la mise

  • Upload
    hacong

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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