Configuration de freeradius sous debian

Bonjour à tous, j'essaye depuis des semaines de configurer Freeradius et LDAP dans le but de mettre en place un portail captif! Au secours!!! à l'aide,. J'ai suivi les commandes que j'ai téléchargé sur google mais la configuration n'a jamais été réussi!!!

22 réponses

Résumé de la discussion

Configurer FreeRADIUS avec LDAP pour un portail captif se révèle complexe et problématique, nécessitant des étapes précises et une vérification systématique des modules et services. Pour avancer, plusieurs réponses recommandent d'installer FreeRADIUS et le module LDAP; l'étape suivante est d'activer LDAP dans les fichiers de configuration et de tester avec radtest. Des réponses soulignent qu'un serveur LDAP actif est nécessaire et détaillent des étapes comme l'installation de slapd, la configuration de base DN, l'authentification et les droits de lecture pour permettre à FreeRADIUS d'interroger l'annuaire.

Bobot (l’IA à votre service)
  1. Bonjour Leslie,

    Il existe pas mal de tutos sur internet concernant l'installation de FreeRADIUS.
    Je t'en donne les principales étapes (pour un environnement Linux) ci-dessous:

    1- Vérifie que tu possède bien deux interfaces réseau (sous environnement Linux Eth0 et Eth1) dont une ayant un accès internet (généralement Eth0).

    2- Installe les mises à jour de paquets et télécharge freeRADIUS:
    #apt-get update (pour la maj des paquets)
    #apt-get install freeradius (pour installer freeRADIUS)
    #apt-get install freeradius-ldap (pour la compatibilité LDAP)

    Tu as donc à partir de là les éléments nécessaires au fonctionnement Freeradius - LDAP
    -->Plusieurs fichiers de configuration sont à modifier:

    3-Configure ton FreeRADIUS:
    ouvre avec un éditeur de texte (gedit,nano, vi,...) le fichier /etc/freeradius/radiusd.conf
    Ce fichier contient les éléments principaux permettant la configuration de FreeRADIUS, ainsi que les modules complémentaires (pour nous LDAP)
    Ce fichier, comme tous les fichiers de conf FreeRADIUS contient par défaut un tas de lignes (pour la plupart précédées d'un "#"). Ce # signifie que ces lignes sont commentées et donc NON-INTERPRETEES. -->Il est donc logique que pour activer les fonctionnalitées qui nous intéressent, de décommenter les bonnes lignes (enlever le #). ATTENTION: il n'y à quasiment JAMAIS RIEN A AJOUTER aux fichiers de conf. On se contente en général de modifier une ou plusieurs parties et on décommente. Les gens qui plante le serveur sont en général ceux qui le modifie le plus (mais par défault tout fonctionne bien, et tout est déja présent ;-) ).
    Bref: la partie de ce fichier qui nous intéresse est le module LDAP. Il suffit alors de trouver la partie "modules{ " et de VERIFIER que la ligne $INCLUDE {confdir}/modules/ est présente, et si oui il faut enlever le # pour l'activer (mais je crois que c'est déja le cas par défaut) Cette ligne veut dire "inclue les modules qui sont dans /etc/Freeradius/modules/ et si tu vas faire un tour dans ce dossier, tu verra qu'un joli fichier nommé "ldap" est présent et attend gentiment d'être configuré :-)

    Bien jusque là pas trop de difficultés si ?
    Maintenant qu'on à préciser à radius quel module utiliser, il faut les "autoriser"
    On vas donc aller dans le fichier /etc/Freeradius/sites-available/default pour décommenter un peu ^^
    --> dans ce fichier default, dans la partie authorize{ tu verra que le mot "file" est décommenté, ce qui veut dire que Freeradius autorise l'utilisation d'un fichier pour authentifier les gens (le fichier "user" pour être précis). Nous on veut utiliser le LDAP donc trouve dans cette même partie le mot "ldap" et décommente le. De même dans la partie authenticate{ trouve les 3 ligne (à la suite) qui disent Auth-Type LDAP{ ldap } et décommente ces 3 lignes (tu peux t'aider du bon vieux CTRL+F pour trouver ces lignes si tu utilise un éditeur de texte graphique comme gedit par exemple). Tu as maintenant la bonne configuration pour utiliser ton ldap avec freeradius.

    Bon! tu te souviens de notre fichier "ldap" dans /etc/Freeradius/modules/ ? eh bien c'est à son tour d'y passer et c'est sans doute le plus chiant si tu as un annuaire LDAP compliqué ^^ On y va avec le sourire quand même :
    Dans ce fichier on va modifier des infos de la partie ldap{
    --> trouve donc la ligne serveur=, décommente la si ce n'est pas fait par défaut, puis remplace la valeur après le = par l'adresse IP de ton LDAP (à mettre entre guillemets)(Windows Serveur je suppose). Ensuite vient la ligne identity -->ici il faut renseigner un utilisateur de ton ldap qui va dire à FreeRADIUS "ok c'est moi Leslie, j'ai le droit de lire dans le ldap donc laisse moi passer". En gros il doit avoir le droit AU MOINS de lire dans l'annuaire LDAP pour aller chercher les gens.
    --> Tu renseignes donc cette ligne en partant du point le plus précis de ton ldap (le nom) et tu remonte son arbre (exemple: identity = "cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL") Attention de bien respecter la casse!. Apres remplie bien les bons termes sinon le ldap te jettera! ^^
    Ligne suivante: password = Eh bien ici tout simplement le mot de passe de la personne juste au dessus :-)
    Ligne suivante: basedn = là il faut renseigner le dossier où sont stockés les utilisateurs du ldap (toujours en partant du point le plus précis) --> exemple: basedn = "ou=utilisateurs,dc=DOMAINE,dc=LOCAL".

    Bien bien généralement les soucis viennent d'ici car on fait facilement des erreurs en renseignant ces champs héhé. On verra comment vérifier ça après. Passons à la ligne filter = -->Ne modifie cette ligne que si tu utilise un Active directory Windows. et si c'est le cas, change le "uid=...etc" par sAMAccountName=...(le reste de la ligne ne change pas)

    Bon c'est pas trop mal là :-) Ah et si tu utilise toujours un Active directory Windows, décommente les deux lignes chase_referrals = yes et rebind = yes un peu plus loin dans ce même fichier (par soucis de compatibilité avec l'AD tout simplement).

    4-test
    Bon bah le plus dur est derrière. On va faire un petit test pour vérifier le bon fonctionnement de nos config:

    Avant de lancer le test il faut redémarrer notre serveur FreeRADIUS (eh oui sinon les changements ne seront pas pris en compte :/ sa serait balo)
    #/etc/init.d/freeradius restart (ou start si il n'est pas démarré mais par défaut il l'est).

    Passons au test:
    On utilise pour ça la commande radtest. Elle simule une demande d'authentification radius avec nos paramètres actuels.

    Voici sa syntaxe: radtest "login" "mot de passe" "@serveur FreeRADIUS" "port de connexion" "Secret Radius"
    Quelques explications; bon login et mot de passe sa ira ce sont les identifiants du ldap que tu veux tester
    , @serveur FreeRADIUS c'est "localhost" ou "127.0.0.1" car le serveur est sur ta machine ^^, le port par défaut c'est 1812 (pour FreeRADIUS) mais tu peux mettre 0 sa ira aussi dans notre cas. Secret Radius c'est "testing123" car tu le sais sans doute déja mais freeradius contient une liste de "clients" sur lesquels les utilisateurs se connectent (routeur wifi, switchs, ...) identifiés dans le fichier /etc/Freeradius/clients.conf mais pour notre test le client c'est nous (localhost) et si tu vas faire un tour dans le fichier, il existe déjà par défaut et possède comme sercet "testing123" Voila voila.

    Si ta commande fonctionne: tu devrais recevoir un joli message rad_recv: acces-accept from host 127.0.0.1 ... ce qui veut dire que l'authentification à réussi!

    Si ce n'est pas le cas, alors c'est FORCEMENT qu'il y à un soucis de conf (soit une ligne non décommentée (ou mal écrite) soit une erreur dans un de tes chemins LDAP.

    Dans tous les cas je te conseille de couper ton FreeRADIUS (avec la commande /etc/init.d/freeradius stop et de le relancer en mode "debug" (pour voir tous ce qu'il fait :D) avec la commande freeradius -X Tu verra ainsi en refaisant un radtest toutes les étapes (en anglais bien sûr) et donc sans doute les endroits où ça coince :-) )

    Pour ce qui est de ton portail captif, je ne sais pas lequel tu compte utiliser, mais je serai de t'apporter mon savoir s'il s'agit de Chillispot ou Coova-chilli (qui apportent beaucoup de fil à retordre généralement)

    En espérant t'avoir aidé!!
    Bon courage

    Jak
    1. Bonjour,
      Je travaille avec freeradius depuis bientôt un mois et demi dans le cadre de mon projet de stage. Le but du projet est de permettre l'authentification et l'accounting des utilisateurs d'asterisk à partir de freeradius.
      Tous les tutoriels que j'ai consulté jusqu'à ce jour ne me permettent pas d'avancer dans mon projet.
      J'ai utilisé radiusclient-ng comme client radius entre les deux serveurs cela ne fonctionnent. Si vous avez déjà travaillé dessus, j'aurai besoin de votre aide.
      Merci pour votre contribution
  2. je suis sur le serveur de notre université donc, j'ai pas accès à 2 terminal, j'utilise putty, est-ce que je peux le faire dans le même terminal?
    ne part pas encore, ok!!
    1. rien ne s'affiche, c'est normale ça?
    2. j'était même allé voir dans le dosssier, il n'y a rien
    3. Tu peux ouvrir plusieurs session sur environnement UNIX (6 en lignes de commandes et une graphique )
      Fais un CTRL+ALT+F1 ou CRTL+ALT+F2 ou ...F3...F4...F5...F6 pour ouvrir une des 6 sessions non graphiques et ALT+F7 pour la graphique (mais sur putty ça ne fonctionnera pas je pense)
    4. justement, et comment je fais alors? pour te donner les info que tu cherches?
    5. Eh bien si les CTRL+ALT+F1~F6 ne fonctionnent pas, je ne vois pas désolé. Je n'utilise quasi jamais PUTTY, bien que pratique généralement pour la copie...
  3. Re Bonjour vous deux :)
    Ah ça tourne autour du snmp.conf à ce que je vois :)
    Mauvaise nouvelle pour toi Leslie, ton soucis ne viens pas de là.
    J'ai fais quelques test et ai remarqué qu'en fonction de ta machine, tu ne peux pas utiliser ldap et file en même temps (en fait tu peux mais c'est peu stable). je pense donc que dans tous les cas tes utilisateurs dans USERS seront rejetés

    Grâce à ton log de démarrage, j'ai constaté qu'il n'y avait pas de soucis (à première vue du moins). Ce qu'il me faut maintenant c'est les logs de ton FreeRADIUS au moment du radtest :) Tu peux si tu le souhaites et pour ne pas t'embêter, ouvrir un deuxième terminal et y taper #tail -f /var/log/freeradius/radius.log
    Copie moi alors les informations sur cette fenêtre au moment du radtest s'il te plais :)

    Usbeth,
    Tu es sûr que ton radius ne démarre pas sans ce fichier "snmp.conf" ? moi il n'est tout simplemet pas présent et tout à l'air de fonctionner :-/
    Le soucis n'est peut être pas ici ?

    1. Si je commente toute la partie snmp j'obtiens l'erreur suivante:

      freeradius -X
      FreeRADIUS Version 2.1.12, for host x86_64-pc-linux-gnu, built on Sep 11 2012 at 22:27:05
      Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. 
      There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
      PARTICULAR PURPOSE. 
      You may redistribute copies of FreeRADIUS under the terms of the 
      GNU General Public License v2. 
      Starting - reading configuration files ...
      including configuration file /etc/freeradius/radiusd.conf
      including configuration file /etc/freeradius/proxy.conf
      including configuration file /etc/freeradius/clients.conf
      including files in directory /etc/freeradius/modules/
      including configuration file /etc/freeradius/modules/ldap
      including configuration file /etc/freeradius/modules/detail.example.com
      including configuration file /etc/freeradius/modules/exec
      including configuration file /etc/freeradius/modules/pap
      including configuration file /etc/freeradius/modules/cui
      including configuration file /etc/freeradius/modules/dynamic_clients
      including configuration file /etc/freeradius/modules/radutmp
      including configuration file /etc/freeradius/modules/acct_unique
      including configuration file /etc/freeradius/modules/ippool
      WARNING: No such configuration item db_dir
      /etc/freeradius/modules/ippool[47]: Reference "${db_dir}/db.ippool" not found
      Errors reading /etc/freeradius/radiusd.conf
    2. OK,
      Si j'en crois les logs, tu utilises des ippools (groupes d'adresses IP) pour ta config ?
      Apparemment tu utilises le module db.ippool qui requiere une Base de donnée a part pour gérer des groupes d'adresses IP et je ne pense pas que ce soit ce que tu veux si ?

      Si ce n'est effectivement pas au programme, alors désactive simplement le module db.ippool dans le fichier /modules/ippool
    3. Génial ! Ensuite j'ai eu une autre erreur que j'ai réglé ! Mais celle là je sais pas du tout.

      freeradius -X
      FreeRADIUS Version 2.1.12, for host x86_64-pc-linux-gnu, built on Sep 11 2012 at 22:27:05
      Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. 
      There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
      PARTICULAR PURPOSE. 
      You may redistribute copies of FreeRADIUS under the terms of the 
      GNU General Public License v2. 
      Starting - reading configuration files ...
      including configuration file /etc/freeradius/radiusd.conf
      including configuration file /etc/freeradius/proxy.conf
      including configuration file /etc/freeradius/clients.conf
      including configuration file /etc/freeradius/snmp.conf
      including files in directory /etc/freeradius/modules/
      including configuration file /etc/freeradius/modules/ldap
      including configuration file /etc/freeradius/modules/detail.example.com
      including configuration file /etc/freeradius/modules/exec
      including configuration file /etc/freeradius/modules/pap
      including configuration file /etc/freeradius/modules/cui
      including configuration file /etc/freeradius/modules/dynamic_clients
      including configuration file /etc/freeradius/modules/radutmp
      including configuration file /etc/freeradius/modules/acct_unique
      including configuration file /etc/freeradius/modules/ippool
      including configuration file /etc/freeradius/modules/detail
      including configuration file /etc/freeradius/modules/pam
      including configuration file /etc/freeradius/modules/opendirectory
      including configuration file /etc/freeradius/modules/krb5
      including configuration file /etc/freeradius/modules/passwd
      including configuration file /etc/freeradius/modules/mschap
      including configuration file /etc/freeradius/modules/logintime
      including configuration file /etc/freeradius/modules/checkval
      including configuration file /etc/freeradius/modules/unix
      including configuration file /etc/freeradius/modules/perl
      including configuration file /etc/freeradius/modules/wimax
      including configuration file /etc/freeradius/modules/realm
      including configuration file /etc/freeradius/modules/redis
      including configuration file /etc/freeradius/modules/soh
      including configuration file /etc/freeradius/modules/linelog
      including configuration file /etc/freeradius/modules/policy
      including configuration file /etc/freeradius/modules/attr_rewrite
      including configuration file /etc/freeradius/modules/mac2ip
      including configuration file /etc/freeradius/modules/digest
      including configuration file /etc/freeradius/modules/rediswho
      including configuration file /etc/freeradius/modules/preprocess
      including configuration file /etc/freeradius/modules/sqlcounter_expire_on_login
      including configuration file /etc/freeradius/modules/echo
      including configuration file /etc/freeradius/modules/chap
      including configuration file /etc/freeradius/modules/expiration
      including configuration file /etc/freeradius/modules/inner-eap
      including configuration file /etc/freeradius/modules/replicate
      including configuration file /etc/freeradius/modules/expr
      including configuration file /etc/freeradius/modules/counter
      WARNING: No such configuration item db_dir
      /etc/freeradius/modules/counter[72]: Reference "${db_dir}/db.daily" not found
      Errors reading /etc/freeradius/radiusd.conf


      Je connais pas ce fichier. Alors j'ai essayé plein de chose différentes mais rien ^^" Donc j'ai remis le fichier comme si je n'y avais jamais touché.
    4. Bonjour bonjour,
      C'est bizarre tu as une erreur dans ton module "counter" . Tu les collectionnes ou quoi ^^
      Du coup de même que pour le module ippool, tu n'as pas besoin du module counter, à part si tu souhaite déloguer tes utilisateurs à un moment précis. (le module counter sert à stopper l'authentification et l'accounting (le suivi) d'une personne à la fin d'un temps donné). Si tu utilise un portail captif, il vaut mieux utiliser sont counter à lui, mais c'est pareil, il faut en avoir besoin.

      Si tu n'en as pas besoin il ne faut pas utiliser le module counter. Mais par défaut, il n'apporte généralement pas de soucis.

      Par défaut, ton module ne doit contenir que les lignes suivantes (en plus de beaucoup de commentaires):

      counter daily {
      filename = ${db_dir}/db.daily
      #apparament toi cette ligne pose soucis
      key = User-Name
      count-attribute = Act-Session-Time
      reset = daily
      counter-name = Daily-Session-Time
      check-name = Max-Daily-Session
      reply-name = Session-Timeout
      allowed-servicetype = Framed-User
      cache-size = 5000
    5. Yop !

      Ouai j'avoue ! Je suis le pro des erreurs xD
      J'aimerais bien avoir aucune erreurs mais bon ^^"

      Je viens de commenter cette ligne et c'est bon. Seulement, pour changer, j'ai une autre erreur dans un fichier

      including configuration file /etc/freeradius/sql/mysql/dialup.conf
      Unable to open file "/etc/freeradius/sql/mysql/dialup.conf": No such file or directory
      Errors reading /etc/freeradius/radiusd.conf

      Je vais réussir a vaincre freeradius ! J'y suis presque je sens. Et je vais essayer de trouver cette erreur

      Edit !

      Trouvé ! :D
      Vu que je ne me sers pas de sql, j'ai commenté une ligne incluant les fichier sql.
      Et j'ai encore une autre erreur xDDDD
      J'en ai marrreeeeeeeeeeeeee !
      including configuration file /etc/freeradius/sites-enabled/default
      main {
      	user = "radiusd"
      	group = "radiusd"
      	allow_core_dumps = no
      }
      freeradius: Cannot get ID for group radiusd: Success

      Let's do it !
  4. eh ho!! Jak est toujours là? vais refaire l'installation pour voir?
    1. slt Jak! Merci pour tes conseils! Car maintenant que j'ai plus d'erreur en lançant en mode debug, MAIS en lançant la commande radtest, j'ai un access-reject, ce qui est bizarre, c'est qu'il marchait dans mon précédant freeradius. J'ai refais les mêmes config mais en vain. Tu peux m'aider stp!!
      j'ai décommenté un utilisateur dans users pour faire le test et j'ai configuré clients.conf comme d'hab! Alors où est le problème? l'authentification avec eap est activé par defaut.
      1. Moi je peux pas trop t'aider, j'y connais rien. Mais fais voir tes fichiers de conf. Peut être je vais trouver l'erreur. On sait jamais ! :)
      2. Bonjour Leslie,
        Je t'aiderai avec plaisir, du moins si j'en suis capable... :)
        J'ai besoin d'informations. Tu as donc réinstallé FreeRADIUS qui cette fois démarre sans soucis, En revanche, le radtest échoue.

        Questions:
        - Utilises tu un ldap à coté ou simplement le fichier USERS ?
        - As tu un LDAP joignable et opérationnel (cf. Usbeth :-D )?
        - As tu configuré ton module ldap ? (identity, password,...)?
        - As tu bien autorisé le ldap dans le fichier sites-availables/default en décommantant les lignes associées ?

        L'authentification EAP ne pose normalement pas de problème, du moment que l'on passe tout en clair (non chiffré).

        Recommandations:
        - Lance FreeRADIUS en mode débug (d'abord tu le stop avec la commande #/etc/init.d/freeradius stop puis tu le relance en débug avec #freeradius -X) et colle nous ce qu'il te dit quand tu fais un radtest(de la même manière qu'Usbeth) afin que l'on puisse analyser tout ça :-)

        Bonne chance!

        Jak
      3. slt! merci d'avoir répondu, euh, voilà un extrait de ce qu'il montre en lançant radiusd -X

        with_ntdomain_hack = no
        allow_retry = yes
        }
        Module: Linked to module rlm_digest
        Module: Instantiating module "digest" from file /usr/local/etc/raddb/modules/digest
        Module: Linked to module rlm_unix
        Module: Instantiating module "unix" from file /usr/local/etc/raddb/modules/unix
        unix {
        radwtmp = "/usr/local/var/log/radius/radwtmp"
        }
        Module: Linked to module rlm_eap
        Module: Instantiating module "eap" from file /usr/local/etc/raddb/eap.conf
        eap {
        default_eap_type = "md5"
        timer_expire = 60
        ignore_unknown_eap_types = no
        cisco_accounting_username_bug = no
        max_sessions = 4096
        }
        Module: Linked to sub-module rlm_eap_md5
        Module: Instantiating eap-md5
        Module: Linked to sub-module rlm_eap_leap
        Module: Instantiating eap-leap
        Module: Linked to sub-module rlm_eap_gtc
        Module: Instantiating eap-gtc
        gtc {
        challenge = "Password: "
        auth_type = "PAP"
        }
        Module: Linked to sub-module rlm_eap_tls
        Module: Instantiating eap-tls
        tls {
        rsa_key_exchange = no
        dh_key_exchange = yes
        rsa_key_length = 512
        dh_key_length = 512
        verify_depth = 0
        CA_path = "/usr/local/etc/raddb/certs"
        pem_file_type = yes
        private_key_file = "/usr/local/etc/raddb/certs/server.pem"
        certificate_file = "/usr/local/etc/raddb/certs/server.pem"
        CA_file = "/usr/local/etc/raddb/certs/ca.pem"
        private_key_password = "whatever"
        dh_file = "/usr/local/etc/raddb/certs/dh"
        random_file = "/usr/local/etc/raddb/certs/random"
        fragment_size = 1024
        include_length = yes
        check_crl = no
        cipher_list = "DEFAULT"
        make_cert_command = "/usr/local/etc/raddb/certs/bootstrap"
        ecdh_curve = "prime256v1"
        cache {
        enable = no
        lifetime = 24
        max_entries = 255
        }
        verify {
        }
        ocsp {
        enable = no
        override_cert_url = yes
        url = "http://127.0.0.1/ocsp/"
        use_nonce = yes
        timeout = 0
        softfail = no
        }
        }
        Module: Linked to sub-module rlm_eap_ttls
        Module: Instantiating eap-ttls
        ttls {
        default_eap_type = "md5"
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        virtual_server = "inner-tunnel"
        include_length = yes
        }
        Module: Linked to sub-module rlm_eap_peap
        Module: Instantiating eap-peap
        peap {
        default_eap_type = "mschapv2"
        copy_request_to_tunnel = no
        use_tunneled_reply = no
        proxy_tunneled_request_as_eap = yes
        virtual_server = "inner-tunnel"
        soh = no
        }
        Module: Linked to sub-module rlm_eap_mschapv2
        Module: Instantiating eap-mschapv2
        mschapv2 {
        with_ntdomain_hack = no
        send_error = no
        }
        Module: Checking authorize {...} for more modules to load
        Module: Linked to module rlm_preprocess
        Module: Instantiating module "preprocess" from file /usr/local/etc/raddb/modules/preprocess
        preprocess {
        huntgroups = "/usr/local/etc/raddb/huntgroups"
        hints = "/usr/local/etc/raddb/hints"
        with_ascend_hack = no
        ascend_channels_per_line = 23
        with_ntdomain_hack = no
        with_specialix_jetstream_hack = no
        with_cisco_vsa_hack = no
        with_alvarion_vsa_hack = no
        }
        reading pairlist file /usr/local/etc/raddb/huntgroups
        reading pairlist file /usr/local/etc/raddb/hints
        Module: Linked to module rlm_realm
        Module: Instantiating module "suffix" from file /usr/local/etc/raddb/modules/realm
        realm suffix {
        format = "suffix"
        delimiter = "@"
        ignore_default = no
        ignore_null = no
        }
        Module: Linked to module rlm_files
        Module: Instantiating module "files" from file /usr/local/etc/raddb/modules/files
        files {
        usersfile = "/usr/local/etc/raddb/users"
        acctusersfile = "/usr/local/etc/raddb/acct_users"
        preproxy_usersfile = "/usr/local/etc/raddb/preproxy_users"
        compat = "no"
        }
        reading pairlist file /usr/local/etc/raddb/users
        reading pairlist file /usr/local/etc/raddb/acct_users
        reading pairlist file /usr/local/etc/raddb/preproxy_users
        Module: Checking preacct {...} for more modules to load
        Module: Linked to module rlm_acct_unique
        Module: Instantiating module "acct_unique" from file /usr/local/etc/raddb/modules/acct_unique
        acct_unique {
        key = "User-Name, Acct-Session-Id, NAS-IP-Address, NAS-Identifier, NAS-Port"
        }
        Module: Checking accounting {...} for more modules to load
        Module: Linked to module rlm_detail
        Module: Instantiating module "detail" from file /usr/local/etc/raddb/modules/detail
        detail {
        detailfile = "/usr/local/var/log/radius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d"
        header = "%t"
        detailperm = 384
        dirperm = 493
        locking = no
        log_packet_header = no
        }
        Module: Linked to module rlm_attr_filter
        Module: Instantiating module "attr_filter.accounting_response" from file /usr/local/etc/raddb/modules/attr_filter
        attr_filter attr_filter.accounting_response {
        attrsfile = "/usr/local/etc/raddb/attrs.accounting_response"
        key = "%{User-Name}"
        relaxed = no
        }
        reading pairlist file /usr/local/etc/raddb/attrs.accounting_response
        Module: Checking session {...} for more modules to load
        Module: Linked to module rlm_radutmp
        Module: Instantiating module "radutmp" from file /usr/local/etc/raddb/modules/radutmp
        radutmp {
        filename = "/usr/local/var/log/radius/radutmp"
        username = "%{User-Name}"
        case_sensitive = yes
        check_with_nas = yes
        perm = 384
        callerid = yes
        }
        Module: Checking post-proxy {...} for more modules to load
        Module: Checking post-auth {...} for more modules to load
        Module: Instantiating module "attr_filter.access_reject" from file /usr/local/etc/raddb/modules/attr_filter
        attr_filter attr_filter.access_reject {
        attrsfile = "/usr/local/etc/raddb/attrs.access_reject"
        key = "%{User-Name}"
        relaxed = no
        }
        reading pairlist file /usr/local/etc/raddb/attrs.access_reject
        } # modules
        } # server
        server inner-tunnel { # from file /usr/local/etc/raddb/sites-enabled/inner-tunnel
        modules {
        Module: Checking authenticate {...} for more modules to load
        Module: Checking authorize {...} for more modules to load
        Module: Checking session {...} for more modules to load
        Module: Checking post-proxy {...} for more modules to load
        Module: Checking post-auth {...} for more modules to load
        } # modules
        } # server
        radiusd: #### Opening IP addresses and Ports ####
        listen {
        type = "auth"
        ipaddr = *
        port = 0
        }
        listen {
        type = "acct"
        ipaddr = *
        port = 0
        }
        listen {
        type = "control"
        listen {
        socket = "/usr/local/var/run/radiusd/radiusd.sock"
        }
        }
        listen {
        type = "auth"
        ipaddr = 127.0.0.1
        port = 18120
        }
        ... adding new socket proxy address * port 33019
        Listening on authentication address * port 1812
        Listening on accounting address * port 1813
        Listening on command file /usr/local/var/run/radiusd/radiusd.sock
        Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
        Listening on proxy address * port 1814
        Ready to process requests.

        et en lançant le test radtest, j'ai cela:

        Sending Access-Request of id 200 to 127.0.0.1 port 1812
        User-Name = "steve"
        User-Password = "testing"
        NAS-IP-Address = 192.168.11.30
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
        rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=200, length=20

        J'ai effectivement un ldap qui est joignable, mais j'ai voulu s'assurer qu'il marche en local d'abord!
      4. ma commande radtest:
        radtest steve testing localhost 1812 testing123
      5. En gros tu as la même chose que moi quand je faisais mon radtest :/
        Hélas, je n'ai pas la réponse.

        Et on ne ce moque pas Jak ! xD
        Bon j'avoue que c'était mérité... ^^

        Leslie t'aurais pas le fichier snmp.conf pour bibi please ? *-*
    2. Salut,

      Merci jak, je vais essayer ça, mais j'ai un petit problème j'ai plus le fichier "directory" !
      Quelqu'un l'aurais pour moi ?
      Je suis un boulet ^^"
      1. le fichier "directory "? de quel fichier s'agit -t il ?
      2. /etc/freeradius/directory

        En faite des que je fais /etc/init.d/freeradius restart ou start j'ai un fail. Et je pense que c'est parce qu'il manque ce fichier.

        Lancement de la commande freeradius -X
        freeradius -X
        FreeRADIUS Version 2.1.12, for host x86_64-pc-linux-gnu, built on Sep 11 2012 at 22:27:05
        Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. 
        There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
        PARTICULAR PURPOSE. 
        You may redistribute copies of FreeRADIUS under the terms of the 
        GNU General Public License v2. 
        Starting - reading configuration files ...
        including configuration file /etc/freeradius/radiusd.conf
        including configuration file /etc/freeradius/proxy.conf
        including configuration file /etc/freeradius/clients.conf
        including configuration file /etc/freeradius/snmp.conf
        Unable to open file "/etc/freeradius/snmp.conf": No such file or directory
        Errors reading /etc/freeradius/radiusd.conf
        


        il me manque aussi le fichier snmp.conf apparemment
      3. Me suis trompé ! Le nom du fichier c'est /etc/freeradius/dictionary !!
      4. Ah en effet, s'il te manque le fichier dictionary ça va planter :)
      5. il te faut le trouver sur internet car une réinstallation ne te le réintègrera pas. En revanche c'est assez étrange qu'il ait disparut ^^
    3. j'ai refais l'installation plusieurs fois et oui, j'ai bien installé freeradius-ldap, dans d'autres forum, ils disent que le modules n'est pas activé? comment ça?
      alors que j'ai déja recompilé combien et combien de fois!!
      1. Bonjour Leslie,
        Peut être que le soucis vient de ton paquet .gz.
        Je m'explique:
        La commande #apt-get install freeradius-ldap te fournit le moyen de configurer un ldap avec freeradius.
        Mais cette commande ne vaut la peine et ne fonctionne que si et seulement si tu installes freeradius2.X avec la commande #apt-get install freeradius
        Tu ne dois pas utiliser un paquet freeradius téléchargé autrement que par le dépot (le dépot = apt-get install) si tu utilise ensuite un apt-get install tu vois où je veux en venir ?
        soit TOUT en dépot et donc :
        #apt-get update
        #apt-get upgrade
        #apt-get install freeradius
        #apt-get install freeradius-ldap

        soit TOUT sans dépot à savoir ta méthode:
        #wget http://XXXXXX.freeradius-2.0.0.tar.gz (attention cette commande n'existe pas c'est pour l'exemple)
        #dpkg -i freeradius-2.0.0.tar.gz ...

        Voila moi j'installe tout en dépot (pour justement ne pas avoir de soucis de compatibilité ou autre (ce qui est ton cas)

        donc solutions possibles:
        - Supprime ton paquet freeradius que tu as téléchargé
        puis:
        #apt-get autoremove freeradius
        #apt-get autoremove freeradius-ldap
        #apt-get install freeradius
        #apt-get install freeradius-ldap

        Attention tu ne perds pas le contenu de tes fichiers de conf freeradius (tes modifs restent donc intactes)

        J'espère pouvoir t'aider d'avantage par la suite
        Courage à toi

        Jak
    4. slt!! je vois que vous au moins, vous avez un ready for request en lançcant radius en mode debug; et bien moi pas. Il y est écrit, failed to link module rlm_ldap, j'ai essayer d'installer freeradius-ldap avec:
      apt-get update
      apt-get upgrade
      apt-get freeradius-ldap
      Mais il me répond que freeradius-ldap est déja la version la plus récente installée.
      Est-ce que cela veut dire qu'il est déja installé dans ma machine?
      Help please? que dois-je faire, j'ai vraiment pas envie de le désinstallé car j'ai mis des semaines à m'en sortir de" no reponse from the serveur" et j'ai installé freeradius à l'aide d'un paquet freeradius-server-2.2.0.tar.gz.
      1. Ah ! Voila qui explique tout :)

        Tu n'as tout simplement pas de ldap

        Bien La première faute est miènne:
        Mon tuto consistait à l'installation de FreeRADIUS avec une COMPATIBILITE ldap (d'où l'installation du module freeradius-ldap) MAIS ATTENTION, il te faut OBLIGATOIREMENT un ldap configuré et prêt A COTE :)

        J'aurais dû le préciser, freeradius-ldap n'est pas un LDAP mais un module de compatibilité avec un ldap :)

        je te cite:

        apt-get install slapd


        Ça c'est un daemon (un processus) qui gère le ldap :) (basé d'ailleur sur OpenLDAP)

        Il te faut dans un premier temps faire
        #sudo -s pour être en root et le rester (il te demande le mot de passe de session)
        #apt-get install slapd pour installer un daemon ldap (donc ton ldap)
        #apt-get install ldap-utils (pour tes tests)
        #dpkg-reconfigure slapd pour configurer ton ldap

        Ici ça devient important:

        slapd te demande alors:
        1.Passer la configuration d'OpenLDAP ? tu met "non"
        se suivent:
        2.Nom de domaine ? réponse: example.local (met le nom de ton entreprise, école, maison ce que tu veux ^^)
        3.Nom de votre société ? réponse: même nom sans le ".local"
        4.Quelle base de donnée ? réponse: hdb
        5.Voulez-vous que la base de donnée soit effacée ... Réponse: oui
        6.Supprimer les anciennes bases de données ? Réponse: oui
        7.Mot de passe administrateur ? Réponse: TonMotDePasse
        8.Confirmer ce mot de passe ? Réponse: le même mot de passe
        9.Authoriser le protocol LDAPv2 ? Réponse: non

        après ça ton ldap est créé. Ouvre alors le fichier /etc/ldap/ldap.conf qui devrait normalement exister: voici son contenu

        ldap_version 3
        URI ldap://localhost:389
        SIZELIMIT 0
        TIMELIMIT 0
        DEREF never
        BASE dc=example, dc=com


        Change ton premier dc="le nom sans .local que tu as renseigné avant"
        et ton deuxième dc="local"

        ensuite ouvre /etc/ldap/slapd.conf et change le comme ceci:

        suffix "dc=lenom sans .local,dc=local"
        directory "/var/lib/ldap"
        rootdn "cn=Leslie ou admin toi qui vois,dc=nom sans .local,dc=local"
        rootpw TonMotDePasse


        Ensuite il faut remplir ton ldap (ajoute des "ou" (unités d'organisations) et des utilisateurs (par exemple notre Leslie si tu ne l'a pas mis au dessus ^^)

        INFO: exemple d'un ldap d'école pour que tu comprenne l'architecture:

        domaine .............ecole.local
        ................................. /\.............................................
        ................................./...\...........................................
        ................................/......\..........................................
        .............................. /.........\.........................................
        ..................ou Profs ..........ou Eleves.............
        ..................../....................../................\......................
        ...cn=Jean Pierre ...........ou CM1.......ou CM2.................
        ... cn=Anne Marie..................|.................|.....................
        ............... ... ...................Jenny ........Thibault...............
        ........................................Louis ...........Karim...............

        Remplis donc ton ldap comme bon te semble :) en tapant:

        #gedit /etc/ldap/init.ldif (tu devras peut etre le créer)

        note: aide toi de ce site pour remplir: http://doc.ubuntu-fr.org/slapd (partie 3: remplir ldap)

        Et redis moi quand tu aura fini tout ça :)

        Allez courage!

        Jak
        1. Hoo ! Génial !

          Dans mon fichier ldap.conf j'avais exactement la même chose que je t'ai marquer quelques messages au dessus. Du coup j'ai rajouté ce que tu as dis. Pour le deuxième dc il faut juste mettre "local" ? ou "cequetuasmarqué.local" ?

          Ensuite je n'ai pas de fichier /etc/ldap/slapd.conf !! Dans le répertoire /etc/ldap/ les fichiers présents sont : ldap.conf, sasl2, schema, slapd.d. Ceux qui sont en gras sont des fichiers

          Je sens que la fin est proche ! :D

          Usbeth
        2. juste local (en fait ton ldap à un domaine ("UnNomQueTuChoisis.local")

          et donc on te demande toujours 2 dc :le premier c'est ce qu'il y a avant le "." donc ici "UnNomQueTuChoisis" et le deuxieme ce qu'il y a apres le "." donc ici "local"
        3. pour ton fichier slapd.conf fais un

          #find / | grep slapd.conf

          et vois ce qu'il te répond (normalement il te le trouve)
        4. Ok !

          Il me l'a trouvé !
          find / | grep slapd.conf 
          /usr/share/man/man5/slapd-config.5.gz
          /usr/share/man/man5/slapd.conf.5.gz
          /usr/share/slapd/slapd.conf
          /usr/share/doc/slapd/examples/slapd.conf
          /var/lib/dpkg/info/slapd.config
          /var/lib/dpkg/info/slapd.conffiles
          


          Je continue et je te dis
        5. Le fichier init.ldif :
          # fichier de données : ~/init.ldif
          dn: dc=example,dc=com
          objectClass: dcObject
          objectClass: organizationalUnit
          dc: example
          ou: Example Dot Com
          
          dn: ou=people,dc=example,dc=com
          objectClass: organizationalUnit
          ou: people
          
          dn: ou=groups,dc=example,dc=com
          objectClass: organizationalUnit
          ou: groups
          
          dn: uid=lionel,ou=people,dc=example,dc=com
          objectClass: inetOrgPerson
          objectClass: posixAccount
          objectClass: shadowAccount
          uid: lionel
          sn: Porcheron
          givenName: Lionel
          cn: Lionel Porcheron
          displayName: Lionel Porcheron
          uidNumber: 1000
          gidNumber: 10000
          gecos: Lionel Porcheron
          loginShell: /bin/bash
          homeDirectory: /home/lionel
          shadowExpire: -1
          shadowFlag: 0
          shadowWarning: 7
          shadowMin: 8
          shadowMax: 999999
          shadowLastChange: 10877
          mail: lionel.porcheron@example.com
          postalCode: 31000
          l: Toulouse
          o: Example
          mobile: +33 (0)6 xx xx xx xx
          homePhone: +33 (0)5 xx xx xx xx
          title: System Administrator
          postalAddress: 
          initials: LP
          
          dn: cn=example,ou=groups,dc=example,dc=com
          objectClass: posixGroup
          cn: example
          gidNumber: 10000
          displayName: Example group


          Je dois remplacer tous les example par "nomsans.local" et com par "local" ? Et lionel Porcheron par le profil créé ? Je comprends pas trop le tuto qu'il a fait le mec :/

          désolé ^^"
      2. Re ! :D

        Désolé du double message mais important pour résoudre cette affaire de meurtre ! :O

        Nous avons un indice incroyable ! Le serveur Ldap FONCTIONNE !! :
        apt-get install slapd


        radtest Leslie kikou 127.0.0.1 1812 testing123
        Sending Access-Request of id 159 to 127.0.0.1 port 1812
         User-Name = "Leslie"
         User-Password = "kikou"
         NAS-IP-Address = 127.0.1.1
         NAS-Port = 1812
         Message-Authenticator = 0x00000000000000000000000000000000
        rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=159, length=20


        rad_recv: Access-Request packet from host 127.0.0.1 port 37687, id=159, length=76
         User-Name = "Leslie"
         User-Password = "kikou"
         NAS-IP-Address = 127.0.1.1
         NAS-Port = 1812
         Message-Authenticator = 0x836e0a504ea6396922e228599deeb301
        # Executing section authorize from file /etc/freeradius/sites-enabled/default
        +- entering group authorize {...}
        ++[preprocess] returns ok
        ++[chap] returns noop
        ++[mschap] returns noop
        ++[digest] returns noop
        [suffix] No '@' in User-Name = "Leslie", looking up realm NULL
        [suffix] No such realm "NULL"
        ++[suffix] returns noop
        [eap] No EAP-Message, not doing EAP
        ++[eap] returns noop
        ++[files] returns noop
        [ldap] performing user authorization for Leslie
        [ldap]  expand: %{Stripped-User-Name} -> 
        [ldap]  ... expanding second conditional
        [ldap]  expand: %{User-Name} -> Leslie
        [ldap]  expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=Leslie)
        [ldap]  expand: ou=utilisateurs,dc=DOMAINE,dc=LOCAL -> ou=utilisateurs,dc=DOMAINE,dc=LOCAL
          [ldap] ldap_get_conn: Checking Id: 0
          [ldap] ldap_get_conn: Got Id: 0
          [ldap] attempting LDAP reconnection
          [ldap] (re)connect to 10.1.69.50:389, authentication 0
          [ldap] bind as cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL/kikou to 10.1.69.50:389
          [ldap] waiting for bind result ...
          [ldap] LDAP login failed: check identity, password settings in ldap section of radiusd.conf
          [ldap] (re)connection attempt failed
        [ldap] search failed
          [ldap] ldap_release_conn: Release Id: 0
        ++[ldap] returns fail
        Using Post-Auth-Type Reject
        # Executing group from file /etc/freeradius/sites-enabled/default
        +- entering group REJECT {...}
        [attr_filter.access_reject]  expand: %{User-Name} -> Leslie
        attr_filter: Matched entry DEFAULT at line 11
        ++[attr_filter.access_reject] returns updated
        Delaying reject of request 0 for 1 seconds
        Going to the next request
        Waking up in 0.9 seconds.
        Sending delayed reject for request 0
        Sending Access-Reject of id 159 to 127.0.0.1 port 37687
        Waking up in 4.9 seconds.
        Cleaning up request 0 ID 159 with timestamp +5
        Ready to process requests.
        

        J'ai éffectué un :
        ldapsearch -x -b "ou=utilisateurs,dc=DOMAINE,dc=LOCAL" 'uid=Leslie' 
        # extended LDIF
        #
        # LDAPv3
        # base <ou=utilisateurs,dc=DOMAINE,dc=LOCAL> with scope subtree
        # filter: uid=Leslie
        # requesting: ALL
        #
        
        # search result
        search: 2
        result: 32 No such object
        
        # numResponses: 1
        


        Je sais pas ce que ça veux dire mais c'est fantastique ! :D Maintenant c'est l'authentification qui ne fonctionne pas xD (Et oui ! Il faut toujours un problème ! Mais on va vaincre !). Donc !

        Bah maintenant il faut faire fonctionner tous ceci et comprendre pourquoi l'auth ne fonctionne point. Acceptez vous la mission ? OUI ! Nous allons vaincre !

        Cordialement,
        Usbeth.

        Allez faire un tour sur mon site ;)
        www.frayday.wordpress.com
        1. Il ne l'a pas trouvé car tu n'a pas de LDAP ;)
          Pas de soucis je te tuto tout ça en dessous :-)
      3. Salut à toi !

        Aujourd'hui je suis motivé à régler ce problème !

        Okay je vois. Pour installer/configurer mon ldap J'ai simplement fait:
        apt-get install freeradius-ldap

        Comme tu as dis dans le tuto, que tu as fait. Et ensuite j'ai fait tout ce que tu as dis dans le tuto. Je n'ai touché a rien d'autre. J'ai un fichier dans /etc/ldap/ldap.conf (il y a que ce fichier dans ce dossier). J'ai regardé ce qu'il y a dedans, c'est à dire pas grand chose.

        Fichier /etc/ldap/ldap.conf :

        #
        # LDAP Defaults
        #
        
        # See ldap.conf(5) for details
        # This file should be world readable but not world writable.
        
        #BASE	dc=example,dc=com
        #URI	ldap://ldap.example.com ldap://ldap-master.example.com:666
        
        #SIZELIMIT	12
        #TIMELIMIT	15
        #DEREF		never
        
        # TLS certificates (needed for GnuTLS)
        TLS_CACERT	/etc/ssl/certs/ca-certificates.crt

        A mon avis ca doit être impossible cette manière si je ne fais pas le Ldap sur Windows non ? Pense tu que je devrais faire un OpenLdap vu que je suis sur Ubuntu et non sur Windows comme toi ? Pourrez tu m'aider à le mettre en place si tu sais faire ?

        Cordialement,
        Usbeth.
        1. Bonjour Usbeth :)

          En effet si ton serveur LDAP n'est pas "allumé", tu pourra faire toutes les modif que tu souhaite sur FreeRADIUS sans résultat ^^

          Pour ton dernier message:

          j'ai l'impression que "Leslie" se connecte correctement (sauf qu'il manque le serveur xD) :

          [ldap] bind as cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL/mypass to 10.1.69.50:389


          Il ne s'agit ici que d'une impression, en fait ton log FreeRADIUS se sert simplement de ton fichier ldap (module freeradius) pour t'afficher cette jolie ligne mais il n'essaye même pas de le/la chercher.

          Mais bon, tu as trouvé le problème, et c'est le principal :)
          Il te faut démmarer ton ldap (pour le rendre fonctionnel), et là je n'ai pas vraiment moyen de t'aider sans infos complémentaire (quelles commandes as tu tapé pour installer/configurer ton ldap) Dans mon cas il s'agissait d'un LDAP Windows et donc créé avec un Windows Serveur 2008R2.

          Toi je n'en ai pas la moindre idée (tu m'as simplement indiqué qu'il ne s'agissait pas d'OpenLDAP :) )

          Tu touches au but :)
          Courage!

          Jak
          1. Bonjour,

            Pour résoudre mon problème peut être dois-je faire ceci :

            1 => S'assurer que les modules "ldap" sont décommentés dans els fichiers radiud.conf, /etc/freeradius/site-available/default, /etc/freeradius/site-available/inner-tunnel

            2 => éditer /etc/freeradius/clients.conf :

            client localhost {
            ipaddr = 127.0.0.1
            secret = votre_secret_nas_radius
            nastype = other
            }

            3 => éditer /usr/share/freeradius/dictionary et y rajouter :

            VALUE Auth-Type LDAP 5

            4 => éditer /etc/freeradius/users et y rajoutez :

            DEFAULT Auth-Type := LDAP
            Fall-Through = 1

            Qu'en pensez vous ? Apparemment, l'étape 4 il ne faut pas la faire, enfin les avis diverges dessus. Soit disant "ça n'apporte que des erreurs et si on lance est en mode debug freeradius (sudo freeradius -X) il nous crache une vilaine erreur !".

            Je ne comprends pas non plus pourquoi il me dis "/var/run/freeradius/freeradius.pid not found..." (voir message précédent) et surtout son utilité. Quelqu'un pourrait m'aider ?

            A force de chercher partout je fais plein de config différentes/test. Mais je n'ai toujours pas le résultat recherché. Le bon fonctionnement de mon serveur freeradius.

            Cordialement,
            Usbeth

            Allez faire un tour sur mon site ;)
            www.frayday.wordpress.com
            1. Bonjour Usbeth,
              Ton étape 3), à savoir l'édition du fichier dictionnary ainsi que ton étape 4), qui consiste à modifier le fichier USER sont malheureusement inutiles. :-)
              Je m'explique: Premièrement le fichier dictionnary par défaut inclut les attributs de la RFC2865. Ce dictionnaire établit la correspondance "nom des attributs" - "numéro". Il n'est dans notre cas aucunement recommandé de le modifier. Ensuite, Reflechissons logiquement. =) nous demandons à FreeRADIUS une authentification par LDAP (cf fichier sites-available/default), à partir de là, Freeradius va tanter cette athentification LDAP en utilisant le module LDAP (cd fichier radiusd.conf qui lui même appelle modules/ldap). Modifier le fichier USER ne permet alors rien, si ce n'est de rajouter un utilisateur en plus de ceux de ton ldap. De plus on peut remarquer dans les logs que Freeradius demande bien au ldap regarde:

              ++[files] returns noop
              [ldap] performing user authorization for Leslie


              le [files] return noop t'informe que le FICHIER user ne sera pas utilisé ^^
              Une chose primordiale est à retenir: Par DEFAUT, un serveur freeradius est fonctionnel (du moment que les commandes #apt-get update et #apt-get upgrade ont été faites. Donc ce qui généralement cause l'instabilité (voir le non fonctionnement) de ton serveur, ce sont toutes ces manip rajoutées en plus.
              Il te faut faire au plus simple dès le début, en changeant le minimum de choses et les soucis disparaissent (à part exceptions évidemment).

              Pour la connexion à ton Ldap, j'ignore si tu as modifier le module LDAP de la manière que j'indique (en changeant uid par sAMAccountName). Ce changement est propre à la configuration du LDAP et donc peut s'avérer être l'erreur qui t'empêche d'avancer. Vérifie aussi de façon très minutieuse le chemin de ton lecteur LDAP (identity password) :-)

              Autre chose, si ton FreeRADIUS et ton LDAP sont sur la même machine physique, l'un d'eux est peut être virtualisé? FreeRADIUS est sur un environnement Linux et LDAP Windows (ou bien c'est un OpenLDAP ?) --> Cette différence change bien évidemment la méthode de configuration du module ldap :-)

              Dans tous les cas j'essayerai de t'aider au maximum (mais bon je ne suis pas expert de FreeRADIUS). Si tu trouves l'erreur, n'oublies pas de tout refaire proprement :)

              Courage à toi

              Jak
            2. Salut Jak,

              Tout d'abord merci de ton aide et de tes informations !

              Je n'est actuellement pas exécuté ceci :
               Passons à la ligne filter = -->Ne modifie cette ligne que si tu utilise un Active directory Windows. et si c'est le cas, change le "uid=...etc" par sAMAccountName=...(le reste de la ligne ne change pas) 

              Puisque je n'utilise pas un ADW.

              J'ai mon serveur freeradius & mon Ldap sur la même machine, qui est une Ubuntu. Est-ce par ce que j'ai tout sur Ubuntu que cela ne fonctionne pas ?
              Je n'ai pas de Open Ldap.

              Je pense qu'il doit y avoir un erreur dans le fichier ldap :
              identity = "cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL"
               password = mypass
               basedn = "ou=utilisateurs,dc=DOMAINE,dc=LOCAL"
                      filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"


              Je ne comprend pas les lignes identify, basedn ainsi que filter. Il doit forcément y avoir une erreur dans les environs. J'ai aussi une question. Le fait de mettre le mot de passe sans les guillemets. Ca pose un problème ?

              J'ai essayé avec et sans, cela ne change rien.

              Je ne comprends pas, non plus, ce que tu appel chemin LDAP.

              Merci encore,
              Usbeth
            3. Bien bien,

              Tu es donc sur une seule et même machine UNIX Ubuntu (serveur lts ou bien desktop?).

              Pour expliquer les lignes que tu cites:
              identity sert ici à "t'identifier" auprès de ton ldap c'est à dire que n'importe qui ne peut pas forcément aller lire comme ça ton LDAP, il te faut donc choisir un utilisateur ayant droit de lecture sur ce dernier.
              password est évidemment le mot de passe de la personne cité précédemment.

              Si ton ldap reconnait "Leslie" alors le log te dira:

              [ldap] attempting LDAP reconnection
              [ldap] (re)connect to 10.1.69.50:389, authentication 0
              [ldap] bind successful


              ou quelque chose de proche en tout cas.

              Mais le soucis que tu rencontres ici ne concerne pas "Leslie" donc pas Identity (du moins pour le moment). ton ldap n'est pas consulté car injoignable.

              Grâce aux dernières infos que tu m'a donné (et je t'en remercie :-) ), on peut dire à coup sûr que le ping fonctionne --> MAIS quoi de plus simple pour ta machine que de se pinguer elle même (apres tout ton ping vers FreeRADIUS serait exactement le même #ping 10.1.69.50 non ?) donc il te faut vérifier si ton serveur LDAP est fonctionnel.

              Suggestions:
              - Est-il lancé ?
              - As tu moyen de voir ses logs ?
              - Les commandes de test ldap sont elles OK ?

              Recommandations:
              - fais un #tail -f /var/log/syslog dans un terminal à part (si tu procède en graphique) ou dans TTY2 (si tu es en console). Cette commande t'affiche en temps réel(grâce au -f ) les log de ton système.

              - effectue un test de consultation sur ton ldap grâce à la commande suivante (voir à modifier un peu):
              #ldapsearch -x -b "ou=utilisateurs,dc=DOMAINE,dc=LOCAL" 'uid=Leslie'
              le -x veut dire "simple consultation" le -b est équivalent au basedn du FreeRADIUS (chemin où se situent les utilisateurs).
              note: si ldapsearch n'est pas installé, voici la commande:
              #apt-get install ldap-utils

              Tant que tu n'arrivera pas à faire fonctionner le ldapsearch, alors il ne sert à rien de chercher le soucis dans FreeRADIUS (du moins c'est ce que je pense)

              Je repasse ce soir en croisant les doigts pour toi ;)
              Courage!

              Jak
            4. Je viens de comprendre ce qu'il cloche, grâce a ton dernier message ! Je suis trop nul !

              Nan mais HO MON DIEU !

              Explication :
              Pour moi, le serveur ldap se lancé automatiquement. Enfin, je veux dire que je pensais que s'était inutile de le lancer. C'est donc pour cette raison que je n'ai pas cherché à le lancer. Seulement il faut le lancer, comme pour freeradius !

              Pour le lancer j'ai seek sur le net et je suis tomber sur la commande suivante :
              /etc/init.d/ldap start

              Je la tape dans le terminal sauf que j'ai rien ! Résultat de la commance :
              bash: /etc/init.d/ldap: Aucun fichier ou dossier de ce type
              Pourtant, j'ai bien téléchargé les fichier que tu dis (freeradius et freeradius-ldap). Alors pourquoi je n'est pas la possibilité d'entrer la commande pour lancer le serveur ldap ?!

              C'est la question qui vaut de l'or !

              Je te tien au jus si je trouve avant ton retour.

              Merci l'ami !
            5. Je pense qu'il doit manquer un fichier, ou une ligne de commande. En tout cas je suis sur à 100% que l'erreur est là ! J'ai l'impression que "Leslie" ce connecte correctement (sauf qu'il manque le serveur xD) :
              [ldap] bind as cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL/mypass to 10.1.69.50:389

              Si j'arrive a lancer ce fichu serveur Ldap, je suis sur (à 99.9999%) que tout va fonctionner d'un coup. (Sauf qu'il y a 0.0001% qui me font grandement douter ^^)
          2. salut à tous, je crois que j'ai crié victoire trop tôt!!!
            Mon serveur ne démarre pas!!
            J'ai pourtant taper toutes les commandes inimaginables: service freeradius start, radiusd -X, service radiusd start. il me répond à chaque fois, serevice unrecognize.
            En lançant la commande radiusd start ou radiusd stop, rien ne s'affiche, ça devrait marcher mais en vérifiant dans /etc/init.d, il n'y a aucun service de freeradius.
            Donc j'ai essayé de le configurer avec ldap mais j'ai pleine d'erreur: failed to link rlm_ldap
            Quelque chose comme ça. Quelqu'un peut m'aider?
            1. Salut,

              essaie avec la commande :
              /etc/init.d/freeradius restart
              service freeradius restart


              Moi j'avais un problème assez similaire et des que je faisais start ça me mettais un fail. Ou alors, essaie de faire un stop avant un start.

              Sinon, si tu es motivé, je te conseille de purger totalement freeradius et de tout recommencer ce que tu as fais. Moi c'est ce que j'ai fais.
              Mais bon, ça fonctionne pas pour autant xD
            2. Je suis du même avis qu' Usbeth, #apt-get autoremove freeradius
              Cette commande désinstallera freeradius.

              Si tu ne veux pas réinstaller, alors vérifie l'appel de ton module ldap (dans radiusd.conf) car l'erreur que tu nous rapporte (failed to link rlm_ldap) signifie que ton module n'est pas joignable. As tu bien installé freeradius-ldap en début de configuration? as tu modifié ton radiusd.conf (ou autres fichiers) d'une autre manière que celle que je propose ?
              Courage et... Patience à toi :)
          3. Bonjour,

            J'ai désinstallé freeradius et j'ai recommencé tout depuis le début. J'ai exactement la même erreur :
            radtest Leslie mypass 127.0.0.1 1812 testing123
            Sending Access-Request of id 229 to 127.0.0.1 port 1812
             User-Name = "Leslie"
             User-Password = "mypass"
             NAS-IP-Address = 127.0.1.1
             NAS-Port = 1812
             Message-Authenticator = 0x00000000000000000000000000000000
            rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=229, length=20
            


            Résultat sous la commande "freeradius -X" :
            rad_recv: Access-Request packet from host 127.0.0.1 port 50608, id=229, length=76
             User-Name = "Leslie"
             User-Password = "mypass"
             NAS-IP-Address = 127.0.1.1
             NAS-Port = 1812
             Message-Authenticator = 0x625f2c3a9ecdc39a3a4d4f466c78e369
            # Executing section authorize from file /etc/freeradius/sites-enabled/default
            +- entering group authorize {...}
            ++[preprocess] returns ok
            ++[chap] returns noop
            ++[mschap] returns noop
            ++[digest] returns noop
            [suffix] No '@' in User-Name = "Leslie", looking up realm NULL
            [suffix] No such realm "NULL"
            ++[suffix] returns noop
            [eap] No EAP-Message, not doing EAP
            ++[eap] returns noop
            ++[files] returns noop
            [ldap] performing user authorization for Leslie
            [ldap]  expand: %{Stripped-User-Name} -> 
            [ldap]  ... expanding second conditional
            [ldap]  expand: %{User-Name} -> Leslie
            [ldap]  expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=Leslie)
            [ldap]  expand: ou=utilisateurs,dc=DOMAINE,dc=LOCAL -> ou=utilisateurs,dc=DOMAINE,dc=LOCAL
              [ldap] ldap_get_conn: Checking Id: 0
              [ldap] ldap_get_conn: Got Id: 0
              [ldap] attempting LDAP reconnection
              [ldap] (re)connect to 10.1.69.50:389, authentication 0
              [ldap] bind as cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL/mypass to 10.1.69.50:389
              [ldap] cn=Leslie,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL bind to 10.1.69.50:389 failed: Can't contact LDAP server
              [ldap] (re)connection attempt failed
            [ldap] search failed
              [ldap] ldap_release_conn: Release Id: 0
            ++[ldap] returns fail
            Using Post-Auth-Type Reject
            # Executing group from file /etc/freeradius/sites-enabled/default
            +- entering group REJECT {...}
            [attr_filter.access_reject]  expand: %{User-Name} -> Leslie
            attr_filter: Matched entry DEFAULT at line 11
            ++[attr_filter.access_reject] returns updated
            Delaying reject of request 0 for 1 seconds
            Going to the next request
            Waking up in 0.9 seconds.
            Sending delayed reject for request 0
            Sending Access-Reject of id 229 to 127.0.0.1 port 50608
            Waking up in 4.9 seconds.
            Cleaning up request 0 ID 229 with timestamp +9
            Ready to process requests.
            


            De plus, lorsque je fais les commande suivantes, j'ai les résultats suivants :
            /etc/init.d/freeradius stop
             * Stopping FreeRADIUS daemon freeradius                                                                                                                     * /var/run/freeradius/freeradius.pid not found...                                                                                                   [ OK ] 
            brice-HP etc # /etc/init.d/freeradius start
             * Starting FreeRADIUS daemon freeradius                                                                                                             [fail]


            Mon freeradius & Ldap sont sur la même machine à savoir l'@IP suivante "10.1.69.50". Je comprends pas pourquoi il y a une erreur pour contacter ce fameux serveur Ldap alors qu'il est sur la même machine.

            Y aurait il quelqu'un qui connaît la réponse et puisse me sauver la vie ?!

            Merci encore,
            Usbeth

            Allez faire un tour sur mon site ;)
            www.frayday.wordpress.com
            1. Salut,

              Tout d'abord merci de ta réponse.

              Bah en faite FreeRadius & Ldap sont sur la même machine. A savoir 10.1.69.50.
              Vu que l'adresse IP 10.1.69.50 est l'adresse IP du PC avec lequel j'essaie de pinguer. Quelque soit ma config je suis capable de le pinguer.
              D'ailleurs c'est pour cela que je ne comprends pas. Vu que je fais tout sur la même machine, pourquoi je n'arrive pas a contacter le serveur Ldap ? Je m'attendais à avoir un problème, mais pas de ce type là.

              Pourtant j'ai suivis exactement ce que tu as dis dans ton tuto. Enfin, sauf erreur d'inattention ou autre. Il y a forcement un problème vu que ça ne fonctionne pas parfaitement :)

              Merci encore,
              Usbeth
              1. Bonjour Usbeth,

                Ton log radius parle de lui même en te donnant la raison de l'echec du radtest:

                10.1.69.50:389 failed: Can't contact LDAP server
                [ldap] (re)connection attempt failed


                ce qui signifie que, avant même que FreeRADIUS ne cherche Mickael dans ton Ldap, il n'arrive déjà pas à contacter ce dernier.

                Je remarque que tu as comme adresse LDAP 10.1.69.50
                donc suggestion:
                Arrives tu à pinguer 10.1.69.50 depuis ta machine serveur?
                --> Essaie un # ping 10.1.69.50
                Si le ping ne passe pas (network unreachable ou autre), alors il te faut te placer sur le même réseau que ton serveur LDAP, ou du moin faire en sorte de pouvoir le joindre.

                En revanche, si le ping passe, alors on approfondira la recherche..
                Courage à toi,

                Jak
                1. Bonjour,

                  Je viens de réaliser tout ce que tu as dis. Pourtant j'ai une erreur lors du test. Je n'arrive pas à la trouver ! Peut tu m'aider ?

                  Je suis sous Ubuntu.

                  Voici tous mes fichiers de conf (il y a juste le stricte minimum) :

                  radiusd.conf :
                  La ligne suivante est bien dé commentée :
                  $INCLUDE ${confdir}/modules/


                  default :
                  authenticate {
                   Auth-Type PAP {
                    pap
                   }
                   Auth-Type CHAP {
                    chap
                   }
                   Auth-Type MS-CHAP {
                    mschap
                   }
                   digest
                  should
                   unix
                   Auth-Type LDAP {
                    ldap
                   }


                  ldap :
                  ldap {
                   #
                   #  Note that this needs to match the name in the LDAP
                   #  server certificate, if you're using ldaps.
                   server = "10.1.69.50"
                   identity = "cn=Mickael,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL"
                   password = "123456789"
                   basedn = "ou=utilisateurs,dc=DOMAINE,dc=LOCAL"
                   filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
                   #base_filter = "(objectclass=radiusprofile)"


                  J'ai vérifié environ je sais pas combien de fois je ne trouve pas l'erreur !

                  Voici la commande que je tape avec radtest :
                  radtest Mickael 123456789 127.0.0.1 1812 testing123

                  Voici ce qui suis dans le terminal lors de l'écriture de cette commande :
                  Sending Access-Request of id 210 to 127.0.0.1 port 1812
                   User-Name = "Mickael"
                   User-Password = "123456789"
                   NAS-IP-Address = 127.0.1.1
                   NAS-Port = 1812
                   Message-Authenticator = 0x00000000000000000000000000000000
                  rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=210, length=20

                  Et voici ce que j'obtien dans mon xterm (un autre terminal avec la commande freeradius -X activé) :
                  rad_recv: Access-Request packet from host 127.0.0.1 port 42438, id=210, length=77
                   User-Name = "Mickael"
                   User-Password = "123456789"
                   NAS-IP-Address = 127.0.1.1
                   NAS-Port = 1812
                   Message-Authenticator = 0xbb5ae6f22954f4567b3d356bc2a9b10c
                  # Executing section authorize from file /etc/freeradius/sites-enabled/default
                  +- entering group authorize {...}
                  ++[preprocess] returns ok
                  ++[chap] returns noop
                  ++[mschap] returns noop
                  ++[digest] returns noop
                  [suffix] No '@' in User-Name = "Mickael", looking up realm NULL
                  [suffix] No such realm "NULL"
                  ++[suffix] returns noop
                  [eap] No EAP-Message, not doing EAP
                  ++[eap] returns noop
                  ++[files] returns noop
                  [ldap] performing user authorization for Mickael
                  [ldap]  expand: %{Stripped-User-Name} -> 
                  [ldap]  ... expanding second conditional
                  [ldap]  expand: %{User-Name} -> Mickael
                  [ldap]  expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=Mickael)
                  [ldap]  expand: ou=utilisateurs,dc=DOMAINE,dc=LOCAL -> ou=utilisateurs,dc=DOMAINE,dc=LOCAL
                    [ldap] ldap_get_conn: Checking Id: 0
                    [ldap] ldap_get_conn: Got Id: 0
                    [ldap] attempting LDAP reconnection
                    [ldap] (re)connect to 10.1.69.50:389, authentication 0
                    [ldap] bind as cn=Mickael,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL/123456789 to 10.1.69.50:389
                    [ldap] cn=Mickael,ou=admin,ou=info,dc=DOMAINE,dc=LOCAL bind to 10.1.69.50:389 failed: Can't contact LDAP server
                    [ldap] (re)connection attempt failed
                  [ldap] search failed
                    [ldap] ldap_release_conn: Release Id: 0
                  ++[ldap] returns fail
                  Using Post-Auth-Type Reject
                  # Executing group from file /etc/freeradius/sites-enabled/default
                  +- entering group REJECT {...}
                  [attr_filter.access_reject]  expand: %{User-Name} -> Mickael
                  attr_filter: Matched entry DEFAULT at line 11
                  ++[attr_filter.access_reject] returns updated
                  Delaying reject of request 0 for 1 seconds
                  Going to the next request
                  Waking up in 0.9 seconds.
                  Sending delayed reject for request 0
                  Sending Access-Reject of id 210 to 127.0.0.1 port 42438
                  Waking up in 4.9 seconds.
                  Cleaning up request 0 ID 210 with timestamp +28
                  Ready to process requests.
                  


                  J'espère que vous pourriez m'aider, je suis un peu perdu dans tout ceci..

                  Merci d'avance,
                  Usbeth

                  Allez faire un tour sur mon site ;)
                  www.frayday.wordpress.com
                  • 1
                  • 2