Ceci est une ancienne révision du document !
Table des matières
Configuration de FedeRez Wifi à FedeRez
Cette page concerne la configuration des 2 serveurs centraux de FedeRez, actuellement dodecagon (online) et parangon (lxc Kdell - Cachan Crans)
Il s'agit d'une installation Freeradius3 classique.
Configuration des clients
Les clients sont les serveurs radius ou nas autorisés à envoyer des requêtes au radius qu'on configure.
Dans le fichier freeradius/3.0/clients.conf, on enregistre les clients des associations + l'autre serveur FedeRez, comme ceci :
##### FEDEREZ WIFI, liste des clients ##### # Liste des clients (serveurs radius) de federez wifi ## CRANS #Ipv4 # Pea (radius 1 du crans) client pea { secret = plop ipaddr = 138.231.148.72 } # eap client eap { secret = plop ipaddr = 138.231.148.71 } ## REZO GIF # Sebulba (radius de test du rezo) client sebulba { secret = plop ipaddr = 160.228.158.188 } # FEDEREZ - Dodecagon client dodecagon { secret = vQKWKyEm0EdU ipaddr = plop } # Local - Monitoring client local { secret = plop ipaddr = 138.231.142.239 } etc...
On met le même secret pour une asso. Il est nécessaire d'enregistrer par ip.
Configuration des proxy
On enregistre ici les serveurs radius distants, donc des assos, auxquels on va forwarder les requêtes.
On choisi par commodité le même secret que ceux dans clients, toujours un par asso.
##### LIST des serveurs radius de federez Wifi : contient au moins IP + SECRET ###### # # # # # Crans START ####################################### realm CRANS { auth_pool = crans_radius_servers nostrip } home_server_pool crans_radius_servers { type = fail-over home_server = eap-Crans home_server = radius-Crans } home_server eap-Crans { type = auth ipaddr = 138.231.148.71 port = 1812 secret = plop require_message_authenticator = yes response_window = 20 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 num_answers_to_alive = 3 } home_server radius-Crans { type = auth ipaddr = 138.231.148.72 port = 1812 secret = plop require_message_authenticator = yes response_window = 20 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 num_answers_to_alive = 3 } # Crans STOP ####################################### # Supelec REZO START ################################# realm REZOGif { auth_pool = rezo_radius_servers nostrip } home_server_pool rezo_radius_servers { type = fail-over home_server = organa-rezo home_server = sebulba-rezo } home_server organa-rezo { type = auth ipaddr = 160.228.154.13 port = 1812 secret = plop require_message_authenticator = yes response_window = 20 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 num_answers_to_alive = 3 } home_server sebulba-rezo { type = auth ipaddr = 160.228.158.188 port = 1812 secret = plop require_message_authenticator = yes response_window = 20 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 num_answers_to_alive = 3 } # Supelec REZO STOP ################################ etc
Configuration des sites
Dans sites-enabled, on trouve default et inner-tunnel.
Dans default, on met les réglages qui permettent de forwarder les requêtes en fonction du suffixe. Ex, un login@rezometz.org sera forwarder au radius enregistré dans proxy sous le nom de REZOMETZ.
Pour cela, on modifie légèrement le fichier default, en ajoutant dans autorize ce qui est pasté ci dessous.
La notation unlang est facile à comprendre : si login@plop.org → on active le proxy PLOP.
On note à la fin le cas où le login est @federez.net, dans ce cas on stripp le login comme dans le cas d'un radius d'asso puis on procède à l'auth.
authorize { if ("%{User-Name}" =~ /@(.*)crans(.*)$/) { update control { Proxy-To-Realm := 'CRANS' } } if ("%{User-Name}" =~ /@(.*)rezometz(.*)$/) { update control { Proxy-To-Realm := 'REZOMetz' } } if ("%{User-Name}" =~ /@(.*)iresam(.*)$/) { update control { Proxy-To-Realm := 'IRESAM' } } if ("%{User-Name}" =~ /@(.*)rezogif$/) { update control { Proxy-To-Realm := 'REZOGif' } } if ("%{User-Name}" =~ /@(.*)larez.fr$/) { update control { Proxy-To-Realm := 'REZOGif' } } if ("%{User-Name}" =~ /@(.*)via(.*)$/) { update control { Proxy-To-Realm := 'VIA' } } if ("%{User-Name}" =~ /@(.*)resel(.*)$/) { update control { Proxy-To-Realm := 'RESEL' } } if ("%{User-Name}" =~ /@(.*)rezel(.*)$/) { update control { Proxy-To-Realm := 'REZEL' } } if ("%{User-Name}" =~ /@(.*)minet(.*)$/) { update control { Proxy-To-Realm := 'MINET' } } if ("%{User-Name}" =~ /@(.*)rez-rennes(.*)$/) { update control { Proxy-To-Realm := 'REZORENNES' } } if ("%{request:User-Name}" =~ /^(.*)@federez.net(.*)/){ update request{ Stripped-User-Name := "%{1}" } }