Post on 29-Jan-2018
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
FreeRADIUSil protocollo e il daemonper autenticare sulla rete
Daniele Albrizio - albrizio@units.it
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Parleremo di RADIUS
● Cosa è.● Perché RADIUS.● Come funziona.● Sulla rete cosa succede● Gli Attributi● Estensioni recenti e CoA
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Parleremo di FreeRADIUS
● Caratteristiche del server● Esempi di configurazione avanzata● Tool di debug
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Cos'è RADIUS?
● Remote Authentication Dial In User Service (RADIUS)
● standard de-facto per l’autenticazione remota● è un protocollo ampiamente utilizzato negli
ambienti distribuiti.● è comunemente usato per dispositivi di rete
integrati come router, server modem, switch ecc.
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Dove si colloca
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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. L’amministrazione centralizzata degli utenti è un requisito operativo.
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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.
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Architettura e nomenclatura
Author Kgrr - Creative Commons Attribution-Share Alike 3.0 Unported
CLIENT SERVERPROXYsupplicant policy
enforcement pointpolicy
decision point
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
AAA
● Radius viene spesso appellato “AAA server”– Authorization
– Authentication
– Accounting
● Fa parte dell'AAI (authorization and authentication infrastructure)
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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.
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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"
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
– NAS-Identifier = "WDSC1"
– Huntgroup-Name = "WDS-AP-Routers"
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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?"
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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"
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Attributi e file users
# program Exec# Network admission control (better said repression)DEFAULT HuntgroupName == "Captive" ExecProgram = "/etc/adminscripts/nac/trigger.sh", FallThrough = Yes
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Esempio di failover proxying
home_server garreduroam1 { type = auth+acct ipaddr = 194.44.1.1 port = 1812 secret = 4523vjhtu67 nostrip}
home_server garreduroam2 { type = auth+acct ipaddr = 133.36.12.12 port = 1812 secret = fw34480125 nostrip}
# Failover Pool Eduroamhome_server_pool garreduroam { type = failover home_server = garreduroam1 home_server = garreduroam2}
realm DEFAULT { pool = garreduroam nostrip}
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Instanziare dinamicamente i moduli con Unlang
# EAP certificate selection depending on SSID# CiscoAVPair = "ssid=eduroamunits" if ("%{request:CiscoAVPair}" == "ssid=eduroam") { eap_TCS { ok = return } }# 3Com CalledStationId = "ec44768187f0:eduroamunits" elsif ("%{request:CalledStationId}" =~ "/eduroam$/" { eap_TCS { ok = return } } else { eap_rapidssl { ok = return } }
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Gestire account a tempo
# Set the CurrentTime value for further comparison# It is important that this is set before the module that does the effective comparisonauthorize { update request { MyRequestDate = "%D" }}
# MyRequestDate in a dictionary file.# Request date attribute filled with %D value (YYYYMMDD)# Used to do date based authorizationATTRIBUTE MyRequestDate 3002 integer
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@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
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Links e Riferimenti
● Wikipedia in inglese su Radius e EAP● FreeRADIUS http://www.freeradius.org/
Università degli Studi di TriesteMercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizioalbrizio@units.it
Licenza d'usodi 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.