1. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
FreeRADIUS
il protocollo e il daemon
per autenticare sulla rete
Daniele Albrizio - albrizio@units.it
2. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Parleremo di RADIUS
Cosa 竪.
Perch辿 RADIUS.
Come funziona.
Sulla rete cosa succede
Gli Attributi
Estensioni recenti e CoA
3. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Parleremo di FreeRADIUS
Caratteristiche del server
Esempi di configurazione avanzata
Tool di debug
4. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Cos'竪 RADIUS?
Remote Authentication Dial In User Service
(RADIUS)
standard de-facto per lautenticazione remota
竪 un protocollo ampiamente utilizzato negli
ambienti distribuiti.
竪 comunemente usato per dispositivi di rete
integrati come router, server modem, switch
ecc.
5. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Dove si colloca
6. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Perch辿 RADIUS?
I sistemi integrati sono generalmente limitati
nel numero di utenti autenticabili
(memoria/cpu)
ISP hanno 10k...10M utenti, aggiunti e
cancellati di continuo, le informazioni di
autenticazione cambiano costantemente.
Lamministrazione centralizzata degli utenti 竪
un requisito operativo.
7. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Perch辿 RADIUS?
RADIUS fornisce alcuni livelli di protezione
contro attacchi attivi e di sniffing. Altri
protocolli meno.
Il supporto RADIUS 竪 quasi onnipresente sui
dispositivi di accesso e non solo.
8. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Architettura e nomenclatura
Author Kgrr - Creative Commons Attribution-Share Alike 3.0 Unported
CLIENT SERVERPROXY
supplicant policy
enforcement point
policy
decision point
9. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
AAA
Radius viene spesso appellato AAA server
Authorization
Authentication
Accounting
Fa parte dell'AAI (authorization and
authentication infrastructure)
10. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
RADIUS sulla rete
Pacchetti UDP autenticati tramite shared
secret (port 1812 autz+auth, 1813
accounting)
Richieste numerate
Password hashed (rivelabile da un rogue
client modificato)
EAP: estensione a plug-in che permette il
tunnelling criptato dell'autenticazione,
l'autenticazione a doppia chiave, one-time-
password (OTP), SIM, PEAP, LEAP, ecc.
11. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Autenticazione RADIUS
Pacchetti di autenticazione
1 = Access-Request
2 = Access-Accept
3 = Access-Reject
11 = Access-Challenge
Access-Accept porta anche attributi di
configurazione
Access-Reject pu嘆 portare anche un
messaggio di testo, ma nessun altro attributo
Access-Challenge 竪 usato principalmente
da CHAP e EAP
12. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Access-Request
Sun Jun 5 16:59:26 2011
Packet-Type = Access-Request
User-Name = "ginopi@ds.units.it"
User-Password = "lamiapassword"
Service-Type = Login-User
NAS-IP-Address = 111.103.38.15
Huntgroup-Name = "VPN"
Realm = "DEFAULT"
13. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Access-Request EAP (no password)
Sun Jun 5 16:59:26 2011
Packet-Type = Access-Request
User-Name = "s00000@ds.units.it"
Framed-MTU = 1400
Called-Station-Id = "0014.23e5.2c23"
Calling-Station-Id = "40a6.3fff4.3ef5"
Cisco-AVPair = "ssid=eduroam"
Service-Type = Login-User
Message-Authenticator =
0x418ce9da259c587451ad707c7949c89f
EAP-Message =
0x02010017017330303030304064732e756e6974732e6974
NAS-Port-Type = Wireless-802.11
NAS-Port = 450406
NAS-Port-Id = "450406"
NAS-IP-Address = 172.140.32.20
14. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Access-Challenge
Una sessione EAP 竪 composta da
Un pacchetto Access-Request da client a server
Seguito da un sacco di (ad es. 10-30) pacchetti
Access-Challange alternati da e verso il server
Seguito da un pacchetto Access-Accept o
Access-Reject da server a client
15. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Access-Reject
Sat Jun 4 16:51:51 2011
Reply from radius proxy for user
s4322342342342@dsunits.it on NAS
172.11.55.14:15095 3Com 00-22-57-F4-5C-
11:eduroam-erdisu cli 00-26-5E-1F-72-61
Packet-Type = Access-Reject
Proxy-State = 0x313332
Reply-Message = "Realm non valido! Appartiene
ad Eduroam?"
16. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Access-Accept
Sat Jun 4 16:51:51 2011
Packet-Type = Access-Accept
Exec-Program = "/nac/trigger.sh"
Idle-Timeout = 1800
Session-Timeout = 7200
Reply-Message = "Durata massima sessione 2
ore. Logout per inattività dopo 30 minuti"
17. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Attributi
Possono essere di 3 tipi:
Request attributes
Reply attributes
Internal attributes (freeRADIUS only)
Sono definiti nei dizionari tramite tipo e
numero identificativo
In FreeRADIUS ne viene fatto un largo uso e
quindi vanno filtrati in uscita (reply) con
l'apposito modulo attr-filter
18. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Attributi e file users
#programExec
#Networkadmissioncontrol(bettersaid
repression)
DEFAULTHuntgroup足Name=="Captive"
Exec足Program=
"/etc/adminscripts/nac/trigger.sh",
Fall足Through=Yes
19. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Users file
gianni Huntgroup-Name =~ "VPN", Cleartext-
Password = "fwerfwe"
Framed-IP-Address := 172.30.225.65,
Framed-IP-Netmask := 255.255.255.255,
Service-Type := Framed-User,
Framed-Protocol := PPP,
Fall-Through = No
20. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
CoA
Change of Authorization (rfc5716)
Permette la rinegoziazione push (dal radius
server verso il client) dei parametri di
connessione utente.
Di solito 竪 prevista anche la disconnessione
dell'utente
Pochi apparati lo supportano, ma
rappresenta un elemento di scelta nell'IT
21. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
FreeRADIUS: caratteristiche
Il pi湛 usato (in termini di autenticazioni)
Modulare (anche troppo)
PAP, CHAP, MS-CHAP, MS-CHAPv2, SIP Digest
EAP: AKA, FAST, GPSK, IKEv2 (experimental),
Cisco LEAP, PAX, PSK, SAKE, GTC, SIM, TLS,
MD5-Challenge, MSCHAPv2, TNC
EAP-PEAPv0 e 1: MSCHAPv2, GPSK, GTC,
MD5-Challenge, PAX, PSK, SAKE
EAP-PEAPv0-TLS
EAP-TTLS: PAP, CHAP, MS-CHAP, MS-CHAPv2,
GPSK, GTC, MD5-Challenge, PAX, PSK, SAKE,
TLS
22. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
FreeRADIUS: caratteristiche
Policy di autorizzazione in fase pre-
autenticazione e post-autenticazione.
Policy in file di testo, db, perl java python
scripts
Filtri degli attributi, riscrittura degli stessi,
attributi interni e personalizzabili.
Esempi funzionanti per molti backend e una
collezione completa di dizionari per i client.
Backend su db, testo, ldap
Accounting su db e testo
23. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
FreeRADIUS: caratteristiche
Failover e load balancing configurabili per le
funzionalit di:
Proxying
Backend di autenticazione, autorizzazione e
accounting
Configurazione
Configurazione annidabile tramite l'uso di
server freeRADIUS virtuali
Unlang conditional language nell
configurazione, genera configurazioni
dinamiche
24. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Esempio di failover proxying
home_servergarreduroam1{
type=auth+acct
ipaddr=194.44.1.1
port=1812
secret=4523vjhtu67
nostrip
}
home_servergarreduroam2{
type=auth+acct
ipaddr=133.36.12.12
port=1812
secret=fw34480125
nostrip
}
#FailoverPoolEduroam
home_server_poolgarreduroam{
type=fail足over
home_server=garreduroam1
home_server=garreduroam2
}
realmDEFAULT{
pool=garreduroam
nostrip
}
25. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Instanziare dinamicamente i moduli
con Unlang
#EAPcertificateselectiondependingonSSID
#Cisco足AVPair="ssid=eduroam足units"
if("%{request:Cisco足AVPair}"=="ssid=eduroam"){
eap_TCS{
ok=return
}
}
#3ComCalled足Station足Id="ec足44足76足81足87足f0:eduroam足units"
elsif("%{request:Called足Station足Id}"=~"/eduroam$/"{
eap_TCS{
ok=return
}
}
else{
eap_rapidssl{
ok=return
}
}
26. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Gestire account a tempo
#SettheCurrent足Timevalueforfurthercomparison
#Itisimportantthatthisissetbeforethemodule
thatdoestheeffectivecomparison
authorize{
updaterequest{
My足Request足Date="%D"
}
}
#My足Request足Dateinadictionaryfile.
#Requestdateattributefilledwith%Dvalue(YYYYMMDD)
#Usedtododatebasedauthorization
ATTRIBUTEMy足Request足Date3002integer
27. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Tool di debug e pianificazione
eapol_test
wpasupplicant lato client
radmin
radclient
radclient -x -f radiuspacjetfile SERVER:1812 auth
secret
radsniff
radsniff -d /usr/local/share/freeradius -i eth0 -x
wireshark
tcpdump
mindmap
28. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Links e Riferimenti
Wikipedia in inglese su Radius e EAP
FreeRADIUS http://www.freeradius.org/
29. Universit degli Studi di Trieste
Mercoled狸 8 giugno 2011
copyleft 2011 Daniele Albrizio
albrizio@units.it
Licenza d'uso
di questo documento
Quest'opera 竪 stata rilasciata sotto la licenza Creative Commons
Attribuzione-Condividi allo stesso modo 2.5.
Per leggere una copia della licenza visita il sito web
http://creativecommons.org/licenses/publicdomain/ o spedisci una
lettera a Creative Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.