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
- Eventualmente il progetto su Git:
git clone git@bitbucket.org:StefanoBusnelli/docker-radius.git cd docker-radius

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)