Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2888 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  [Résolu] Transfert de données entre chillispot et freeradius.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Transfert de données entre chillispot et freeradius.

n°880078
supermattt
meuh!
Posté le 22-01-2007 à 14:42:55  profilanswer
 

Salut,  
   
Voila, j'ai installé un freeradius sous debian. Comme les données (envoyées par un portail captif) ne sont pas du type: username/password, je dois modifier l'entrée des données. En clair, le portail captif envoie les données au freeradius qui dès le départ (section instantiate) appelle un module perl (preauth.pl) qui modifie les données et les renvoies au freeradius.  
   
Dans l'idée tout va bien, sauf que j'ai une erreur de type: "can't return outside a subroutine at ..."  
En clair: soit c'est ma ligne "return" qui n'a pas la bonne syntaxe, soit c'est le output_pairs qui n'est pas bon, soit c'est les deux. Le pb, c'est que je viens à peine de commencer le perl, et j'ai eu beau chercher sur google, j'ai pas trouvé quelque chose d'interessant.  
   
   
Code interessant du radiud.conf :  
   
 exec preauth{
  wait = yes
  input_pairs = request
  output_pairs = reply
  program = "/usr/bin/perl ${confdir}/preauth.pl"
 }    
instantiate {
 
 preauth
}  
   
   
Code interessant du preauth.pl :    
$nomutil = $ENV{USER_NAME};
($Organization, $Location, $UserName) = split('_', $nomutil);  
$Organization = $Organization.""";
$Location = """.$Location.""";
$UserName = """.$UserName;  
$ENV{USER_NAME} = $Organization;
$ENV{Location} =  $Location;
$ENV{Utilisateur} = $UserName;
   
return ("Utilisateur =  $ENV{Utilisateur}", "Location =  $ENV{Location}", "USER_NAME =  $ENV{USER_NAME}" );
 
   
Je compte sur votre aide...   :D  
   
++


Message édité par supermattt le 27-07-2007 à 12:31:37
mood
Publicité
Posté le 22-01-2007 à 14:42:55  profilanswer
 

n°937869
supermattt
meuh!
Posté le 27-07-2007 à 12:28:38  profilanswer
 

Je n'ai toujours pas réussi à résoudre le problème (ou partiellement).
 
Freeradius attend en fait la sortie standard. Donc il ne faut pas faire de return, mais juste un print. Le seul soucis, c'est que freeradius ne récupère les variable que temporairement (et ce même avec une création de variable dans le dictionnary.
 
Donc ma solution c'est tourné vers un module pré-intégré à freeradius pour la réécriture:
 
attr_rewrite Utilisateur1{
        attribute = Utilisateur
        searchin = request
        searchfor = "^[0-9]+§"
        replacewith = ""
        ignore_case = no
        new_attribute = no
        max_matches = 1
        append = no
}
 
(ca n'est qu'un exemple, adaptez-le à vos besoins)
Il faut penser à appeller le module depuis la section accounting (et authorize aussi forcément)
 
J'espère que ca aidera quelqu'un.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  [Résolu] Transfert de données entre chillispot et freeradius.

 

Sujets relatifs
Module perl dans Freeradius.[Résolu][Debian] bridge réseau
[Résolu] Debian sans GUI (je ne veux pas qu'il se lance)desinstallation de UBUNTU ( à l'aide!!) RESOLU
[résolu]Serveur MOHAA qui s'éxécute en localhost[résolu] Probleme répartition de charge avec ipvsadm sous Linux
Récupération de données sous linuxPas de son spdif (suse 10.2) [résolu]
vitesse de transfert entre 2 machines vmwaresVNC par 2 tunnels ssh successifs (résolu)
Plus de sujets relatifs à : [Résolu] Transfert de données entre chillispot et freeradius.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR