SlideShare a Scribd company logo
1 of 29
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
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
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
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 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 Trieste
Mercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizio
albrizio@units.it
Dove si colloca
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.
L’amministrazione centralizzata degli utenti è
un requisito operativo.
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.
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
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)
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.
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
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"
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
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
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?"
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"
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
Università degli Studi di Trieste
Mercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizio
albrizio@units.it
Attributi e file users
# program Exec
# Network admission control (better said 
repression)
DEFAULT Huntgroup­Name == "Captive"
        Exec­Program = 
"/etc/adminscripts/nac/trigger.sh",
        Fall­Through = Yes
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
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
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
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
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
Università degli Studi di Trieste
Mercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizio
albrizio@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 Eduroam
home_server_pool garreduroam {
    type = fail­over
    home_server = garreduroam1
    home_server = garreduroam2
} 
realm DEFAULT {
    pool = garreduroam
    nostrip
}
Università degli Studi di Trieste
Mercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizio
albrizio@units.it
Instanziare dinamicamente i moduli
con Unlang
# EAP certificate selection depending on SSID
# Cisco­AVPair = "ssid=eduroam­units"
  if ("%{request:Cisco­AVPair}" == "ssid=eduroam") {
    eap_TCS {
      ok = return
    }
  }
# 3Com Called­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
    } 
  }
Università degli Studi di Trieste
Mercoledì 8 giugno 2011
copyleft 2011 – Daniele Albrizio
albrizio@units.it
Gestire account a tempo
# Set the Current­Time value for further comparison
# It is important that this is set before the module 
that does the effective comparison
authorize {
  update request {
     My­Request­Date = "%D"
  }
}
# My­Request­Date in a dictionary file.
# Request date attribute filled with %D value (YYYYMMDD)
# Used to do date based authorization
ATTRIBUTE      My­Request­Date        3002    integer
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
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/
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.

More Related Content

Similar to free radius 201106

Confio Ignite - webinar by Matteo Durighetto
Confio Ignite - webinar by Matteo DurighettoConfio Ignite - webinar by Matteo Durighetto
Confio Ignite - webinar by Matteo Durighetto
Miriade Spa
 
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVOROSVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
Zanatta Davide
 

Similar to free radius 201106 (20)

Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
Aten - Gestire i server: sempre e ovunque
Aten - Gestire i server: sempre e ovunqueAten - Gestire i server: sempre e ovunque
Aten - Gestire i server: sempre e ovunque
 
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
 
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Network
 
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
 
Sicurezza e resilienza di Architetture a Containers
Sicurezza e resilienza di Architetture a ContainersSicurezza e resilienza di Architetture a Containers
Sicurezza e resilienza di Architetture a Containers
 
Network essentials
Network essentialsNetwork essentials
Network essentials
 
Confio Ignite - webinar by Matteo Durighetto
Confio Ignite - webinar by Matteo DurighettoConfio Ignite - webinar by Matteo Durighetto
Confio Ignite - webinar by Matteo Durighetto
 
Progetto Netkit
Progetto NetkitProgetto Netkit
Progetto Netkit
 
Brand Rex Seminar 2009 Installation It
Brand Rex Seminar 2009 Installation ItBrand Rex Seminar 2009 Installation It
Brand Rex Seminar 2009 Installation It
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business Server
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Presentazione Suite Nethesis
Presentazione Suite NethesisPresentazione Suite Nethesis
Presentazione Suite Nethesis
 
introduzione_a_pfSense
introduzione_a_pfSenseintroduzione_a_pfSense
introduzione_a_pfSense
 
Sic
SicSic
Sic
 
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVOROSVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
 
ISO-OSI
ISO-OSIISO-OSI
ISO-OSI
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device Drivers
 
ATEN - Gestire i server: sempre e ovunque
ATEN - Gestire i server: sempre e ovunqueATEN - Gestire i server: sempre e ovunque
ATEN - Gestire i server: sempre e ovunque
 
Gestione Reti
Gestione RetiGestione Reti
Gestione Reti
 

More from Daniele Albrizio

Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta
Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta
Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta
Daniele Albrizio
 

More from Daniele Albrizio (10)

Va sui miei siti web
Va sui miei siti webVa sui miei siti web
Va sui miei siti web
 
Dns e bind
Dns e bindDns e bind
Dns e bind
 
Rete di casa e raspberry pi - Home network and Raspberry Pi
Rete di casa e raspberry pi - Home network and Raspberry Pi Rete di casa e raspberry pi - Home network and Raspberry Pi
Rete di casa e raspberry pi - Home network and Raspberry Pi
 
Lightning saml
Lightning samlLightning saml
Lightning saml
 
Un tesoro nascosto nella linea di comando
Un tesoro nascosto nella linea di comandoUn tesoro nascosto nella linea di comando
Un tesoro nascosto nella linea di comando
 
E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?E va bene, passo a Linux. Da dove inizio?
E va bene, passo a Linux. Da dove inizio?
 
Metasploit3 - David Calligaris
Metasploit3 - David CalligarisMetasploit3 - David Calligaris
Metasploit3 - David Calligaris
 
Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta
Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta
Le esperienze Insiel nell'Open Source - Margherita Forcolin, Sergio Barletta
 
Un approccio scalabile e robusto per il mail filtering. - Simone Marzona
Un approccio scalabile e robusto per il mail filtering. -  Simone MarzonaUn approccio scalabile e robusto per il mail filtering. -  Simone Marzona
Un approccio scalabile e robusto per il mail filtering. - Simone Marzona
 
La rivincita di Linux: da MS Windows TS ai client Linux embedded e xrdp. - Ro...
La rivincita di Linux: da MS Windows TS ai client Linux embedded e xrdp. - Ro...La rivincita di Linux: da MS Windows TS ai client Linux embedded e xrdp. - Ro...
La rivincita di Linux: da MS Windows TS ai client Linux embedded e xrdp. - Ro...
 

free radius 201106

  • 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 l’autenticazione 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. L’amministrazione 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 # program Exec # Network admission control (better said  repression) DEFAULT Huntgroup­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_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 Eduroam home_server_pool garreduroam {     type = fail­over     home_server = garreduroam1     home_server = garreduroam2 }  realm DEFAULT {     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 # EAP certificate selection depending on SSID # Cisco­AVPair = "ssid=eduroam­units"   if ("%{request:Cisco­AVPair}" == "ssid=eduroam") {     eap_TCS {       ok = return     }   } # 3Com Called­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 # Set the Current­Time value for further comparison # It is important that this is set before the module  that does the effective comparison authorize {   update request {      My­Request­Date = "%D"   } } # My­Request­Date in a dictionary file. # Request date attribute filled with %D value (YYYYMMDD) # Used to do date based authorization ATTRIBUTE      My­Request­Date        3002    integer
  • 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.