SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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´ nieur de Recherche CNRS
                     e
   Administrateur Syst` me UNIX, Universit´ MONTPELLIER II
                      e                    e
                       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 des
      paquets PPP dans du GRE (Generic Routine Encapsulation)




                       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 des
      paquets PPP dans du GRE (Generic Routine Encapsulation)
      POPTop ne gère ni l’encryptage du tunnel, ni
   




      l’authentification.




                        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 des
      paquets PPP dans du GRE (Generic Routine Encapsulation)
      POPTop ne gère ni l’encryptage du tunnel, ni
   




      l’authentification.
      POPTop s’appuie sur PPP. PPP implémente plusieurs
   




      protocoles d’authentification dont MSchap(Microsoft
      compatible authentication and encryption) v1 et v2, PAP
      (Password authentication protocol) ,CHAP etc...




                        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 des
      paquets PPP dans du GRE (Generic Routine Encapsulation)
      POPTop ne gère ni l’encryptage du tunnel, ni
   




      l’authentification.
      POPTop s’appuie sur PPP. PPP implémente plusieurs
   




      protocoles d’authentification dont MSchap(Microsoft
      compatible 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 le
      module ppp_mppe dans le noyau Linux du serveur et dans
      les 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 fait
   
      par fichier (/etc/ppp/pap-secrets ou chap-secret).
      Ce qui rend la gestion des utilisateurs pénible
   




      pour ne pas dire impossible par exemple dans le
      cas 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-In
   
      User Service .




                     Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
FreeRadius
      Radius = Remote Authentification in Dial-In
   
      User Service .
      Radius ne VA PAS ENCRYPTER le tunnel
   




                     Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
FreeRadius
      Radius = Remote Authentification in Dial-In
   
      User Service .
      Radius ne VA PAS ENCRYPTER le tunnel
   




      Radius va se charger : ( de l’authentification, des
   




      autorisations, des informations de sessions).




                       Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
FreeRadius
      Radius = Remote Authentification in Dial-In
   
      User Service .
      Radius ne VA PAS ENCRYPTER le tunnel
   




      Radius va se charger : ( de l’authentification, des
   




      autorisations, des informations de sessions).
      Attention , pour qu’un serveur VPN de type
   




      POPTop puisse correspondre avec un serveur
      Radius IL FAUT RECOMPILER PPPd afin
      d’avoir le module radius.so




                       Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
FreeRadius
      Radius = Remote Authentification in Dial-In
   
      User Service .
      Radius ne VA PAS ENCRYPTER le tunnel
   




      Radius va se charger : ( de l’authentification, des
   




      autorisations, des informations de sessions).
      Attention , pour qu’un serveur VPN de type
   




      POPTop puisse correspondre avec un serveur
      Radius IL FAUT RECOMPILER PPPd afin
      d’avoir le module radius.so
      On installe freeradius par rpm ou tar.gz , pas de
   




      problè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 du
      système (UNIX), Freeradius utilise /etc/passwd et/ou NIS.
      C’est la config par défaut de FreeRadius




                        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 du
      système (UNIX), Freeradius utilise /etc/passwd et/ou NIS.
      C’est la config par défaut de FreeRadius
      En Interne
   




      Le nom et le mot de passe de l’utilisateur sont stockés dans
      les fichiers de config de radius




                         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 du
      système (UNIX), Freeradius utilise /etc/passwd et/ou NIS.
      C’est la config par défaut de FreeRadius
      En Interne
   




      Le nom et le mot de passe de l’utilisateur sont stockés dans
      les fichiers de config de radius
      Par Base de donnée
   




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


                         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 du
      système (UNIX), Freeradius utilise /etc/passwd et/ou NIS.
      C’est la config par défaut de FreeRadius
      En Interne
   




      Le nom et le mot de passe de l’utilisateur sont stockés dans
      les fichiers de config de radius
      Par Base de donnée
   




      (MySQL,Oracle,PostgreSQL,LDAP)
      les informations de l’utilisateur sont stockés dans une base
      de donnée, attention la communication Radius<->SQL
      n’est pas encrytée.
      PAM (Pluggable Authentication Service) c’est
   




      selon la config de PAM queserveur Radius faire l’authentification – p.5/14
                         Mise en place d’un
                                            va se pour authentification sur une serveur VPN sous LinuX
Schéma des encryptages

Serveur SQL




                                                       INTERNET
                                                                                        Client VPN

Serveur FreeRadius



                                                   Routeur/Firewall


                     Serveur VPN



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

Serveur SQL




                                                       INTERNET
                                                                                        Client VPN

Serveur FreeRadius

                                                                         Canal encrypté ou non
                                                   Routeur/Firewall


                     Serveur VPN



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

  Serveur SQL




                                                         INTERNET
                                                                                          Client VPN

  Serveur FreeRadius

                                                                           Canal encrypté ou non
                                                     Routeur/Firewall
Canal encrypté

                       Serveur VPN



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

  Serveur SQL


          Canal non encrypté



                                                         INTERNET
                                                                                          Client VPN

  Serveur FreeRadius

                                                                           Canal encrypté ou non
                                                     Routeur/Firewall
Canal encrypté

                       Serveur VPN



                                     Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14
Configuration de FreeRadius
Il est clair que les fichiers de configurations ne sont pas très
conviviaux. Cela peut effrayer au début. Mais ils sont vraiment
bien commentés.
       Aïe Aïe , ca se Corse.
    




       # ls /usr/local/freeradius-1.0.1/etc/raddb/




                                     Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
Configuration de FreeRadius
Il est clair que les fichiers de configurations ne sont pas très
conviviaux. Cela peut effrayer au début. Mais ils sont vraiment
bien 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.conf
       attrs          hints             postgresql.conf          sql.conf
       certs/         huntgroups        preproxy users           users
       clients        ldap.attrmap      proxy.conf               x99.conf
       clients.conf   mssql.conf        radiusd.conf             x99passwd.sample
       dictionary     naslist           eap.conf                 naspasswd realms




                                      Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
Configuration de FreeRadius
Il est clair que les fichiers de configurations ne sont pas très
conviviaux. Cela peut effrayer au début. Mais ils sont vraiment
bien 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.conf
       attrs          hints             postgresql.conf          sql.conf
       certs/         huntgroups        preproxy users           users
       clients        ldap.attrmap      proxy.conf               x99.conf
       clients.conf   mssql.conf        radiusd.conf             x99passwd.sample
       dictionary     naslist           eap.conf                 naspasswd realms

       radiusd.conf: fichier principal de configuration du serveur
    




                                      Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
Configuration de FreeRadius
Il est clair que les fichiers de configurations ne sont pas très
conviviaux. Cela peut effrayer au début. Mais ils sont vraiment
bien 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.conf
       attrs          hints             postgresql.conf          sql.conf
       certs/         huntgroups        preproxy users           users
       clients        ldap.attrmap      proxy.conf               x99.conf
       clients.conf   mssql.conf        radiusd.conf             x99passwd.sample
       dictionary     naslist           eap.conf                 naspasswd realms

       radiusd.conf: fichier principal de configuration du serveur
    




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




                                      Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
Configuration de FreeRadius
Il est clair que les fichiers de configurations ne sont pas très
conviviaux. Cela peut effrayer au début. Mais ils sont vraiment
bien 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.conf
       attrs          hints             postgresql.conf          sql.conf
       certs/         huntgroups        preproxy users           users
       clients        ldap.attrmap      proxy.conf               x99.conf
       clients.conf   mssql.conf        radiusd.conf             x99passwd.sample
       dictionary     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.
    




                                      Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
Configuration de FreeRadius
Il est clair que les fichiers de configurations ne sont pas très
conviviaux. Cela peut effrayer au début. Mais ils sont vraiment
bien 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.conf
       attrs          hints             postgresql.conf          sql.conf
       certs/         huntgroups        preproxy users           users
       clients        ldap.attrmap      proxy.conf               x99.conf
       clients.conf   mssql.conf        radiusd.conf             x99passwd.sample
       dictionary     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.conf
C’est le seul fichier à modifier si vous désirez faire
une authentification System (username et mot de passe
UNIX)
    Syntaxe très simple .
    




       client host.domainname




                              ¡
       secret = motdepasseradius
       shortname = alias
       nastype = other
        ¢




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




                                   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14
clients.conf
C’est le seul fichier à modifier si vous désirez faire
une authentification System (username et mot de passe
UNIX)
    Syntaxe très simple .
    




       client host.domainname




                              ¡
       secret = motdepasseradius
       shortname = alias
       nastype = other
        ¢




       Autant de fois qu’il y a de clients. Chaque client peut avoir
       un mot de passe différent.
       host.domainname peut être remplacé par Adresse IP
    




                                   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14
clients.conf
C’est le seul fichier à modifier si vous désirez faire
une authentification System (username et mot de passe
UNIX)
    Syntaxe très simple .
    




       client host.domainname




                              ¡
       secret = motdepasseradius
       shortname = alias
       nastype = other
        ¢




       Autant de fois qu’il y a de clients. Chaque client peut avoir
       un 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              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 les
      autorisations à appliquer à chaque utilisateur si
      on ne désire pas utiliser de base de données .




                      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 les
      autorisations à appliquer à chaque utilisateur si
      on ne désire pas utiliser de base de données .
      Chaque entrée de ce fichier commence par le nom
   




      d’un utilisateur, l’entrée DEFAULT concerne tous
      les utilisateurs.




                      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 les
      autorisations à appliquer à chaque utilisateur si
      on ne désire pas utiliser de base de données .
      Chaque entrée de ce fichier commence par le nom
   




      d’un utilisateur, l’entrée DEFAULT concerne tous
      les utilisateurs.
      L’attribut Auth-Type permet de définir le(s)
   




      type(s) d’authentification permis.




                      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 les
      autorisations à appliquer à chaque utilisateur si
      on ne désire pas utiliser de base de données .
      Chaque entrée de ce fichier commence par le nom
   




      d’un utilisateur, l’entrée DEFAULT concerne tous
      les 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 le
      cas ou l’authentification aurait échouée.

                      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 les
      autorisations à appliquer à chaque utilisateur si
      on ne désire pas utiliser de base de données .
      Chaque entrée de ce fichier commence par le nom
   




      d’un utilisateur, l’entrée DEFAULT concerne tous
      les 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 le
      cas 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 un

   
      serveur MySQL pour la gestion des utilisateurs.




                         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 un

   
      serveur 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 bien
      décommenté. Vous pouvez mettre file en commentaire dans la section authorize
      pour ne permettre que ce type d’authorisation.




                                  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 un

   
      serveur 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 bien
      décommenté. Vous pouvez mettre file en commentaire dans la section authorize
      pour ne permettre que ce type d’authorisation.

      Attributs OBLIGATOIRES.
   




       server = ”localhost” # MySQL server
       login = ”radius” # MySQL username
       password = ”xxxxxxx” # MySQL user password
       radius db = ”Radius” # MySQL radius database

                                  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, thread

   
      pool,modules, authorize, authenticate et accounting),




                        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, thread

   
      pool,modules, authorize, authenticate et accounting),
      La section security permet de protéger le serveur contre
   




      quelques attaques DoS notamment.




                        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, thread

   
      pool,modules, authorize, authenticate et accounting),
      La section security permet de protéger le serveur contre
   




      quelques attaques DoS notamment.
      La section proxy permet de configurer les paramètres
   




      relatifs à la communication avec d’autres serveurs
      RADIUS.




                        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, thread

   
      pool,modules, authorize, authenticate et accounting),
      La section security permet de protéger le serveur contre
   




      quelques attaques DoS notamment.
      La section proxy permet de configurer les paramètres
   




      relatifs à la communication avec d’autres serveurs
      RADIUS.
      La section thread pool permet de configurer le nombre de
   




      serveurs qui traitent les requêtes et le nombre de processus
      lancés.




                         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, thread

   
      pool,modules, authorize, authenticate et accounting),
      La section security permet de protéger le serveur contre
   




      quelques attaques DoS notamment.
      La section proxy permet de configurer les paramètres
   




      relatifs à la communication avec d’autres serveurs
      RADIUS.
      La section thread pool permet de configurer le nombre de
   




      serveurs qui traitent les requêtes et le nombre de processus
      lancés.
      La section modules.C’est l’une des plus importantes. Elle
   




      permet d’activer et de configurer les méthodes
      d’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éthodes

   
      d’authentification dans lequel le serveur doit vérifier les
      identités des utilisateurs désireux de s’authentifier. Par
      défaut, c’est seulement par le fichier users que l’on peut
      vérifier les utilisateurs.




                         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éthodes

   
      d’authentification dans lequel le serveur doit vérifier les
      identités des utilisateurs désireux de s’authentifier. Par
      défaut, c’est seulement par le fichier users que l’on peut
      vérifier les utilisateurs.
      La section authenticate précise quels modules sont
   




      disponibles pour l’authentification. Ne pas confondre avec
      la section précédente.




                         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éthodes

   
      d’authentification dans lequel le serveur doit vérifier les
      identités des utilisateurs désireux de s’authentifier. Par
      défaut, c’est seulement par le fichier users que l’on peut
      vérifier les utilisateurs.
      La section authenticate précise quels modules sont
   




      disponibles pour l’authentification. Ne pas confondre avec
      la section précédente.
      La section accounting spécifie la manière dont les logs
   




      vont être enregistrés




                         Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14
Tester Radius
Freeradius est fourni avec quelques utilitaires de test.
       check-radiusd-config permet de tester le fichier de config du
    




       serveur




                         Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
Tester Radius
Freeradius est fourni avec quelques utilitaires de test.
       check-radiusd-config permet de tester le fichier de config du
    




       serveur
       radtest
    




       % radtest caron noel32 localhost 1812 SicRetKey
       Sending Access-Request of id 228 to 127.0.0.1:1812
          User-Name = ”caron”
          User-Password = ”noel32”
          NAS-IP-Address = perseus
          NAS-Port = 1812
       rad recv: Access-Accept packet from host 127.0.0.1:1812, id=228, length=20




                                  Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
Tester Radius
Freeradius est fourni avec quelques utilitaires de test.
       check-radiusd-config permet de tester le fichier de config du
    




       serveur
       radtest
    




       % radtest caron noel32 localhost 1812 SicRetKey
       Sending Access-Request of id 228 to 127.0.0.1:1812
          User-Name = ”caron”
          User-Password = ”noel32”
          NAS-IP-Address = perseus
          NAS-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
    




                                  Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
Tester Radius
Freeradius est fourni avec quelques utilitaires de test.
       check-radiusd-config permet de tester le fichier de config du
    




       serveur
       radtest
    




       % radtest caron noel32 localhost 1812 SicRetKey
       Sending Access-Request of id 228 to 127.0.0.1:1812
          User-Name = ”caron”
          User-Password = ”noel32”
          NAS-IP-Address = perseus
          NAS-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 utilitaire
    




       radlogin 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 serveur
   
      Radius et son client soit encryptée, un serveur radius n’est
      pas autre chose qu’un serveur de type NIS ou LDAP (avec
      quelques spécificité d’informations propres aux NAS).
      La mise en place d’un serveur Radius n’implique pas que la
   




      communication sera sécurisée de bout en bout (une attaque
      sur le serveur SQL mal protégé donne au pirate tous les
      MdP de tous les utilisateurs.
      C’est grâce au passage par MySQL que la gestion des
   




      utilisateurs peut être plus aisée, mais utiliser le fichier
      /etc/ppp/chap-secrets ne semble pas moins sécurisé que par
      un serveur Radius ...
      En réalité je ne comprends pas très très bien l’intérêt d’un
   




      serveur radius :-(, si ceplace d’un serveur Radiusobligation pour gérér lesp.14/14
                           Mise en
                                   n’est son pour authentification sur une serveur VPN sous LinuX –

Contenu connexe

Tendances

Authentification par certificat (clear box)
Authentification par certificat (clear box)Authentification par certificat (clear box)
Authentification par certificat (clear box)Ousmane BADJI
 
Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...
Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...
Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...Regis VPN
 
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCO
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCOVPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCO
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCOManassé Achim kpaya
 
Vpn d’acces avec cisco asa 5500 et client
Vpn d’acces avec cisco asa 5500 et clientVpn d’acces avec cisco asa 5500 et client
Vpn d’acces avec cisco asa 5500 et clientManassé Achim kpaya
 
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASA
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASAVPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASA
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASAManassé Achim kpaya
 
Installation et Configuration de Pfsense
Installation et Configuration de PfsenseInstallation et Configuration de Pfsense
Installation et Configuration de PfsenseIsmail Rachdaoui
 
Mini projet bureau à distance sécurisé
Mini projet bureau à distance sécuriséMini projet bureau à distance sécurisé
Mini projet bureau à distance sécuriséSamiMessaoudi4
 
Authentification TLS/SSL sous OpenVPN
Authentification TLS/SSL sous OpenVPNAuthentification TLS/SSL sous OpenVPN
Authentification TLS/SSL sous OpenVPNIsmail Rachdaoui
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détectionManassé Achim kpaya
 
Windows server 2012 r2
Windows server 2012 r2Windows server 2012 r2
Windows server 2012 r2Ousmane BADJI
 
Premiers pas avec snort
Premiers pas avec snortPremiers pas avec snort
Premiers pas avec snortFathi Ben Nasr
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)Hackfest Communication
 
Mise en place d'un reseau securise par Cisco ASA
Mise en place d'un reseau securise par Cisco ASAMise en place d'un reseau securise par Cisco ASA
Mise en place d'un reseau securise par Cisco ASAOusmane BADJI
 
Mise en place d'un vpn site à site avec pfsense
Mise en place d'un vpn site à site avec pfsenseMise en place d'un vpn site à site avec pfsense
Mise en place d'un vpn site à site avec pfsensePape Moussa SONKO
 
Prise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPERPrise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPERHermann GBILIMAKO
 

Tendances (20)

Authentification par certificat (clear box)
Authentification par certificat (clear box)Authentification par certificat (clear box)
Authentification par certificat (clear box)
 
Pfsense
PfsensePfsense
Pfsense
 
Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...
Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...
Exemple de configuration de serveur VPN distant avec NAT entrant pour le traf...
 
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCO
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCOVPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCO
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS ROUTEUR CISCO
 
Présentation Master
Présentation Master Présentation Master
Présentation Master
 
Vpn d’acces avec cisco asa 5500 et client
Vpn d’acces avec cisco asa 5500 et clientVpn d’acces avec cisco asa 5500 et client
Vpn d’acces avec cisco asa 5500 et client
 
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASA
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASAVPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASA
VPN NOMADE AVEC AUTHENTIFICATIO AD SOUS CISCO ASA
 
Installation et Configuration de Pfsense
Installation et Configuration de PfsenseInstallation et Configuration de Pfsense
Installation et Configuration de Pfsense
 
Mini projet bureau à distance sécurisé
Mini projet bureau à distance sécuriséMini projet bureau à distance sécurisé
Mini projet bureau à distance sécurisé
 
Authentification TLS/SSL sous OpenVPN
Authentification TLS/SSL sous OpenVPNAuthentification TLS/SSL sous OpenVPN
Authentification TLS/SSL sous OpenVPN
 
Ccnp securite vpn
Ccnp securite vpnCcnp securite vpn
Ccnp securite vpn
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détection
 
Windows server 2012 r2
Windows server 2012 r2Windows server 2012 r2
Windows server 2012 r2
 
Premiers pas avec snort
Premiers pas avec snortPremiers pas avec snort
Premiers pas avec snort
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
 
Mise en place d'un reseau securise par Cisco ASA
Mise en place d'un reseau securise par Cisco ASAMise en place d'un reseau securise par Cisco ASA
Mise en place d'un reseau securise par Cisco ASA
 
Mise en place d'un vpn site à site avec pfsense
Mise en place d'un vpn site à site avec pfsenseMise en place d'un vpn site à site avec pfsense
Mise en place d'un vpn site à site avec pfsense
 
Prise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPERPrise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPER
 
SERVICES RESEAUX AVANCES
SERVICES RESEAUX AVANCESSERVICES RESEAUX AVANCES
SERVICES RESEAUX AVANCES
 
Tuto vpn
Tuto vpnTuto vpn
Tuto vpn
 

En vedette

Guide pfsense
Guide pfsenseGuide pfsense
Guide pfsenser_sadoun
 
pfSense Installation Slide
pfSense Installation SlidepfSense Installation Slide
pfSense Installation SlideSopon Tumchota
 
Tout sur le portail captif Alcasar Tutoriel complet + Rapport detaillée
Tout sur le portail captif Alcasar Tutoriel complet + Rapport detailléeTout sur le portail captif Alcasar Tutoriel complet + Rapport detaillée
Tout sur le portail captif Alcasar Tutoriel complet + Rapport detailléeyassine87
 
Doc portail-captif-pfsense
Doc portail-captif-pfsenseDoc portail-captif-pfsense
Doc portail-captif-pfsenseservinfo
 
Mise en place du Firewall IPCop
Mise en place du Firewall IPCopMise en place du Firewall IPCop
Mise en place du Firewall IPCopMohammed Zaoui
 
Authentification
AuthentificationAuthentification
AuthentificationRaouf16
 
GeoLocation using Google Maps JavaScript API v3
GeoLocation using Google Maps JavaScript API v3GeoLocation using Google Maps JavaScript API v3
GeoLocation using Google Maps JavaScript API v3S M Mohi Us Sunnat
 
MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011Steven Francia
 
Serveur web sur lindux debian
Serveur web sur lindux debianServeur web sur lindux debian
Serveur web sur lindux debiancharlielefebvre14
 
Enjeux et évolutions de la sécurité informatique - Présentation Centrale Nantes
Enjeux et évolutions de la sécurité informatique - Présentation Centrale NantesEnjeux et évolutions de la sécurité informatique - Présentation Centrale Nantes
Enjeux et évolutions de la sécurité informatique - Présentation Centrale NantesMaxime ALAY-EDDINE
 
Systèmes de séparations by la suite314
Systèmes de séparations by la suite314Systèmes de séparations by la suite314
Systèmes de séparations by la suite314Jean Pierre ARMAND
 
Dmz - Hedi Magroun - Nafta - 2009
Dmz - Hedi Magroun - Nafta - 2009Dmz - Hedi Magroun - Nafta - 2009
Dmz - Hedi Magroun - Nafta - 2009Hedi Magroun
 
Material best practices in network security using ethical hacking
Material best practices in network security using ethical hackingMaterial best practices in network security using ethical hacking
Material best practices in network security using ethical hackingDesmond Devendran
 

En vedette (18)

Guide pfsense
Guide pfsenseGuide pfsense
Guide pfsense
 
pfSense Installation Slide
pfSense Installation SlidepfSense Installation Slide
pfSense Installation Slide
 
Tout sur le portail captif Alcasar Tutoriel complet + Rapport detaillée
Tout sur le portail captif Alcasar Tutoriel complet + Rapport detailléeTout sur le portail captif Alcasar Tutoriel complet + Rapport detaillée
Tout sur le portail captif Alcasar Tutoriel complet + Rapport detaillée
 
voip dans le cloud
voip dans le cloudvoip dans le cloud
voip dans le cloud
 
Doc portail-captif-pfsense
Doc portail-captif-pfsenseDoc portail-captif-pfsense
Doc portail-captif-pfsense
 
Mise en place du Firewall IPCop
Mise en place du Firewall IPCopMise en place du Firewall IPCop
Mise en place du Firewall IPCop
 
Authentification
AuthentificationAuthentification
Authentification
 
GeoLocation using Google Maps JavaScript API v3
GeoLocation using Google Maps JavaScript API v3GeoLocation using Google Maps JavaScript API v3
GeoLocation using Google Maps JavaScript API v3
 
MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011
 
Serveur web sur lindux debian
Serveur web sur lindux debianServeur web sur lindux debian
Serveur web sur lindux debian
 
Enjeux et évolutions de la sécurité informatique - Présentation Centrale Nantes
Enjeux et évolutions de la sécurité informatique - Présentation Centrale NantesEnjeux et évolutions de la sécurité informatique - Présentation Centrale Nantes
Enjeux et évolutions de la sécurité informatique - Présentation Centrale Nantes
 
Google maps
Google mapsGoogle maps
Google maps
 
Google Maps Course
Google Maps CourseGoogle Maps Course
Google Maps Course
 
Systèmes de séparations by la suite314
Systèmes de séparations by la suite314Systèmes de séparations by la suite314
Systèmes de séparations by la suite314
 
Dmz - Hedi Magroun - Nafta - 2009
Dmz - Hedi Magroun - Nafta - 2009Dmz - Hedi Magroun - Nafta - 2009
Dmz - Hedi Magroun - Nafta - 2009
 
Nodali
NodaliNodali
Nodali
 
Material best practices in network security using ethical hacking
Material best practices in network security using ethical hackingMaterial best practices in network security using ethical hacking
Material best practices in network security using ethical hacking
 
Fire wall
Fire wallFire wall
Fire wall
 

Similaire à Free radius

chapitre 6 vpn (1).pptx
chapitre 6 vpn (1).pptxchapitre 6 vpn (1).pptx
chapitre 6 vpn (1).pptxWiemAssadi
 
Weos tunnel ssl hôte à site
Weos   tunnel ssl hôte à siteWeos   tunnel ssl hôte à site
Weos tunnel ssl hôte à siteFabian Vandendyck
 
Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...
Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...
Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...Microsoft Technet France
 
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Afnic
 
Etude et mise en place d’un VPN
Etude et mise en place d’un VPNEtude et mise en place d’un VPN
Etude et mise en place d’un VPNCharif Khrichfa
 
Alphorm.com Formation pfSense (2/2) Le firewall open source de référence
Alphorm.com Formation pfSense (2/2) Le firewall open source de référenceAlphorm.com Formation pfSense (2/2) Le firewall open source de référence
Alphorm.com Formation pfSense (2/2) Le firewall open source de référenceAlphorm
 
portail_captif_pfsense_doc.pdf
portail_captif_pfsense_doc.pdfportail_captif_pfsense_doc.pdf
portail_captif_pfsense_doc.pdfGhitaSara
 
Alphorm.com Formation Wallix Bastion : Le Guide du Débutant
Alphorm.com Formation Wallix Bastion : Le Guide du DébutantAlphorm.com Formation Wallix Bastion : Le Guide du Débutant
Alphorm.com Formation Wallix Bastion : Le Guide du DébutantAlphorm
 
Alphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référenceAlphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référenceAlphorm
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdfgorguindiaye
 
Administration des services réseaux
Administration des services réseauxAdministration des services réseaux
Administration des services réseauxFethi Kiwa
 

Similaire à Free radius (20)

Vpn
VpnVpn
Vpn
 
chapitre 6 vpn (1).pptx
chapitre 6 vpn (1).pptxchapitre 6 vpn (1).pptx
chapitre 6 vpn (1).pptx
 
VPN WINDOWS LINUX OPENVPN
VPN WINDOWS LINUX OPENVPNVPN WINDOWS LINUX OPENVPN
VPN WINDOWS LINUX OPENVPN
 
22411B_07.pptx
22411B_07.pptx22411B_07.pptx
22411B_07.pptx
 
Weos tunnel ssl hôte à site
Weos   tunnel ssl hôte à siteWeos   tunnel ssl hôte à site
Weos tunnel ssl hôte à site
 
Openvpn avec un client windows
Openvpn avec un client windows Openvpn avec un client windows
Openvpn avec un client windows
 
VPN (3).pptx
VPN (3).pptxVPN (3).pptx
VPN (3).pptx
 
Les Vpn
Les VpnLes Vpn
Les Vpn
 
Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...
Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...
Faciliter la publication de sessions et de bureaux virtuels (VDI) avec Window...
 
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
 
Etude et mise en place d’un VPN
Etude et mise en place d’un VPNEtude et mise en place d’un VPN
Etude et mise en place d’un VPN
 
Alphorm.com Formation pfSense (2/2) Le firewall open source de référence
Alphorm.com Formation pfSense (2/2) Le firewall open source de référenceAlphorm.com Formation pfSense (2/2) Le firewall open source de référence
Alphorm.com Formation pfSense (2/2) Le firewall open source de référence
 
portail_captif_pfsense_doc.pdf
portail_captif_pfsense_doc.pdfportail_captif_pfsense_doc.pdf
portail_captif_pfsense_doc.pdf
 
Alphorm.com Formation Wallix Bastion : Le Guide du Débutant
Alphorm.com Formation Wallix Bastion : Le Guide du DébutantAlphorm.com Formation Wallix Bastion : Le Guide du Débutant
Alphorm.com Formation Wallix Bastion : Le Guide du Débutant
 
VPN: SSL vs IPSEC
VPN: SSL vs IPSECVPN: SSL vs IPSEC
VPN: SSL vs IPSEC
 
Openstack framework Iaas
Openstack framework IaasOpenstack framework Iaas
Openstack framework Iaas
 
Alphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référenceAlphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référence
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdf
 
Administration des services réseaux
Administration des services réseauxAdministration des services réseaux
Administration des services réseaux
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 

Free radius

  • 1. 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´ nieur de Recherche CNRS e Administrateur Syst` me UNIX, Universit´ MONTPELLIER II e e Powered By ’Puissance du Poing’ Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.1/14
  • 2. Le serveur VPN (POPTop) POPTop est un serveur qui implémente le protocole pptpd   (Point to Point Tunneling Protocol). Il encapsule des paquets PPP dans du GRE (Generic Routine Encapsulation) Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14
  • 3. Le serveur VPN (POPTop) POPTop est un serveur qui implémente le protocole pptpd   (Point to Point Tunneling Protocol). Il encapsule des paquets PPP dans du GRE (Generic Routine Encapsulation) POPTop ne gère ni l’encryptage du tunnel, ni   l’authentification. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14
  • 4. Le serveur VPN (POPTop) POPTop est un serveur qui implémente le protocole pptpd   (Point to Point Tunneling Protocol). Il encapsule des paquets PPP dans du GRE (Generic Routine Encapsulation) POPTop ne gère ni l’encryptage du tunnel, ni   l’authentification. POPTop s’appuie sur PPP. PPP implémente plusieurs   protocoles d’authentification dont MSchap(Microsoft compatible authentication and encryption) v1 et v2, PAP (Password authentication protocol) ,CHAP etc... Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14
  • 5. Le serveur VPN (POPTop) POPTop est un serveur qui implémente le protocole pptpd   (Point to Point Tunneling Protocol). Il encapsule des paquets PPP dans du GRE (Generic Routine Encapsulation) POPTop ne gère ni l’encryptage du tunnel, ni   l’authentification. POPTop s’appuie sur PPP. PPP implémente plusieurs   protocoles d’authentification dont MSchap(Microsoft compatible 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 le module ppp_mppe dans le noyau Linux du serveur et dans les noyaux des clients Linux! Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.2/14
  • 6. PPPd Avec PPPD l’authentification par défaut se fait   par fichier (/etc/ppp/pap-secrets ou chap-secret). Ce qui rend la gestion des utilisateurs pénible   pour ne pas dire impossible par exemple dans le cas 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
  • 7. FreeRadius Radius = Remote Authentification in Dial-In   User Service . Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
  • 8. FreeRadius Radius = Remote Authentification in Dial-In   User Service . Radius ne VA PAS ENCRYPTER le tunnel   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
  • 9. FreeRadius Radius = Remote Authentification in Dial-In   User Service . Radius ne VA PAS ENCRYPTER le tunnel   Radius va se charger : ( de l’authentification, des   autorisations, des informations de sessions). Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
  • 10. FreeRadius Radius = Remote Authentification in Dial-In   User Service . Radius ne VA PAS ENCRYPTER le tunnel   Radius va se charger : ( de l’authentification, des   autorisations, des informations de sessions). Attention , pour qu’un serveur VPN de type   POPTop puisse correspondre avec un serveur Radius IL FAUT RECOMPILER PPPd afin d’avoir le module radius.so Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
  • 11. FreeRadius Radius = Remote Authentification in Dial-In   User Service . Radius ne VA PAS ENCRYPTER le tunnel   Radius va se charger : ( de l’authentification, des   autorisations, des informations de sessions). Attention , pour qu’un serveur VPN de type   POPTop puisse correspondre avec un serveur Radius IL FAUT RECOMPILER PPPd afin d’avoir le module radius.so On installe freeradius par rpm ou tar.gz , pas de   problème particulier. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.4/14
  • 12. Authentification Par le Système   - Le nom et le mot de passe de l’utilisateur sont ceux du système (UNIX), Freeradius utilise /etc/passwd et/ou NIS. C’est la config par défaut de FreeRadius Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14
  • 13. Authentification Par le Système   - Le nom et le mot de passe de l’utilisateur sont ceux du système (UNIX), Freeradius utilise /etc/passwd et/ou NIS. C’est la config par défaut de FreeRadius En Interne   Le nom et le mot de passe de l’utilisateur sont stockés dans les fichiers de config de radius Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14
  • 14. Authentification Par le Système   - Le nom et le mot de passe de l’utilisateur sont ceux du système (UNIX), Freeradius utilise /etc/passwd et/ou NIS. C’est la config par défaut de FreeRadius En Interne   Le nom et le mot de passe de l’utilisateur sont stockés dans les fichiers de config de radius Par Base de donnée   (MySQL,Oracle,PostgreSQL,LDAP) les informations de l’utilisateur sont stockés dans une base de donnée, attention la communication Radius<->SQL n’est pas encrytée. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.5/14
  • 15. Authentification Par le Système   - Le nom et le mot de passe de l’utilisateur sont ceux du système (UNIX), Freeradius utilise /etc/passwd et/ou NIS. C’est la config par défaut de FreeRadius En Interne   Le nom et le mot de passe de l’utilisateur sont stockés dans les fichiers de config de radius Par Base de donnée   (MySQL,Oracle,PostgreSQL,LDAP) les informations de l’utilisateur sont stockés dans une base de donnée, attention la communication Radius<->SQL n’est pas encrytée. PAM (Pluggable Authentication Service) c’est   selon la config de PAM queserveur Radius faire l’authentification – p.5/14 Mise en place d’un va se pour authentification sur une serveur VPN sous LinuX
  • 16. Schéma des encryptages Serveur SQL INTERNET Client VPN Serveur FreeRadius Routeur/Firewall Serveur VPN Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14
  • 17. Schéma des encryptages Serveur SQL INTERNET Client VPN Serveur FreeRadius Canal encrypté ou non Routeur/Firewall Serveur VPN Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14
  • 18. Schéma des encryptages Serveur SQL INTERNET Client VPN Serveur FreeRadius Canal encrypté ou non Routeur/Firewall Canal encrypté Serveur VPN Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14
  • 19. Schéma des encryptages Serveur SQL Canal non encrypté INTERNET Client VPN Serveur FreeRadius Canal encrypté ou non Routeur/Firewall Canal encrypté Serveur VPN Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.6/14
  • 20. Configuration de FreeRadius Il est clair que les fichiers de configurations ne sont pas très conviviaux. Cela peut effrayer au début. Mais ils sont vraiment bien commentés. Aïe Aïe , ca se Corse.   # ls /usr/local/freeradius-1.0.1/etc/raddb/ Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
  • 21. Configuration de FreeRadius Il est clair que les fichiers de configurations ne sont pas très conviviaux. Cela peut effrayer au début. Mais ils sont vraiment bien 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.conf attrs hints postgresql.conf sql.conf certs/ huntgroups preproxy users users clients ldap.attrmap proxy.conf x99.conf clients.conf mssql.conf radiusd.conf x99passwd.sample dictionary naslist eap.conf naspasswd realms Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
  • 22. Configuration de FreeRadius Il est clair que les fichiers de configurations ne sont pas très conviviaux. Cela peut effrayer au début. Mais ils sont vraiment bien 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.conf attrs hints postgresql.conf sql.conf certs/ huntgroups preproxy users users clients ldap.attrmap proxy.conf x99.conf clients.conf mssql.conf radiusd.conf x99passwd.sample dictionary naslist eap.conf naspasswd realms radiusd.conf: fichier principal de configuration du serveur   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
  • 23. Configuration de FreeRadius Il est clair que les fichiers de configurations ne sont pas très conviviaux. Cela peut effrayer au début. Mais ils sont vraiment bien 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.conf attrs hints postgresql.conf sql.conf certs/ huntgroups preproxy users users clients ldap.attrmap proxy.conf x99.conf clients.conf mssql.conf radiusd.conf x99passwd.sample dictionary naslist eap.conf naspasswd realms radiusd.conf: fichier principal de configuration du serveur   clients.conf: fichier de configuration des clients (type , No IP..)   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
  • 24. Configuration de FreeRadius Il est clair que les fichiers de configurations ne sont pas très conviviaux. Cela peut effrayer au début. Mais ils sont vraiment bien 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.conf attrs hints postgresql.conf sql.conf certs/ huntgroups preproxy users users clients ldap.attrmap proxy.conf x99.conf clients.conf mssql.conf radiusd.conf x99passwd.sample dictionary 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.   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.7/14
  • 25. Configuration de FreeRadius Il est clair que les fichiers de configurations ne sont pas très conviviaux. Cela peut effrayer au début. Mais ils sont vraiment bien 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.conf attrs hints postgresql.conf sql.conf certs/ huntgroups preproxy users users clients ldap.attrmap proxy.conf x99.conf clients.conf mssql.conf radiusd.conf x99passwd.sample dictionary 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
  • 26. clients.conf C’est le seul fichier à modifier si vous désirez faire une authentification System (username et mot de passe UNIX) Syntaxe très simple .   client host.domainname ¡ secret = motdepasseradius shortname = alias nastype = other ¢ Autant de fois qu’il y a de clients. Chaque client peut avoir un mot de passe différent. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14
  • 27. clients.conf C’est le seul fichier à modifier si vous désirez faire une authentification System (username et mot de passe UNIX) Syntaxe très simple .   client host.domainname ¡ secret = motdepasseradius shortname = alias nastype = other ¢ Autant de fois qu’il y a de clients. Chaque client peut avoir un mot de passe différent. host.domainname peut être remplacé par Adresse IP   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14
  • 28. clients.conf C’est le seul fichier à modifier si vous désirez faire une authentification System (username et mot de passe UNIX) Syntaxe très simple .   client host.domainname ¡ secret = motdepasseradius shortname = alias nastype = other ¢ Autant de fois qu’il y a de clients. Chaque client peut avoir un 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 Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.8/14
  • 29. users Ce fichier permet de connaître les directives c’est   à dire la méthode d’authentification et les autorisations à appliquer à chaque utilisateur si on ne désire pas utiliser de base de données . Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14
  • 30. users Ce fichier permet de connaître les directives c’est   à dire la méthode d’authentification et les autorisations à appliquer à chaque utilisateur si on ne désire pas utiliser de base de données . Chaque entrée de ce fichier commence par le nom   d’un utilisateur, l’entrée DEFAULT concerne tous les utilisateurs. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14
  • 31. users Ce fichier permet de connaître les directives c’est   à dire la méthode d’authentification et les autorisations à appliquer à chaque utilisateur si on ne désire pas utiliser de base de données . Chaque entrée de ce fichier commence par le nom   d’un utilisateur, l’entrée DEFAULT concerne tous les utilisateurs. L’attribut Auth-Type permet de définir le(s)   type(s) d’authentification permis. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14
  • 32. users Ce fichier permet de connaître les directives c’est   à dire la méthode d’authentification et les autorisations à appliquer à chaque utilisateur si on ne désire pas utiliser de base de données . Chaque entrée de ce fichier commence par le nom   d’un utilisateur, l’entrée DEFAULT concerne tous les 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 le cas ou l’authentification aurait échouée. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.9/14
  • 33. users Ce fichier permet de connaître les directives c’est   à dire la méthode d’authentification et les autorisations à appliquer à chaque utilisateur si on ne désire pas utiliser de base de données . Chaque entrée de ce fichier commence par le nom   d’un utilisateur, l’entrée DEFAULT concerne tous les 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 le cas 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
  • 34. sql.conf Ce fichier n’est utilisé que si vous désirez utiliser un   serveur MySQL pour la gestion des utilisateurs. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.10/14
  • 35. sql.conf Ce fichier n’est utilisé que si vous désirez utiliser un   serveur 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 bien décommenté. Vous pouvez mettre file en commentaire dans la section authorize pour ne permettre que ce type d’authorisation. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.10/14
  • 36. sql.conf Ce fichier n’est utilisé que si vous désirez utiliser un   serveur 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 bien décommenté. Vous pouvez mettre file en commentaire dans la section authorize pour ne permettre que ce type d’authorisation. Attributs OBLIGATOIRES.   server = ”localhost” # MySQL server login = ”radius” # MySQL username password = ”xxxxxxx” # MySQL user password radius db = ”Radius” # MySQL radius database Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.10/14
  • 37. radiusd.conf Il est divisé en sections (Security, proxy, thread   pool,modules, authorize, authenticate et accounting), Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14
  • 38. radiusd.conf Il est divisé en sections (Security, proxy, thread   pool,modules, authorize, authenticate et accounting), La section security permet de protéger le serveur contre   quelques attaques DoS notamment. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14
  • 39. radiusd.conf Il est divisé en sections (Security, proxy, thread   pool,modules, authorize, authenticate et accounting), La section security permet de protéger le serveur contre   quelques attaques DoS notamment. La section proxy permet de configurer les paramètres   relatifs à la communication avec d’autres serveurs RADIUS. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14
  • 40. radiusd.conf Il est divisé en sections (Security, proxy, thread   pool,modules, authorize, authenticate et accounting), La section security permet de protéger le serveur contre   quelques attaques DoS notamment. La section proxy permet de configurer les paramètres   relatifs à la communication avec d’autres serveurs RADIUS. La section thread pool permet de configurer le nombre de   serveurs qui traitent les requêtes et le nombre de processus lancés. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.11/14
  • 41. radiusd.conf Il est divisé en sections (Security, proxy, thread   pool,modules, authorize, authenticate et accounting), La section security permet de protéger le serveur contre   quelques attaques DoS notamment. La section proxy permet de configurer les paramètres   relatifs à la communication avec d’autres serveurs RADIUS. La section thread pool permet de configurer le nombre de   serveurs qui traitent les requêtes et le nombre de processus lancés. La section modules.C’est l’une des plus importantes. Elle   permet d’activer et de configurer les méthodes d’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
  • 42. radiusd.conf (2) La section authorize spécifie l’ordre et les méthodes   d’authentification dans lequel le serveur doit vérifier les identités des utilisateurs désireux de s’authentifier. Par défaut, c’est seulement par le fichier users que l’on peut vérifier les utilisateurs. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14
  • 43. radiusd.conf (2) La section authorize spécifie l’ordre et les méthodes   d’authentification dans lequel le serveur doit vérifier les identités des utilisateurs désireux de s’authentifier. Par défaut, c’est seulement par le fichier users que l’on peut vérifier les utilisateurs. La section authenticate précise quels modules sont   disponibles pour l’authentification. Ne pas confondre avec la section précédente. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14
  • 44. radiusd.conf (2) La section authorize spécifie l’ordre et les méthodes   d’authentification dans lequel le serveur doit vérifier les identités des utilisateurs désireux de s’authentifier. Par défaut, c’est seulement par le fichier users que l’on peut vérifier les utilisateurs. La section authenticate précise quels modules sont   disponibles pour l’authentification. Ne pas confondre avec la section précédente. La section accounting spécifie la manière dont les logs   vont être enregistrés Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.12/14
  • 45. Tester Radius Freeradius est fourni avec quelques utilitaires de test. check-radiusd-config permet de tester le fichier de config du   serveur Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
  • 46. Tester Radius Freeradius est fourni avec quelques utilitaires de test. check-radiusd-config permet de tester le fichier de config du   serveur radtest   % radtest caron noel32 localhost 1812 SicRetKey Sending Access-Request of id 228 to 127.0.0.1:1812 User-Name = ”caron” User-Password = ”noel32” NAS-IP-Address = perseus NAS-Port = 1812 rad recv: Access-Accept packet from host 127.0.0.1:1812, id=228, length=20 Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
  • 47. Tester Radius Freeradius est fourni avec quelques utilitaires de test. check-radiusd-config permet de tester le fichier de config du   serveur radtest   % radtest caron noel32 localhost 1812 SicRetKey Sending Access-Request of id 228 to 127.0.0.1:1812 User-Name = ”caron” User-Password = ”noel32” NAS-IP-Address = perseus NAS-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   Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
  • 48. Tester Radius Freeradius est fourni avec quelques utilitaires de test. check-radiusd-config permet de tester le fichier de config du   serveur radtest   % radtest caron noel32 localhost 1812 SicRetKey Sending Access-Request of id 228 to 127.0.0.1:1812 User-Name = ”caron” User-Password = ”noel32” NAS-IP-Address = perseus NAS-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 utilitaire   radlogin pour tester le client Radius. Mise en place d’un serveur Radius pour authentification sur une serveur VPN sous LinuX – p.13/14
  • 49. (mes) Conclusions Mis à part le fait que la communication entre le serveur   Radius et son client soit encryptée, un serveur radius n’est pas autre chose qu’un serveur de type NIS ou LDAP (avec quelques spécificité d’informations propres aux NAS). La mise en place d’un serveur Radius n’implique pas que la   communication sera sécurisée de bout en bout (une attaque sur le serveur SQL mal protégé donne au pirate tous les MdP de tous les utilisateurs. C’est grâce au passage par MySQL que la gestion des   utilisateurs peut être plus aisée, mais utiliser le fichier /etc/ppp/chap-secrets ne semble pas moins sécurisé que par un serveur Radius ... En réalité je ne comprends pas très très bien l’intérêt d’un   serveur radius :-(, si ceplace d’un serveur Radiusobligation pour gérér lesp.14/14 Mise en n’est son pour authentification sur une serveur VPN sous LinuX –