ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

44
Zeroshell come Cap.ve Portal per l'accesso ad IDEM Fulvio Ricciardi INFN Lecce IDEM DAY Bologna 10 Novembre 2011

Transcript of ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Page 1: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Zeroshell  come  Cap.ve  Portal  per  l'accesso  ad  IDEM    

Fulvio  Ricciardi  INFN  Lecce  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  

Page 2: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Gli  argomen@  traBa@  

•  Proteggere  la  rete  tramite  Cap@ve  Portal  – Vantaggi  e  svantaggi  – L’accesso  federato  –  I  nemici  del  Cap@ve  Portal  

•  Cosa  è  Zeroshell?  •  Il  Cap@ve  Portal  di  Zeroshell  – Configurazione  e  funzionalità  – Configurazione  come  Shibboleth  SP  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   2  

Page 3: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Definizione  di  Cap@ve  Portal  

•  E’  un  gateway  di  livello  2  o  3  che  unisce  due    segmen@  di  rete  –  I  client  che  si  associano  al  primo  segmento  oBengono  subito  conneVvità  IP,  ma  non  possono  comunicare  con  il  secondo  segmento  se  non  si  auten@cano  

– Le  richieste  hBp/hBps  dei  client  non  auten@ca@  vengono  redireBe  verso  un  portale  di  auten@cazione  in  cui  l’utente  deve  dimostrare  la  propria  iden@tà  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   3  

Page 4: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   4  

Cap@ve  Portal  Standalone  

Page 5: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   5  

Cap@ve  Portal  Federato  tramite  Proxy  Radius  (bassa  sicurezza)  

Page 6: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   6  

Cap@ve  Portal  Federato  SAML  v2  (Auten@cazione  End-­‐to-­‐End)  

Page 7: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

I  nemici  del  Cap@ve  Portal  

•  MAC  e  IP  spoofing  nel  tenta@vo  di  oBenere  l’accesso  fraudolento  alla  rete  al  posto  di  un  utente  auten@cato  

•  DoS  causa@  da  client  non  ancora  auten@ca@  che  u@lizzano  le  porte  80  e  443  in  maniera  impropria  per  superare  il  firewall  (es.  Skype  e  altri  P2P)  

•  DoS  causa@  da  client  non  ancora  auten@ca@  che  tentano  gli  update  del  Sistema  Opera@vo  o  delle  signature  dell’an@virus  via  HTTP  – Nel  caso  di  federazione  SAML  il  DoS  diventa  un  DDoS  verso  il  WAYF  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   7  

Page 8: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Finestra  Network  Access  e  il  segreto  condiviso  

•  Per  rendere  inefficace  il  MAC  e  IP  spoofing  è  necessario  che  Client  e  Cap@ve  Portal  condividano  un  segreto:  Authen'cator  

•  L’Authen@cator  ha  una  durata  limitata  (1  minuto  o  più)  •  La  finestra  Popup  si  preoccupa  di  rinnovare  l’Authen@cator  prima  che  

scada  

•  Se  l’Authen@cator  scade  il  Cap@ve  Portal  disconneBe  l’utente  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   8  

Page 9: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Come  è  custodito  e  rinnovato  l’Authen@cator  

•  Il  campo  Authen'cator  contenuto  nel  codice  HTML  della  finestra  Popup  è  il  segreto  condiviso  tra  il  Client  e  Cap@ve  Portal:  

                <input type=hidden name=Authenticator value="U2FsdGVkX1HYuOsP4UNR1R8gPP1dtfJs8dULujxPrLw86Ok/9KW1jjK1oIjs2sX e6vxU3sLujFos/kOaJf2mQ==">

•  Il  Cap@ve  Portal  genera  e  successivamente  rinnova    l’Authen@cator  con  il  seguente  codice  bash:  

                  echo -e "$USER@$REALM\n$IP\n$TIMESTAMP\n$TYPE" | openssl aes-256-cbc -e -a -k "$SECRET”

•  La  finestra  Popup  manda  periodicamente  l’Authen6cator  al  Cap6ve  Portal  per  il  rinnovo.  L’Authen6cator  rinnovato  non  è  mai  uguale  al  precedente  poiché  il  TIMESTAMP  cambia.  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   9  

Page 10: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Limitare  problemi  di  Denial  of  Service  

•  Per  le  connessioni  sulle  porte  80  e  443  TCP  che  non  contengano  richieste  HTTP/HTTPS  l’unica  limitazione  possibile  è  a  livello  di  Kernel  (Nelilter  in  Linux):  

Chain CapPortHTTPS (1 references) target prot opt source destination ACCEPT all -- 192.168.0.101 0.0.0.0/0 MAC 12:2D:31:A0:66:B1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 50/min burst 10 mode srcip redir ports 12081 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 redir ports 12081

•  Per  le  connessioni  sulle  porte  80  e  443  TCP  che  contengano  richieste  HTTP/HTTPS  come  le  richieste  di  update  del  Sistema  Opera@vo  e  dell’An@virus  si  può  agire  a  livello  applica@vo  nel  web  server:  

RewriteCond %{REQUEST_URI} !/msdownload/update RewriteCond %{REQUEST_URI} !/windowsupdate/ RewriteCond %{REQUEST_URI} !/ubuntu/dists/ RewriteCond %{REQUEST_URI} !/daily-.*.cdiff RewriteRule ^.*$ https://%{SERVER_ADDR}:12081/cgi-bin/zscp?Section=CPAuth&Action=Show&ZSCPRedirect=%{SERVER_NAME}:::https://%{SERVER_NAME}%{REQUEST_URI}?${filter:%{QUERY_STRING}} [L]

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   10  

Page 11: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Confronto  tra  Cap@ve  Portal  con  auten@cazione  SAML  e  802.1x  

•  Il  Cap@ve  Portal  non  ha  bisogno  di  nessuna  configurazione  lato  client  

•  I  supplicant  802.1x  sono  complica@  da  configurare  e  inadaV  per  l’utente  occasionale  

•  In  ambien@  federa@  mediante  802.1x  l’auten@cazione  più  u@lizzata  è  EAP-­‐TTLS  con  PAP,  ma  il  supplicant  na@vo  di  Windows  non  supporta  EAP-­‐TTLS  

•  802.1x  offre  supporto  per  lo  scambio  di  chiavi  di  cifratura  che  possono  essere  usate  per  criptare  il  Layer  2  come  nel  caso  di  WPA/WPA2  Enterprise    

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   11  

Page 12: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cosa  è  Zeroshell?  

•  E’  una  distribuzione  Linux  che  fornisce  i  principali  servizi  di  rete  

•  Configurabile  via  web  –  Il  nome  Zero-­‐Shell  (Senza-­‐Shell)  significa  che  la  configurazione  dovrebbe  avvenire  esclusivamente  via  Web.  L’accesso  alla  shell  è  comunque  possibile  

•  I  si@  web  sono:  –  hBp://www.zeroshell.net/                          (Italiano)  –  hBp://www.zeroshell.net/eng/          (Inglese)  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   12  

Page 13: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

I  principali  servizi  offer@  da  Zeroshell  

•  Rou@ng  e  Bridging  con  supporto  delle  VLAN  802.1q  •  Firewall  con  supporto  per  i  filtri  Layer  7  

•  Traffic  Shaping  e  QoS  assegnando  banda  massima,  banda  garan@ta  e  priorità  in  base  alla  @pologia  di  traffico  

•  Load  Balancing  e  Failover  dei  collegamen@  WAN  

•  VPN  site-­‐to-­‐site  con  OpenVPN  (TAP)  

•  VPN  gateway  per  accessi  Host-­‐to-­‐LAN  (OpenVPN  e  IPSec/L2TP)  •  Cap@ve  Portal  con  backend  di  auten@cazione  Kerberos  5,  RADIUS,  

cer@fica@  X.509  e  SAML  v2  mediante  Shibboleth  •  Proxy  HTTP  trasparente  con  scansione  an@virus  delle  pagine  web  

•  Server  LDAP,  Kerberos  5,  RADIUS  con  accoun@ng,  DNS  e  DHCP  

•  Access  Point  Wi-­‐Fi  con  supporto  per  Mul@ple  SSID  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   13  

Page 14: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Scelta  del  download  più  appropriato  

hBp://www.zeroshell.net/download/  

•  ZeroShell-­‐1.0.beta16.iso  (Live  CD)  

•  ZeroShell-­‐1.0.beta16-­‐CompactFlash-­‐IDE-­‐USB-­‐SATA-­‐1GB.img.gz  (immagine  generica  da  installare  su  HD  o  Flash  USB)  –  gunzip  –c  ZeroShell-­‐1.0.beta16-­‐CompactFlash-­‐IDE-­‐USB-­‐

SATA-­‐1GB.img.gz  >  /dev/sdx  –  Physdiskwrite  da  Windows  

•  ZeroShell-­‐1.0.beta16-­‐ALIX-­‐CompactFlash-­‐1GB.img.gz  (Immagine  per  disposi@vi  embedded  come  Alix  o  Soekris  che  u@lizzano  la  porta  seriale)  

•  ZeroShell-­‐1.0.beta16-­‐VMWARE.zip  (Macchina  Virtuale  VMWare)  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   14  

Page 15: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Read-­‐Only  e  No-­‐Devel  per  una  maggiore  sicurezza  

•  La  par@zione  contenente  Zeroshell  è  sempre  una  ISO9660  

•  Vengono  rimossi  gli  header  delle  librerie  e  i  tool  di  sviluppo  

•  Esistono  distribuzioni  non  ufficiali  in  Read-­‐Write  e  con  i  compilatori  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   15  

Par@zione  1  

Par@zione  2  

Par@zione  3  

/boot  (Kernel  +  initrd)  

Zeroshell  Live  CD  

Profili    di    

Configurazione  

Installazione  su  Hard  Disk  o  Flash  USB  

Page 16: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Ges@one  dei  Profili  di  Configurazione  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   16  

Page 17: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Web  Login  Page  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   17  

Page 18: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cap@ve  Portal  Gateway  Configura@on  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   18  

Page 19: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Free  Authorized  Clients  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   19  

Page 20: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Free  Authorized  Services  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   20  

Page 21: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Network  Access  Popup  for  Mobile  Devices  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   21  

Page 22: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Mul@  Network  Interface  Configura@on  (Rou@ng/Bridging)  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   22  

Page 23: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cap@ve  Portal  Authen@ca@on  Configura@on  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   23  

Page 24: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cap@ve  Portal  Template  Manager  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   24  

Page 25: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cap@ve  Portal  Image  Manager  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   25  

Page 26: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Configure  Authorized  Kerberos5/RADIUS  Domains  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   26  

Page 27: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Proxy  Radius  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   27  

Page 28: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

X.509  Cer@ficate  Authen@ca@on  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   28  

Page 29: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Shibboleth  Configura@on  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   29  

Page 30: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Shibboleth  Upgrading  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   30  

Page 31: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Configuring  Shibboleth  by  File  Editor  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   31  

Page 32: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Iden@ty  Provider  e  WAYF  Auto-­‐Discovery  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   32  

Page 33: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Auto-­‐Discovery:  nessun  man  in  the  middle  

diff  -­‐r  -­‐u  shibboleth-­‐2.4.3/shibsp/handler/impl/[email protected]  shibboleth-­‐2.4.3-­‐zs/shibsp/handler/impl/[email protected]  -­‐-­‐-­‐  shibboleth-­‐2.4.3/shibsp/handler/impl/[email protected]  2011-­‐06-­‐28  02:39:27.000000000  +0200  +++  shibboleth-­‐2.4.3-­‐zs/shibsp/handler/impl/[email protected]  2011-­‐10-­‐16  11:26:08.000000000  +0200  @@  -­‐282,6  +282,16  @@                    req  =  req  +  "&returnIDParam="  +  m_returnParam;            if  (isPassive)                    req  +=  "&isPassive=true";  +        //  +        //  Patch  by  Fulvio.Ricciardi(at)zeroshell.net  for  IdP  AutoDiscovery  in  Zeroshell  Cap@ve  Portal  +        //  +        char  cmd[150];  +        strcpy(cmd,"/root/kerbynet.cgi/scripts/idpDiscovery  SAMLDS  ");  +        strncat(cmd,req.c_str(),100);  +        system(cmd);  +        //  +        //  End  of  the  patch  +        //  

         return  make_pair(true,  request.sendRedirect(req.c_str()));    }  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   33  

Page 34: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Checking  the  Shibboleth  Configura@on  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   34  

Page 35: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Perl  Authoriza@on  Filters  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   35  

Page 36: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Try  Authen@ca@on  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   36  

Page 37: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cron  Job    

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   37  

Page 38: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Log  Viewer  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   38  

Page 39: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Radius  Accoun@ng  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   39  

Page 40: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Radius  Accoun@ng  Details  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   40  

Page 41: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Connec@on  Tracking  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   41  

Page 42: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Cap@ve  Portal  Sta@s@cs  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   42  

Page 43: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Traffic  Shaping  e  QoS  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   43  

Page 44: ZeroshellcomeCapvePortal( per(l'accesso(ad(IDEM

Classificazione  del  traffico  in  classi  di  QoS  

IDEM  DAY  -­‐  Bologna  10  Novembre  2011  -­‐  Zeroshell  come  Cap@ve  Portal  per  l'accesso  ad  IDEM   44