Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata
2
voti

Autenticazione RADIUS su WIFI Fastweb

Indice

Premesse

In questo articolo viene mostrato come gestire l'accesso al wifi di diversi utenti su un router fastweb memorizzando le credenziali su un server radius per evitare di condividere la stessa login fra utenze diverse.

  • Il server RADIUS viene installato su un raspberry PI 3 dove gira raspbian, quindi la sintassi sarà quella delle distribuzione debian like come ubuntu.
  • Il raspberry è configurato con l'ip statico 192.168.1.11 sull' interfaccia eth0 ( è collegato al router fastweb tramite un cavo ethernet )

Installazione del server radius

apt update
apt upgrade -qy
apt install -qy freeradius freeradius-utils

Creazione del client e degli utenti

E' necessario dire al server radius quale sarà il client che effettuerà le richieste di validazione delle utenze ( il router fastweb ) e quali sono le utenze abilitate. Tali informazioni vanno inserite in due file di configurazione di freeradius che sono:

  • /etc/freeradius/clients.conf
  • /etc/freeradius/users

Editiamo quindi questi due file inserendo infondo le informazioni:

/etc/freeradius/clients.conf

In questo file dobbiamo creare una sezione con l'indirizzo ip del router ( 192.168.1.254 ) contenente la password con cui interrogherà il nostro server RADIUS ( secret = .... ) che poi dovremo inserire nella pagina di configurazione del wifi nel router.

client 192.168.1.254 {        
    secret          = secret-router        
    shortname       = routerfastweb        
    nastype         = other
}
/etc/freeradius/users

In questo file invece inseriremo quanti utenti ci servono, potremmo usarne uno per ogni dispositivo/utente diverso con cui poi collezionare statistiche di accesso.

wifiuser0 Cleartext-Password := "PassWifi0"
wifiuser1 Cleartext-Password := "PassWifi1"
wifiuser2 Cleartext-Password := "PassWifi2"
wifiuser3 Cleartext-Password := "PassWifi3"
wifiuser4 Cleartext-Password := "PassWifi4"


Avvio del server

systemctl enable freeradius
service freeradius start

Test

Radius di default lavora con pacchetti udp sulle porte 1812, 1813, 1814 e 18120

netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 0.0.0.0:52310           0.0.0.0:*
udp        0      0 127.0.0.1:18120         0.0.0.0:*
udp        0      0 0.0.0.0:1812            0.0.0.0:*
udp        0      0 0.0.0.0:1813            0.0.0.0:*
udp        0      0 0.0.0.0:1814            0.0.0.0:*

Eseguiamo un test di connessione usando il client preconfigurato che accetta solo connessioni da localhost con la password preconfigurata testing123 ( comunque personalizzabile nel file clients.conf )

radtest -x -t eap-md5 wifiuser0 PassWifi0 127.0.0.1 0 testing123

Sending Access-Request packet to host 127.0.0.1 port 1812, id=144, length=0
        User-Name = "wifiuser0"
        User-Password = "PassWifi0"
        NAS-IP-Address = 192.168.1.11
        NAS-Port = 0
        Message-Authenticator = 0x00
        EAP-Code = Response
        EAP-Type-Identity = 0x776966697573657230
        EAP-Message = 0x028f000e01776966697573657230
Received Access-Challenge packet from host 127.0.0.1 port 1812, id=144, length=80
        EAP-Message = 0x01900016041078d4e1e4d7fc47c56aa650b4db0dbde8
        Message-Authenticator = 0xd3d45a8d7f6a65328dec844a2924eba7
        State = 0x04bd5587042d51a7610fe43fe5a54be6
        EAP-Id = 144
        EAP-Code = Request
        EAP-Type-MD5-Challenge = 0x1078d4e1e4d7fc47c56aa650b4db0dbde8
Sending Access-Request packet to host 127.0.0.1 port 1812, id=145, length=95
        User-Name = "wifiuser0"
        User-Password = "PassWifi0"
        NAS-IP-Address = 192.168.1.11
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
        EAP-Code = Response
        EAP-Type-MD5-Challenge = 0x10219fcf7ff50e97105be6b5a07f1390c9
        EAP-Id = 144
        State = 0x04bd5587042d51a7610fe43fe5a54be6
        EAP-Message = 0x029000160410219fcf7ff50e97105be6b5a07f1390c9
Received Access-Accept packet from host 127.0.0.1 port 1812, id=145, length=55
        EAP-Message = 0x03900004
        Message-Authenticator = 0x35e5a6feeeb46928971ec3fa649ad721
        User-Name = "wifiuser0"
        EAP-Id = 144
        EAP-Code = Success

Configurazione del router fastweb

Apriamo con un browser la pagina di amministrazione all' indirizzo 192.168.1.254 ed entriamo con l'utente amministratore selezionando poi la sezione Rete Domestica.

Qui selezioniamo ciascuna delle reti WIFI da configurare:

Click su Configura poi nella sottosezione Protezione apportiamo le seguenti modifiche:

  • Deselezioniamo WPS Abilitato
  • Modalità di protezione: WPA + WPA2
  • IP Radius WPA: 192.168.1.11 ( L'indirizzo ip del server su cui gira il radius )
  • Chiave Radius WPA: secret-router ( Quella inserita nel file clients.conf )

Poi confemiamo le modifiche.

Configurazione WIFI sui client:

In questo esempio configuro l'accesso al wifi sul mio telefono con android:

  • Metodo EAP: PEAP
  • Identità: wifiuser0 ( uno degli utenti inseriti nel file users )
  • Password: PassWifi0

Fine

A questo punto è tutto configurato ed il telefono si collegherà al WIFI

Debug

Fermiamo il server:

service freeradius stop

Eseguiamo freeradius in debug:

freeradius -X

Attivando il wifi del telefono, radius mostrerà il log di connessione con le informazioni necessarie alla risoluzione di problemi. Evito di riportare il log per questioni di spazio perchè è particolarmente verboso.

Link

  • Documentazione freeradius
  • Ho preparato un' immagine docker del servizio radius che esporta nell' host le porte e la cartella /etc/freeradius, i file di configurazione sono da pulire ed editare alla bisogna:
  docker pull busnellistefano/radius:latest
  docker volume create radius
  docker run -d --rm \
             --name=radius \
             --publish 1812-1814:1812-1814/udp --publish 18120:18120/udp \
             --mount source=radius,destination=/etc/freeradius \
             busnellistefano/radius:latest
  git clone git@bitbucket.org:StefanoBusnelli/docker-radius.git
  cd docker-radius 
0

Commenti e note

Inserisci un commento

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.