manuale - Zerotruth
Transcript
manuale - Zerotruth
Z ERO T RUTH I NTERFACCIA PER IL CAPTIVE P ORTAL DI Z ERO S HELL VERSIONE 3.0 Nello Dalla Costa 19 maggio 2015 http://www.zerotruth.net Spesso gli amici mi chiedono come faccio a far scuola. Sbagliano la domanda, non dovrebbero preoccuparsi di come bisogna fare scuola, ma solo di come bisogna essere per poter fare scuola. — Lorenzo Milani La scuola è divenuta la religione universale di un proletariato modernizzato e fa vuote promesse di salvezza ai poveri dell’era tecnologica. — Ivan Illich . Nello Dalla Costa ZeroTruth Interfaccia per il Captive Portal di ZeroShell c 2012-2015 N OTE L EGALI L’autore dei contenuti di questo manuale, ad esclusione del capitolo 2, è Nello Dalla Costa. I contenuti hanno valore solo didattico e vengono forniti gratuitamente. L’autore non può essere ritenuto responsabile per qualsiasi danno o perdita di dati causato da errori e inesattezze di qualsiasi tipo presenti. Zerotruth è distribuito gratuitamente ed è fornito cosı̀ come è senza nessuna garanzia di corretto funzionamento. In nessun caso l’autore può essere ritenuto responsabile per qualsiasi danno, perdita di dati o mancato guadagno causato dal suo utilizzo. I nomi commerciali, i loghi e i marchi registrati menzionati nel manuale appartengono ai rispettivi proprietari. I contenuti di questo manuale non possono essere copiati o riprodotti neanche in parte senza l’autorizzazione dell’autore. È invece cosa gradita il riferimento tramite hyperlink da altri siti utilizzando l’indirizzo “http://www.zerotruth.net/controldl.php?file=ZEROTRUTH.pdf ”. Indice 1 Z EROTRUTH E Z EROSHELL 1 2 CAPTIVE P OR TAL 2.1 H OTSPOT ROUTER PER L’ ACCESSO ALLA RETE . . . . . . . . . . . . . . . . . . . 2.2 I NEMICI DEL CAPTIVE P ORTAL . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 FALSIFICAZIONE (S POOFING ) DI IP E MAC ADDRESS . . . . . . . . . . . . . . . 2.4 D ENIAL OF S ERVICE (D O S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 R OUTER O B RIDGE ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 AUTENTICAZIONE DEGLI UTENTI . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 RADIUS (PAP, EAP-TTLS E PEAP) . . . . . . . . . . . . . . . . . . . . . . . . 2.8 C ERTIFICATI D IGITALI X.509 (S MART CARD ) . . . . . . . . . . . . . . . . . . . 2.9 S HIBBOLETH (I D P SAML 2.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 C ONTABILIZZAZIONE DEL TEMPO, DEL TRAFFICO E DEL COSTO DI CONNESSIONE 2.11 L IMITI DI ACCESSO ALLA RETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12 R EGISTRAZIONE DEGLI ACCESSI E DELLE CONNESSIONI TCP/UDP NEI LOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 4 5 6 6 7 8 9 9 10 11 3 I NSTALLAZIONE E RIMOZIONE DI Z EROTRUTH 3.1 P REPARAZIONE DI Z EROSHELL . . . . . . . . 3.2 I NSTALLAZIONE DI Z EROTRUTH . . . . . . . 3.3 R IMOZIONE DI Z EROTRUTH . . . . . . . . . 3.4 U PGRADE DI Z EROTRUTH . . . . . . . . . . 3.5 ACCESSO ALLA GUI DI AMMINISTRAZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 14 14 14 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 17 18 19 20 21 21 22 24 24 25 25 26 29 31 33 34 34 35 36 36 37 41 42 43 43 44 45 46 4 C ONFIGURAZIONE 4.1 Z EROTRUTH . . . . . . . . . . . . . . 4.2 A DMIN . . . . . . . . . . . . . . . . . 4.3 U SERS ( UTENTI GESTORI ) . . . . . . . 4.4 I MMAGINI . . . . . . . . . . . . . . . 4.5 A STERISK . . . . . . . . . . . . . . . . 4.6 LOG . . . . . . . . . . . . . . . . . . 4.7 C ONTROLLO LDAP . . . . . . . . . . 4.8 K EYPAD . . . . . . . . . . . . . . . . 4.9 VSBS . . . . . . . . . . . . . . . . . 4.10 E XPORT . . . . . . . . . . . . . . . . 4.11 F ONT . . . . . . . . . . . . . . . . . . 4.12 T EST . . . . . . . . . . . . . . . . . . 4.13 CAPTIVE P ORTAL . . . . . . . . . . . 4.14 AUTO R EGISTRAZIONE . . . . . . . . . 4.14.1 R EGISTRAZIONE CON A STERISK 4.14.2 R EGISTRAZIONE CON SMS . . 4.14.3 R EGISTRAZIONE CON T ICKET . 4.15 AVVISI . . . . . . . . . . . . . . . . . 4.16 B IGLIETTO . . . . . . . . . . . . . . . 4.17 PAY PAL . . . . . . . . . . . . . . . . 4.17.1 C ONFIGURAZIONE Z EROTRUTH 4.17.2 C ONFIGURAZIONE PAYPAL . . 4.18 PAGAMENTI . . . . . . . . . . . . . . 4.19 L IBERI / BLOCCATI . . . . . . . . . . . 4.20 WALLED G ARDEN . . . . . . . . . . . 4.20.1 WALLED G ARDEN I NTERNO . 4.20.2 WALLED G ARDEN R EMOTO . 4.21 P OPUP . . . . . . . . . . . . . . . . . 4.22 I MMAGINE L OGIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.23 FACEBOOK L IKE . . . . . . . . . 4.24 P ROXY . . . . . . . . . . . . . . 4.24.1 S QUID . . . . . . . . . . 4.24.2 DANSGUARDIAN . . . . 4.24.3 H AVP +C LAMAV . . . . . 4.25 S HAPER . . . . . . . . . . . . . 4.26 B LOCKER . . . . . . . . . . . . 4.26.1 IP B LOCKER . . . . . . . 4.26.2 AD B LOCKER . . . . . . 4.27 E MAIL . . . . . . . . . . . . . . 4.28 SMS . . . . . . . . . . . . . . . 4.28.1 MY SMS SCRIPT . . . . . 4.28.2 G AMMU . . . . . . . . . 4.29 M ULTI CP . . . . . . . . . . . . 4.30 B ACKUP . . . . . . . . . . . . . 4.30.1 B ACKUP CON EMAIL . . 4.30.2 B ACKUP CON FTP . . . 4.30.3 B ACKUP CON D ROP B OX 4.30.4 B ACKUP CON SCP . . . 4.30.5 R IPRISTINO B ACKUP . . . 4.31 C ONTROLLO CAPACIT À DISCO . 4.32 G RAFICI . . . . . . . . . . . . . 4.33 AGGIORNAMENTI . . . . . . . . 4.34 U PGRADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 G ESTIONE U TENTI 5.1 AGGIUNGERE UTENTI . . . . . . . . . . . . . . . . . . . . . 5.1.1 AGGIUNGERE UN UTENTE . . . . . . . . . . . . . . . 5.1.2 AGGIUNGERE DIVERSI UTENTI . . . . . . . . . . . . . 5.1.3 AGGIUNGERE UTENTI DA FILE . . . . . . . . . . . . . 5.1.4 AGGIUNGERE UTENTI VINCOLATI AL BIGLIETTO . . . 5.2 L ISTA UTENTI . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 TABELLA STANDARD . . . . . . . . . . . . . . . . . . 5.2.2 L ISTA UTENTI PER AUTOREGISTRAZIONE DA BIGLIETTO 5.2.3 R ICERCA UTENTI . . . . . . . . . . . . . . . . . . . . 5.2.4 TABELLA VELOCE . . . . . . . . . . . . . . . . . . . 6 P ROFILI 6.1 TABELLE P ROFILI . . . . . . . . . . . . . . . 6.2 AGGIUNGI P ROFILO . . . . . . . . . . . . 6.3 P ROFILO A PAGAMENTO . . . . . . . . . . 6.4 P ROFILO CON LIMITE DI BANDA . . . . . . 6.5 P ROFILO CON IMPOSTAZIONE INTERFACCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 49 49 50 50 51 52 52 52 53 54 55 56 57 58 58 58 59 59 61 62 62 66 66 . . . . . . . . . . 67 67 67 68 69 70 71 71 73 74 75 . . . . . 76 76 77 77 78 78 7 E MAIL 79 7.1 I NVIO EMAIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 8 SMS 80 8.1 I NVIO SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9 U TILIZZO CAPTIVE P OR TAL 9.1 L OGIN CAPTIVE P ORTAL . . . . . 9.1.1 L OGIN STANDARD . . . . . 9.1.2 L OGIN A PERTO . . . . . . 9.1.3 L OGIN CON CODICE QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 81 81 84 85 9.2 CAMBIO PASSWORD . . . . . . . . . . . . . . . . . . 9.3 D ETTAGLI CONNESSIONI UTENTE . . . . . . . . . . . . 9.4 AUTOREGISTRAZIONE . . . . . . . . . . . . . . . . . . 9.4.1 AUTOREGISTRAZIONE S TANDARD . . . . . . . . 9.4.2 AUTOREGISTRAZIONE CON S OCIAL N ETWORK 9.4.3 AUTOREGISTRAZIONE CON A STERISK . . . . . . 9.4.4 AUTOREGISTRAZIONE CON SMS . . . . . . . . 9.4.5 AUTOREGISTRAZIONE DA T ICKET . . . . . . . . 9.5 R ECUPERO PASSWORD . . . . . . . . . . . . . . . . . 9.5.1 R ECUPERO PASSWORD STANDARD . . . . . . . 9.5.2 R ECUPERO PASSWORD CON A STERISK . . . . . 9.6 B LOCCO CAPTIVE P ORTAL . . . . . . . . . . . . . . . A Installazione e configurazione Certificati SAN B Creare nuovi templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 86 87 87 88 90 91 91 92 92 92 93 94 101 C I ferri del mestiere 102 C.1 Midnight Commander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C.2 Editor Nano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 C.3 SFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 D Scripts 108 D.1 Scripts per keypad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 iii 1 Z EROTRUTH E Z EROSHELL I NTRODUZIONE Mi sono avvicinato a Zeroshell cercando un applicativo per il Captive Portal del laboratorio di informatica di una piccola scuola e mi ha piacevolmente stupito per la semplicità del suo utilizzo. installandolo su una Alix in 10 minuti tutto andava a meraviglia. Il limite, se cosı̀ si può chiamare, era poi farlo gestire ad una persona con poche competenze che, dall’interfaccia di Zeroshell, potesse aver accesso a tutte le caratteristiche. Dopo una prima esperienza con un applicativo scritto in PHP, installato su una postazione collegata al server Zeroshell, che ha mostrato molti limiti in fatto di velocità e non solo, ho deciso di realizzare un’interfaccia da installare direttamente su Zeroshell, per poter aumentare la velocità di elaborazione e accedere ad altre funzioni in quel modo non possibili. La scelta è stata di utilizzare delle cgi-bin in bash scripts incontrando non poche difficoltà, soprattutto per capire come lavorasse lo straordinario lavoro di Fulvio Ricciardi dal quale ho imparato molto e copiato a piene mani. Zeroshell dispone, tra le moltissime caratteristiche che offre, di un ottimo Captive Portal, comprensivo del modulo di accounting, sul quale Zerotruth si appoggia completamente integrando delle funzioni aggiuntive anche attraverso l’inserimento di altri programmi compilati appositamente. Il tentativo è stato quello di offrire un modo semplice, ma il più completo possibile, di gestire un Captive Portal sia per installazioni destinate a pochi utenti che per quelle che devono offrire il servizio a migliaia di persone. Zerotruth è utilizzato in diversi centri sociali, biblioteche, scuole e, visto che è nato inizialmente proprio per questo, la cosa mi rende molto contento, ma anche in hotspot cittadini per coprire vaste aree in diversi paesi europei e in altri continenti. Senza avere alle spalle Zeroshell, con la sua solidità ma anche la sua pubblicità, Zerotruth non sarebbe certamente arrivato a questo punto e non avrebbe ottenuto il consenso di cosı̀ tante persone, tecnici e aziende. Neppure senza l’aiuto degli amici del forum italiano di Zeroshell, che mi hanno sollecitato ad inserire nuove funzioni, sarebbe stato possibile avere lo stimolo per continuare a sviluppare il “giocattolo” inserendo molte features che probabilmente non userò mai nelle mie modeste installazioni. Lo chiamo “giocattolo” perchè per me Zerotruth è, e rimarrà, un semplice passatempo che con piacere condivido con le persone che lo possono trovare utile. Un ringraziamento quindi a tutti gli utilizzatori, agli utenti del forum di Zeroshell per i loro test, i consigli e lo sviluppo diretto e un ringraziamento particolare a Fulvio Ricciardi per la disponibilità e la fiducia che mi ha dato. 1 2 CAPTIVE P OR TAL I testi e le immagini del capitolo sono presi, con il permesso dell’autore, dal documento “Hotspot router per l’accesso alla rete” di Fulvio Ricciardi. 2.1 H OTSPOT ROUTER PER L’ ACCESSO ALLA RETE Il fine di questo documento è la descrizione della realizzazione di un gateway per Hotspot Wi-Fi mediante l’uso di Zeroshell. Ci si soffermerà in particolar modo sulle modalità di autenticazione degli utenti (RADIUS, Kerberos 5 e con certificati digitali X.509) e sull’accounting RADIUS del traffico e del tempo di connessione. Si darà uno sguardo anche alla possibilità di ottenere un router MultiWAN con bilanciamento e failover dei collegamenti Internet con funzionalità di Captive Portal. Figura 1: Rete in un Hotspot con Router Captive Portal Negli Hotspot, ovvero nei luoghi pubblici in cui si dà accesso ad Internet a utenti occasionali, è necessario per il gestore disporre di almeno alcune delle seguenti funzionalità: 1. Autenticazione; 2. Registrazione degli accessi nei log; 3. Accounting del traffico, del tempo e dei costi di connessione. L’autenticazione, ovvero la capacità di poter identificare univocamente l’utente per poi autorizzarlo all’accesso alla rete, può avvenire mediante username e password o tramite certificato digitale X.509 eventualmente memorizzato su Smart Card. Il log degli accessi è talvolta richiesto per legge, poiché permette di risalire agli autori di attività illecite. Si badi bene che per logging degli accessi non si intende la registrazione degli URL o peggio dei contenuti a cui l’utente ha avuto accesso, ma semplicemente l’annotazione della data e l’orario di inizio e di fine delle connessioni a Internet di ogni utente e dell’indirizzo IP associato al client (generalmente un PC portatile) da cui avviene il collegamento. L’accounting invece, oltre a tenere traccia dell’inizio e della fine del collegamento, contabilizza il tempo e il traffico di connessione relativo ad un utente. Spesso il fine dell’accounting è quello di permettere la tariffazione del traffico con costi per Megabyte di traffico generato o per minuto di collegamento. Inoltre, tramite l’accounting, si possono impostare dei limiti al traffico e al tempo oltre i quali l’utente viene disconnesso dalla rete. In particolare, l’accounting può permettere la gestione di connessioni prepagate in cui l’utente per poter essere in linea deve disporre di un credito. 2 Per ottenere tali funzionalità si utilizzano una o entrambi le seguenti modalità di accesso: • Autenticazione e cifratura del traffico tramite WPA/WPA2 Enterprise • Captive Portal WPA/WPA2 Enterprise prevede che gli Access Point Wi-Fi associno un client solo se l’utente ha delle credenziali valide verificate mediante un server RADIUS con protocollo 802.1x. Oltre all’autenticazione, è garantita anche la cifratura del traffico tra client ed Access Point. Nel caso di accesso mediante Captive Portal invece, gli Access Point vengono programmati in modalità aperta, cioè senza alcuna autenticazione e cifratura. Il client si può associare liberamente e riceve immediatamente un indirizzo IP dal server DHCP. Tuttavia, il Gateway di Accesso a Internet blocca la comunicazione con l’esterno e redirige qualsiasi richiesta Web (http e https) verso un portale di autenticazione. Appare subito evidente che WPA/WPA2 Enterprise è un sistema più robusto dal punto di vista della sicurezza rispetto al Captive Portal, ma d’altra parte, richiede che l’utente configuri il suo client (supplicant) per autenticarsi via 802.1x. Tale configurazione non è facile per gli utenti occasionali di un Hotspot ed per questo, che nella maggior parte dei casi, si preferisce dare accesso mediante Captive Portal che non richiede alcuna configurazione sul dispositivo portatile. Figura 2: Configurazione del Captive Portal Gateway Alcuni Access Point Wireless implementano internamente un Captive Portal, ma spesso questo è poco configurabile ed adattabile all’esigenze di un Hotspot. Risulta invece più flessibile e conveniente utilizzare degli Access Point economici, senza alcuna caratteristica avanzata e demandare la funzione di Captive Portal ad un router che funge da gateway verso Internet cosı̀ come illustrato nella figura 1. 2.2 I NEMICI DEL CAPTIVE P OR TAL La semplicità nell’uso di un Captive Portal anche da parte di un utente inesperto è dovuta soprattutto al fatto che l’accesso al livello 2 della rete, sia che si tratti di wireless che di rete cablata, è aperto (cioè privo di autenticazione). Il client appena si associa alla rete ottiene subito un IP dal server DHCP e comunica in maniera non criptata. La contropartita di tale semplicità si traduce in un’intrinseca debolezza dal punto di vista della sicurezza. Vedremo nei due successivi paragrafi come Zeroshell tenti di mitigare tale debolezza. 3 2.3 FALSIFICAZIONE (S POOFING ) DI IP E MAC ADDRESS Il problema di sicurezza più sentito quando si parla di Captive Portal è lo spoofing dell’indirizzo IP e del MAC address della scheda di rete. Infatti, il firewall del Captive Portal sblocca i client autenticati identificandoli tramite l’indirizzo IP e il MAC address (quest’ultimo solo nel caso che il captive portal sia direttamente connesso a livello 2 alla rete da proteggere, cioè senza che ci siano router in mezzo). Purtroppo questi 2 parametri possono essere impostati con estrema facilità su qualsiasi Sistema Operativo e perciò, esiste il rischio che qualcuno catturi il traffico con uno sniffer alla ricerca di un client già autenticato e si imposti gli stessi IP e MAC address. Ciò perturberebbe la comunicazione del client legittimamente autenticato che, notando una bassa qualità della connessione, rinuncerebbe all’uso della rete lasciando campo libero all’impostore. Il problema è aggravato dal fatto che la maggior parte delle implementazioni di Captive Portal, mantengono un client autenticato e quindi connesso finché questo è visibile in rete senza che il client partecipi attivamente al rinnovo dell’autenticazione. Alcune implementazioni controllano l’ARP table per vedere se il client ha effettuato traffico di recente oppure effettuano un ARP Request per verificare la presenza in rete dell’IP. Altre utilizzano la tabella dei leases del DHCP server, controllando se il client ha richiesto il rinnovo di recente. Tali soluzioni sono chiaramente insicure, poiché il client ha un ruolo passivo nel riaccreditamento dell’autenticazione. La soluzione adottata da Zeroshell è invece quella di far si che sia il client stesso a richiedere al Captive Portal gateway il rinnovo dell’autenticazione, presentandogli un pacchetto criptato con AES256, denominato Authenticator. Quest’ultimo è un segreto condiviso soltanto dal client e dal Captive Portal (viaggia infatti in tunnel SSL e perciò non può essere catturato con uno sniffer) e pertanto anche se qualcuno imposta l’IP e il MAC address di un utente autenticato, non disporrà dell’Authenticator con cui richiedere al Captive Portal il rinnovo dell’autenticazione. L’Authenticator viene memorizzato dal client all’interno di una finestra popup denominata Network Access che si occupa mediante Java Script di spedirlo al Captive Portal per il rinnovo. Figura 3: Network Access Popup La finestra di Popup svolge anche altre funzioni come quella di permettere all’utente di disconnetersi e di visualizzare utili informazioni di accounting come il tempo, il traffico e il costo di connessione. È da notare che tale finestra non viene bloccata dai sistemi anti-popup di cui quasi ogni browser web è dotato poiché viene aperta in maniera sincrona alla richiesta di autenticazione dell’utente. D’altra parte però, la finestra di Popup ha causato diversi problemi con l’avvento dei dispositivi Mobile quali gli IPhone, gli iPad e altri cellulari e palmari (Android e Windows Mobile inclusi) che non avendo un sistema multitasking effettivo dimenticavano di rinnovare l’autenticazione causando la chiusura della connessione. Per ovviare a tale problema, a partire dalla release 1.0.beta15 di Zeroshell i dispositivi Mobile vengono riconosciuti dal Captive Portal che non gli impone il rinnovo dell’autenticazione mediante l’invio dell’Authenticator, ma semplicemente verificandone la presenza in rete. 4 Figura 4: Configurazione di Smartphone e dispositivi Mobile 2.4 D ENIAL OF S ERVICE (D O S) Alcuni software, nel tentativo di comunicare con l’esterno a tutti i costi, dopo aver tentato la comunicazione sulle porte TCP/UDP a loro assegnate, provano la connessione sulle porte TCP 80 e 443 sapendo che difficilmente un amministratore di rete le chiuderebbe in uscita impedendo cosı̀ la navigazione http/https e quindi l’accesso al web. L’esempio più noto di tale categoria di programmi è il client VoIP di Skype, ma molti altri sistemi P2P e worm fanno altro e tanto. Si intuisce subito che quando un utente con il suo client si associa alla rete, ma non si autentica subito tramite il Captive Portal, tali richieste sulle porte 80 e 443 TCP vengono redirette verso il portale di autenticazione che cercherebbe invano di servirle visto che il traffico non è HTTP. È ovvio, che all’aumentare dei client non ancora autenticati su cui girano i suddetti programmi, aumenta la probabilità che si verifichi un DoS (Denial of Service) in cui il portale di autenticazione è impegnato a servire richieste fasulle, non riuscendo a gestire o a gestire con molta lentezza le richieste leggittime provenienti dai browser web. Zeroshell limita il verificarsi di situazioni del genere implementando un sistema di DoS Protection che usando il Netfilter di Linux limita il numero massimo di redirect per minuto. Il livello di protezione può essere impostato su tre livelli (Low, Medium e High). Figura 5: captive-portal-DoS-protection 5 Inoltre, i meccanismi di Auto-Update dei Sistemi Operativi e delle Signature degli Antivirus spesso utilizzano il protocollo http per comunicare con il repository di aggiornamento e perciò possono aggravare la situazione, facendo delle richieste che vanno ad aumentare il carico di lavoro del Captive Portal. Anche in questo caso Zeroshell cerca di arginare il problema intercettando le richieste verso i piu’ comuni repository di aggiornamento evitandone l’inutile redirect verso la pagina di autenticazione del Captive Portal. 2.5 R OUTER O B RIDGE ? Nella figura 1 il Captive Portal lavora come router di livello 3 connesso direttamente ad un modem con cui si collega ad Internet. Esso agisce come default gateway per i client che si connettono alla rete. In questa configurazione, detta in Routed Mode, conviene far svolgere al router anche la funzione di DHCP e DNS server. Il Captive Portal di Zeroshell può lavorare anche nella modalità detta in Bridge Mode, in cui la rete da proteggere con il Captive Portal condivide la stessa subnet IP del resto della LAN. Pertanto, un client prende lo stesso indirizzo IP sia se si connette da una parte che dall’altra ed ha il medesimo default gateway che è un router a monte del Captive Portal. In questo caso, anche DHCP e DNS da utilizzare per la parte Hotspot possono essere gli stessi che si usano per il resto della LAN. Nelle precedenti versioni di Zeroshell si doveva dichiarare esplicitamente la modalità di funzionamento del Captive Portal. Dalla release 1.0.beta15, invece, ci sono 2 novità a riguardo: Viene gestita la modalità MULTI in cui si possono dichiarare più interfacce di rete su cui attivare il Captive Portal. Come si vede nella figura il Captive Portal può essere attivato anche sulle VLAN 802.1q (Tagged Virtual LAN); Zeroshell sceglie la modalità bridge o router automaticamente controllando se un’interfaccia fa parte o meno di un bridge. Mettendo insieme le due novità, si deduce che il Captive Portal di Zeroshell può lavorare sullo stesso box hardware contemporaneamente come router per alcuni segmenti di LAN e come bridge per altri. Figura 6: Captive Portal su più interfacce di rete 2.6 AUTENTICAZIONE DEGLI UTENTI Il Captive Portal di Zeroshell può utilizzare diverse fonti di autenticazione anche contemporaneamente. Per default, autentica gli utenti utilizzando il suo KDC Kerberos 5 interno che contiene i principal relativi agli utenti archiviati nella Directory LDAP e gestiti mediante l’interfaccia web. Tuttavia, possono essere utilizzate fonti esterne di autenticazione quali REALM Kerberos 5, server RADIUS e Identity Provider SAML 2. Inoltre, è disponibile anche il login mediante Certificati Digitali X.509 che permetterebbe l’accesso tramite Smart Card o Token USB. Nel caso di autenticazione RADIUS o Kerberos 5 gli utenti possono provenire da domini diversi. In tal caso, l’utente deve 6 selezionare il dominio di autenticazione mediante la casella di selezione presente nella pagina di accesso oppure qualificando il suo username mediante il suffisso @dominio (per esempio [email protected]). Figura 7: Domini autorizzati nella configurazione dell’autenticazione del Captive Portal 2.7 RADIUS (PAP, EAP-TTLS E PEAP) L’autenticazione RADIUS è tra i protocolli più utilizzati per il riconoscimento degli utenti su dispositivi di rete quali per esempio Access Point Wireless o Switch che permettano l’accesso al layer 2 solo dopo che l’autenticazione abbia avuto successo. Il Captive Portal di Zeroshell permette l’autenticazione RADIUS verso server esterni tramite richieste proxy. In altre parole, il captive portal richiede l’autenticazione al suo server FreeRADIUS interno che, se si accorge di non essere autoritario per il dominio a cui l’utente appartiene, inoltra la richiesta di autenticazione al RADIUS server competente. Chiaramente tale server RADIUS esterno deve essere configurato nella lista dei server proxy specificando lo Shared Secret. D’altra parte, anche sul RADIUS server esterno bisogna aggiungere una entry tra i client RADIUS per abilitare l’indirizzo IP del Captive Portal utilizzando lo stesso Shared Secret. Nella lista dei proxy radius è possibile aggiungere il server RADIUS di DEFAULT che viene utilizzato qualora nessuno degli altri server è autoritario per autenticare l’utente. Il proxy radius di default viene spesso utilizzato anche quando il captive portal deve autenticare verso una gerarchia di server RADIUS. Figura 8: Hotspot distribuiti con server RADIUS di autenticazione/accounting centralizzato 7 Il captive portal può effettuare richieste di autenticazione PAP o 802.1x (EAP-TTLS con PAP e PEAP con MsCHAPv2). In quest’ultimo caso, il captive portal appare al server RADIUS come il supplicant di un dispositivo Wi-Fi che tenta l’accesso tramite WPA/WPA2 Enterprise. L’utilizzo di 802.1x è consigliato rispetto al semplice PAP qualora sia necessario un livello di sicurezza maggiore, garantito dal protocollo TLS di cui sia EAP-TTLS che PEAP (Protect EAP) si avvalgono. Kerberos 5 (Active directory). L’autenticazione Kerberos 5 permette di interfacciare il Captive Portal ad un dominio Windows Active Directory. Infatti, ogni Windows Server che sia un controller di dominio ha un KDC Kerberos 5 che autentica gli utenti appartenenti al dominio Active Directory di cui fa parte. Pertanto, basta aggiungere tra i domini autorizzati all’accesso al captive portal il nome del dominio Active Directory per permettere agli utenti Windows di accedere alla rete. Si noti che qualora non è attiva la funzionalità di discovery del REALM e dei KDC tramite i record SRV del DNS è necessario specificare manualmente gli indirizzi IP (o gli hostname FQDN) dei KDC autoritari per il REALM. Figura 9: Configurazione dei Realm Kerberos 5 esterni In alcune situazioni è opportuno autorizzare l’accesso tramite Captive Portal soltando ad un gruppo di utenti. Ciò non è possibile mediante Kerberos 5 poiché quest’ultimo gestisce solo l’autenticazione di Active Directory, mentre l’autorizzazione è demandata ad LDAP. Tuttavia, si può attivare sui controllori di dominio lo IAS (il Servizio RADIUS di Active Directory) e configurare il Captive Portal per autenticare verso RADIUS. In questo caso, si può configurare IAS per autorizzare solo gli utenti che appartengano ad un determinato gruppo. 2.8 C ER TIFICATI D IGITALI X.509 (S MAR T CARD ) L’autenticazione tramite certificati digitali X.509 permette il login senza dover digitare username e password. In altre parole, ogni utente che deve accedere alla rete deve possedere un certificato personale con la relativa chiave privata caricato nel browser web. Premendo il tasto [X.509] presente nel portale di autenticazione, se il certificato è firmato da una delle Autorità di Certificazione configurate all’interno del captive portal, l’utente ha accesso alla rete. L’utilizzo dei certificati digitali è spesso legato a quello delle Smart Card o dei Token USB. Questi dispositivi infatti, possono custodire il certificato digitale in maniera estremamente sicura poiché, la chiave 8 privata non può essere estratta con un’operazione di lettura dall’esterno. Le Smart Card sono perciò dotate di un loro chip che effettua le operazioni di cifratura e decifratura richieste tramite API. Per sbloccare l’utilizzo della chiave privata da parte del browser la Smart Card richiede la digitazione di un PIN che contribuisce ad aumentarne la sicurezza qualora la carta sia smarrita. 2.9 S HIBBOLETH (I D P SAML 2.0) Tramite Shibboleth Service Provider, il Captive Portal di Zeroshell permette l’autenticazione degli utenti verso un Identity Provider SAML 2. Ciò è spesso utilizzato nelle federazioni in cui ogni membro di una federazione implementa un IdP per il riconoscimento degli utenti oltre a diversi servizi web (Service Provider). Tra questi servizi si può includere l’accesso alla rete Wi-Fi, in cui, l’utente viene rediretto verso il WAYF/DS da cui seleziona l’Identity Provider che lo può autenticare. Si potrebbe obiettare che anche legando il captive portal ad una gerarchia di server RADIUS (tipo EDUROAM per quel che riguarda le Università e gli Enti di Ricerca) si otterrebbe l’accesso federato alla rete. Tuttavia, mentre nel caso di 802.1x si ha la cosiddetta autenticazione End-to-End anche attraversando la gerarchia di server RADIUS, con il captive portal ciò non è garantito. Per questo è preferibile utilizzare SAML, in cui invece, le credenziali viaggiano, partendo dal browser dell’utente fino al’IdP autoritario per la sua autenticazione, sempre all’interno dello stesso tunnel cifrato con SSL, garantendo perciò l’autenticazione End-to-End. Per maggiori dettagli sull’uso del Captive Portal con Shibboleth è disponibile il documento “Configurare il Captive Portal per autenticare gli utenti mediante Shibboleth ” (http://www.zeroshell.net/shibboleth-captive-portal/). 2.10 C ONTABILIZZAZIONE DEL TEMPO, DEL TRAFFICO E DEL COSTO DI CONNESSIONE L’accounting permette di conoscere, per ogni utente, il tempo, il traffico e il costo delle sue connessioni. Il Captive Portal di Zeroshell utilizza RADIUS per trasmettere tali informazioni ed è pertanto possibile utilizzare un server esterno che supporti l’accounting via RADIUS oppure Zeroshell stesso. Cosı̀ come per l’autenticazione, anche per l’accounting si può centralizzarne la gestione su di unico server RADIUS che raccolga le informazioni provenienti da più Hotspot. Si noti peraltro, che il sistema di accounting di Zeroshell può, proprio perché rispetta lo standard RADIUS, raccogliere sia le informazione dai Captive Portal, sia direttamente dagli Access Point Wi-Fi che utilizzino WPA/WAP2 Enterprise mediante 802.1x. Figura 10: Gestione accounting RADIUS 9 Figura 11: Dettagli di connessione di un utente 2.11 L IMITI DI ACCESSO ALLA RETE Tramite l’accounting RADIUS è possibile anche impostare dei limiti di connessione per gli utenti. Per far ciò è sufficiente assegnare gli utenti ad una classe di accounting a cui si attribuiscono i seguenti parametri: • Tipo di pagamento (Prepagato e postpagato) • Costo per Megabyte di traffico • Costo orario della connessione • Limite massimo di traffico generato (in entrata e in uscita) in Megabyte • Limite orario di connessione Figura 12: Configurazione dei limiti di accesso alla rete 10 2.12 R EGISTRAZIONE DEGLI ACCESSI E DELLE CONNESSIONI TCP/UDP NEI LOG Benché già l’accounting mantiene traccia delle connessioni degli utenti alla rete è possibile avere maggiori dettagli sull’autenticazione degli utenti consultando i messaggi di log del Captive Portal. Figura 13: Messaggi di log del Captive Portal Peraltro, soprattutto se i client del Captive Portal utilizzano indirizzi IP privati, può essere utile tenere traccia delle connessioni TCP e UDP che vengono stabilite con server esterni. Infatti, poiché il captive portal per far comunicare con la WAN gli indirizzi privati deve eseguire il NAT (Network Address Translation), tutte le connessioni risultano generate dall’indirizzo IP pubblico del router. Il Connection Tracking va abilitato esplicitamente ed è raccomandato valutare, prima di abilitarlo, quanto il suo utilizzo sia consentito dalle leggi sulla privacy, tenuto conto del fatto che esso non permette di risalire ai contenuti delle comunicazioni degli utenti, ma soltanto a determinare quali server sono stati contattati. Figura 14: Registrazione nei log delle connessioni TCP/UDP 11 3 I NSTALLAZIONE E RIMOZIONE DI Z EROTRUTH Installare Zerotruth è molto semplice ma, come già detto, appoggiandosi completamente a Zeroshell prima è necessario abilitate su quest’ultimo alcune funzioni. 3.1 P REPARAZIONE DI Z EROSHELL Figura 15: Abilitazione SSH L’SSH si può abilitare, a seconda delle proprie necessità, per un unico IP address, per una subnet o per una specifica interfaccia di rete. Si dovrà inoltre attivare, sempre dalla GUI di Zeroshell, il Captive Portal e il modulo dell’accounting altrimenti in fase di installazione Zerotruth lo richiederà. Figura 16: Abilitazione Captive Portal Il Captive Portal si può abilitare, a seconda della propria rete, su una o più interfacce. 12 Il modulo dell’accounting si attiva dalla relativa pagina senza bisogno di scelte particolari. Figura 17: Abilitazione Accounting A questo punto potremo collegarci in SSH a Zeroshell per installare Zerotruth attraverso la bash di un sistema GNU/Linux 1 o se si utilizza Windows con un programma come Putty. 2 Figura 18: Zeroshell localman Il chiaro elenco dei comandi che offre Zeroshell indica che per accedere alla Shell Prompt è necessario digitare “S”. Al prompt si dovrà ovviamente inserire le proprie credenziali che di default sono “admin” come username e “zeroshell” come password. 1 Dalla Bash Shell di una qualsiasi distribuzione GNU/Linux ci si può collegare a una postazione Zeroshell appena installata con il comando “ssh [email protected]”. 2 Putty è un programma che permette, tra l’altro, connessioni in SSH ed è liberamente scaricabile. 13 3.2 I NSTALLAZIONE DI Z EROTRUTH Prendendo ad esempio la versione 3.0 di Zerotruth (zerotruth-3.0.tar.gz), una volta entrati nella shell di Zeroshell basterà dare i seguenti comandi: 1. cd /DB 2. wget http://www.zerotruth.net/controldl.php?file=zerotruth-3.0.tar.gz 3. tar zxvf zerotruth-3.0.tar.gz 4. cd zerotruth-3.0 5. ./install.sh Figura 19: Installazione di Zerotruth Il comando “./install.sh” eseguirà tutte le operazioni necessarie mostrando a video lo stato di avanzamento dell’installazione e gli eventuali errori riscontrati. 3.3 R IMOZIONE DI Z EROTRUTH Nella stessa cartella da dove abbiamo installato il programma, nel nostro esempio “/DB/zerotruth3.0”, si troverà lo script “uninstall.sh” per disinstallare completamente Zerotruth senza modificare Zeroshell. 3.4 U PGRADE DI Z EROTRUTH Prima di effettuare l’upgrade ad una nuova versione, senza utilizzare la GUI di Zerotruth, è necessario rimuovere la versione installata come visto precedentemente. La rimozione di Zerotruth mantiene inalterato il database degli utenti eliminando però tutte le configurazioni. Dalla versione 1.0.beta2 l’upgrade alle versioni successive può essere effettuato direttamente dalla GUI di Zerotruth, 3 tale scelta è da preferire in quanto mantiene inalterate le configurazioni precedentemente impostate. 3 Se viene messa on-line una nuova versione verrà dato automatico avviso negli aggiornamenti disponili. 14 3.5 ACCESSO ALLA GUI DI AMMINISTRAZIONE Collegandosi con un browser all’indirizzo IP impostato per Zeroshell viene presentata la pagina di “scelta” dalla quale si procede verso il login di Zerotruth o verso quello di Zeroshell. Scegliendo Zerotruth viene presentato il form di autenticazione dal quale è possibile accedere con l’username “admin” e password “zerotruth”. Figura 20: Scelta tra zeroshell e Zerotruth e Login Dopo l’autenticazione si viene indirizzati alla pagina che mostra l’elenco degli utenti del Captive Portal per avere immediatamente riscontro dell’utilizzo del sistema. Al primo accesso si dovrà configurare Zerotruth utilizzando la relativa pagina. Il bottone “Config” e la pagina di configurazione saranno visibili e accessibili solo all’amministratore del sistema. 4 Figura 21: Testata con link generali Si tenga presente che nella testata i bottoni possono variare a seconda della configurazione, dei servizi attivi e dell’utilizzatore. Ad esempio nella figura 21 non è presente il bottone SMS in quanto tale servizio non è stato ancora configurato. 4 Agli “utenti gestori” non sarà possibile assegnare il permesso di configurare Zerotruth 15 4 C ONFIGURAZIONE Nella pagina “Config” sono presenti i link per le varie sezioni. 4.1 Z EROTRUTH Figura 22: Testata con link generali La sezione consente di configurare: • il nome della postazione Il nome impostato verrà poi utilizzato nelle comunicazioni, tramite email e/o SMS, agli utenti e all’amministratore oltre nei backup per identificare la postazione • la lingua dell’interfaccia Sono attualmente disponibili le seguenti lingue: Italiano, francese, inglese, polacco, portoghese, spagnolo e tedesco 5 • le porte in ascolto Si può modificare per esigenze particolari la porta per l’HTTP e per HTTPS, in tal caso il sistema necessità di un riavvio. Dalla stessa pagina è possibile registrare Zerotruth per poter installare funzionalità extra 6 e accedere agli aggiornamenti. La registrazione è automatica, dopo aver eseguito una donazione tramite Paypal o nelle altre modalità previste, 7 si riceverà in breve tempo una email contenente un codice personale da inserire nel predisposto form. A seguito della registrazione la pagina mostrerà il codice autorizzato in “chiaro” in quanto non è possibile utilizzare lo stesso su una postazione diversa. Il codice sarà valido anche per le versioni successive di Zerotruth se installato sulla stessa postazione. 8 5 Sarebbe molto gradita la traduzione in altre lingue e la correzione, in caso di bisogno, di quelle installate R R R Permesso di personalizzare logo e immagine della testata, installazione di Squid, Dansguardian, Gammu, modulo MultiCP. 7 Oltre alla donazione si può ricevere un codice di attivazione inserendo un link a www.zerotruth.net su un proprio sito web, scrivendo una semplice recensione o un HOWTO riguardante Zerotruth. Inolte le scuole, centri sociali, biblioteche, associazioni, Comuni, Enti possono richiedere un codice di registrazione gratuito. 8 Il codice di registrazione verifica il MAC address della scheda di rete vista da Zeroshell come ETH00 e pertanto anche se viene sostituita tale scheda il codice si invalida. 6 16 4.2 A DMIN Figura 23: Configurazione admin La sezione Imposta i dati riguardanti l’amministratore del sistema. • L’username • la password 9 • l’email che verrà utilizzata come destinatario delle notifiche, nella spedizione del Backup ecc. • il numero di telefono per le notifiche via SMS • la priorità sugli utenti gestori In tal caso ad un utente gestore verrà rifiutato il collegamento finchè l’amministratore risulta connesso • la registrazione nei Log delle attività dell’amministratore. Si può inoltre scegliere quali notifiche ricevere e attraverso quale canale se i servizi sono attivi. 10 Molto utile a tal propostivo avere la notifica di un riavvio della postazione del Captive Portal per poter subito controllare se la postazione funziona regolarmente dopo un precedente inatteso arresto. Altri avvisi saranno possibili con l’installazione di Gammu (Sez.4.28.2) che permette, attraverso una Key o telefono USB, di comunicare anche se la connessione ad Internet non è attiva. 9 L’icona “occhiali” permette la visualizzazione della password. Se il servizio di email o SMS non sono configurati e attivi verrà mostrato l’avviso dell’impossibilità di notificare gli eventi. 10 17 4.3 U SERS ( UTENTI GESTORI ) Dalla pagina “Users” si possono inserire e configurare gli utenti gestori del sistema.11 Figura 24: Configurazione utenti gestori Ai gestori vengono concessi i vari permessi dall’amministratore attraveso la pagina visualizzabile dal link dell’icona “matita”. Figura 25: Configurazione singolo utente gestore I permessi assegnabili sono molti e auto descrittivi, si precisa il significato dei seguenti: • Consenti gestione solo propri user Consente di limitare all’utente gestore la visualizzazione, e quindi anche la gestione, dei soli utenti del Captive Portal dallo stesso inseriti. 12 • Crea Log Se abilitato tutte le operazioni effettuate dall’utente gestore verranno memorizzare dei Log del sistema. 11 La versione 3.0 di Zerotruth elimina il numero massimo di utenti gestori che nelle precedenti era fissato a 6. L’amministrazione potrà in seguito spostare la “ proprietà” degli utenti da un gestore ad un altro o assegnarli a se stesso. 12 18 • Consenti utilizzo dei profili Si può fissare quali profili utente il gestore potrà assegnare nelle registrazioni del Captive Portal. • Scadenza La data oltre la quale il gestore non avrà più accesso al sistema. 4.4 I MMAGINI Il logo può essere cambiato con uno a piacere rispettando le misure riportate. Le seconda immagine gestita da questa pagina viene visualizzata nella testata di ogni pagina di Zerotruth e nella stampa dei biglietti (Sez. 6.2) mentre la terza in tutte le pagine di accesso al Captive Portal in base al template scelto. Figura 26: Immagine Zerotruth e Captive Portal Le immagini possono essere cambiate, una volta registrato Zerotruth, con una a piacere, rispettando le misure riportate, per personalizzare il sistema. 19 4.5 A STERISK Se Asterisk risulta installato su Zeroshell la pagina permette di controllarne il funzionamento visualizzando anche lo stato dei singoli “peer” registrati. Figura 27: Controllo Asterisk e peers Dalla GUI è possibile visualizzare, modificare e salvare le configurazioni di Asterisk necessarie (“sip.conf ” e “extensions.conf ”), insieme allo script (“zerotruth.sh”), per l’autoregistrazione (sez. 4.14). Figura 28: configurazione sip.conf 20 4.6 LOG I log possono essere visualizzati ed eventualmente cancellati da questa pagina. Figura 29: LOG 4.7 C ONTROLLO LDAP Figura 30: Ldap La pagina permette un controllo sull’integrità del database e segnala eventuali errori; è inoltre possibile riparare le incongruenze del database attraverso il link “Controlla e ripara”. 21 4.8 K EYPAD Per quei dispositivi embedded, come Alix o APU, che non hanno la possibilità di gestire direttamente una tastiera e un monitor, può essere comodo poter imparire dei comandi con un tastierino numerico USB. Figura 31: Keypad Per verificare quale “/dev/input” utilizzi la tastierà si può procedere nel seguente modo: 1. Controllare nel menu quali device di input sono mappati; 2. Collegare la tastiera; 3. Controllare quale device è stato aggiunto e sceglierlo. 22 Per configurare il sistema affinchè sia effettuata la mappaura dei tasti è necessario utilizzare da shell il comando “/DB/apache2/cgi-bin/zerotruth/bin/configkeys” seguendo le indicazioni riportate. Figura 32: configkeys Successivamente basterà scrivere, da GUI utilizzando la textarea del form, lo script per eseguire i comandi relativi ai codici inseriti (allegato: D.1) e far partire il demone affinchè resti in attesa degli ordini impartiti. Essendo i tasti mappati con lo scan code relativo, sarà possibile utilizzare ogni tastiera e ogni tasto non necessariamente numerico. 23 4.9 VSBS Figura 33: VSBS Una semplice Shell è disponibile da GUI per controllare o impartire comandi al sistema. Non sono disponibili tutti i comandi della Bash Shell ma per semplici operazioni consente di non dover accedere alla Bash Shell di Zeroshell. L’utility può facilitare nei casi di connessione remota al sistema o per problemi con l’accesso a Zeroshell. 4.10 E XPOR T Figura 34: Export L’utility consente di esportare gli utenti del Captive Portal in formato testo o CSV. 24 4.11 F ONT Figura 35: Font In alcuni casi, quando i dati inseriti nella tabella degli utenti del Captive Portal portano ad una scorretta impaginazione, si può ridurre, o aumentare, la misura del Font utilizzato. 4.12 T EST Figura 36: Test Si possono eseguire alcuni test sull’hardware del sistema e sulla velocità di connessione verso diversi server in internet. 25 4.13 CAPTIVE P OR TAL Il Captive Portal viene configurato in questa sezione. Figura 37: Captive Portal Alcune configurazioni sono intuitive, altre meritano una spiegazione più approfondita: 1. Connessioni simultanee Le connessioni simultanee, vale a dire la possibilità per un utente di collegarsi contemporaneamente da diversi device, possono essere proibite, permesse o demandate ai singoli profili. In questo ultimo caso potranno essere gestite per singolo profilo e configurate nella sezione apposita.(Sez. 6). 2. Validità autenticatore Il popup di autenticazione rinnova la richiesta al sistema per il tempo qui impostato. 26 3. Connessioni globali In alcuni casi è possibile che gli utenti instaurino verso Internet innumerevoli connessioni, ad esempio usando un client torrent, saturando in tal nodo la banda a disposizione. L’amministratore può decidere di limitare tale possibilità ad un numero massimo di connessioni dopo le quali il device relativo viene bloccato dal firewall. 4. Ridirigere con Il reindirizzamento al Captive Portal viene eseguito di default utilizzando l’Indirizzo IP address dello stesso. Può essere impostato comunque l’utilizzo del CN, il “Common Name” del cerificato, o uno specifico URL utile per utilizzare un SAN di un certificato SSL (Allegato A). Figura 38: Scelta reindirizzamento 5. Non usare HTTPS È possibile utlizzare, per la comunicazione dei dati dai clients al Captive Portal, il protocollo HTTPS o HTTP. Si ricorda che con il protocollo HTTP i dati vengono trasmessi in “chiaro” con evidenti problemi di sicurezza. 6. Disabilita CP su porta 443 Se un utente viene reindirizzato al Captive Portal per l’autenticazione cercando di accedere ad una pagina in HTTPS, anche se attendibile, gli verrà notificato che il certificato del sito non è sicuro. Se scelto “Disabilita CP su porta 443” il sito risulterà irragiungibile costringendo l’utente a collegarsi ad un sito in HTTP. 7. Pagina dispositivi mobili Per i dispositivi mobili, che presentano difficoltà nel gestire il popup di autenticazione è possibile utilizzare un sistema alternativo come spiegato nella sezione Login Standard (Sez. 9.1.1). 8. Validità autenticatore dispositivi mobili Per i dispositivi per i quali non è previsto l’utilizzo del popup di autenticazione, si può impostare un tempo, in minuti, dopo il quale se il sistema non rileva la presenza della “pagina dispositivi mobili” attiva sul device lo stesso verrà scollegato. 9. Online Viene qui impostato se il Captive Portal è disponibile ad accettare connessioni o se mostrerà un avviso di “fuori servizio”. 10. Servizio aperto Zerotruth permette di impostare l’accesso ad internet in modo completamente aperto, senza bisogno di inserire, da parte dell’utente, i propri dati (Sez. 1). In tal caso verrà memorizzato sul sistema come username il MAC address del device collegato. Tale device sarà comunque sottoposto alle regole impostate nella configurazione dell’autoregistrazione e i dati di collegamento registrati nell’accounting del sistema. 11. Popup utenticazione di Zerotruth Il sistema utilizza di default il popup di autenticazione di Zeroshell, pur integrando alcune caratteristiche aggiuntive, ma è possibile impostare un popup alernativo con maggiori funzioni e una grafica omogenea alle altre pagine. 12. Prefisso default Per tutti gli utilizzi telefonici previsi da Zerotruth (autoregistrazione, recupero password ecc.) si può impostare il prefisso nazionale che l’utente troverà impostato ma mofificabile. 27 13. Nome Stanza Per quelle situazioni dove è utile impostare anche l’appartenenza ad un determinato locale, per esempio una scuola (classe) o un albergo (camera), inserendone il nome nel form sarà poi possibile utilizzarla nella registrazione degli utenti e comparirà nelle tabelle di visualizzazione degli stessi e nel form di ricerca. 14. Prefisso Username Oltre alla normale registrazione Zerotruth permette di inserire velocemente gruppi anche numerosi di utenti (Sez. 5.1.2).. Può essere utile in tal caso impostare un prefisso (es. alunnno, cliente, socio...) in modo che gli utenti verranno registrati come, ad esempio, “alunno001”, “alunno002”, “alunno0n”. 15. Blocca l’utente dopo login errati Se impostato questo controllo un utente del Captive Portal viene bloccato se tenta di collegarsi con credenziali non valide e viene sbloccato dopo i minuti scelti. 16. Disconnetti se inattivo Possono essere impostati i minuti dopo i quali un utente, se non esegue nessuna operazione, verrà scollagato dal sistema. 17. Abilita tabella utenti veloce Se non necessita una visualizzazione completa nella tabella degli utenti si può impostare questa scelta. La tabella che di default verrà mostrata risulterà più veloce nella visualizzazione e dalla stessa comunque sarà possibile passare alla tabella completa. 18. Abilita Popup Il popup di comunicazione agli utenti impostabile dalla sezione apposita (Sez. 9.3) può essere abilitato o disabilitato velocemente anche da qui. 19. Abilita Walled Garden Il Walled Garden, impostabile dalla sezione apposita (Sez. 9.2), può essere abilitato o disabilitato velocemente anche da qui. 20. Abilita Recupero Password Dalla pagina di login del Captive Portal è possibile recuperare la propria password, qui si può disabilitare o abilitare la funzione. 21. Visualizza MB Può essere abilitata o disabilitata la visualizzazione, nel popup di autenticazione del Captive Portal, del traffico generato. 22. Visualiza costo Può essere abilitata o disabilitata la visualizzazione, nel popup di autenticazione del Captive Portal, del costo di connessione. 23. Visualiza MB alla disconnessione Se viene utilizzato il popup di autenticazionedi Zerotruth l’utente viene avvisato, se il suo profilo prevede dei limiti di traffico, dell’imminente disconnessione se gli rimane la quota di MB qui impostata. 24. Visualiza minuti alla disconnessione Se viene utilizzato il popup di autenticazionedi Zerotruth l’utente viene avvisato, se il suo profilo prevede dei limiti di tempo, dell’imminente disconnessione se gli rimangono i minuti qui impostati. 28 25. Avvisa l’utente se Internet è down Se scelta questa opzione nel caso risultasse non disponibile la connessione ad internet l’utente verrà avvisato. Nel caso il sistema utilizzi una Key GMS e Gammu (Sez. 4.28.2), si potà anche impostare la spedizione di un avviso via SMS all’amministratore. 26. Abilita immagine al login La visualizzazione dell’immagine al login, che serve per possibili comunicazioni agli utenti, impostabile dalla sezione apposita (Sez. 9.4) può essere abilitata o disabilitata velocemente anche da qui. 27. URL di reindirizzamento con codice QR È permesso l’accesso al sistema anche utilizzando un codice QR (Sez. 6.2). In tal caso si può impostare qui il reindirizzamento che l’utente avrà dopo l’accesso. 28. Abilita login con scelta lingue Un utente del Captive Portal può scegliere con quale lingua accedere al sistema e avere gli avvisi. Qui si può abilitare o meno tale la possibilità. 29. Template Zerotruth mette a disposizione un template, lato utente, di default, è possibile comunque creare dei propri template (Allegato B). 4.14 AUTO R EGISTRAZIONE L’autoregistrazione è una delle funzioni più importanti di Zerotruth e di default è ipostata con invio delle credenziali tramite SMS ed email. Può tuttavia essere impostato con modalità diverse. Inoltre si può assegnare all’autoregistrazione limiti e funzioni aggiuntive. Figura 39: Auto Registrazione 1. Abilitazione Servizio 2. Scelta Profilo Gli utenti che si autoregistreranno prenderanno le impostazioni piu importanti dal profilo scelto (Sez. 6). 29 3. Registrazione con Asterisk Zerotruth permette di autoregistrarsi appoggiandosi ad un PBX Asterisk per le varie configurazioni fare riferimento alla Sez. 4.14.1. 4. Consenti Registrazione con Social Network È possibile autoregistrarsi con le credenziali dei più comuni Social Network (Sez. 9.4.2). 5. Username automatico uguale al cellulare Il sistema genera automaticamente l’username dell’utente ma si può prevedere che sia uguale al numero di telefono inserito al momento della registrazione. 6. Consenti nuova registrazione una volta scaduto Se un utente ha superato il numero di ore massime di connessione o il numero di MB massimo previsto dal suo profilo oppure se ha superato la data di scadenza viene disabilitato. I suoi dati comunque rimaranno nel datadase e pertanto non potrà registrarsi nuovamente. Se viene scelta questa opzione l’utente potrà nuovamente registrasi superando il blocco. 7. Invia password con email Per una ulteriore sicurezza non viene mandata la password all’utente tramite email. In alcuni casi può essere deciso di superare tale limitazione. 8. Blocca nuova registrazione da MAC address per minuti Per scoraggiare gli eventuali tentativi massicci di autoregistrazione si può utilizzare questa opzione. 9. Da Ticket Si può impostare Zerotruth affinché accetti autoregistrazioni solamente da utenti che hanno ricevuto un ticket con l’ username già impostato (Sez. 9.4.5). 10. Disabilita Email Zerotruth manda con una email dati aggiuntivi sulla registrazione, qui si può gestire la funzione. 11. Scadenza Si può impostare la data dopo la quale l’utente verrà etichettato come “scaduto” e non potrà più collegarsi. In alternativa è possibile fisare la scadenza in un numero di giorni dalla prima autenticazione. 12. Limite Orario Il limite massimo di ore per giorno e per mese viene visualizzato in base al profilo scelto. 13. Limite Traffico Il limite massimo di MB per giorno e per mese concesso all’utente viene visualizzato in base al profilo scelto. 14. Giorni I giorni permessi all’utente per utilizzare il servizio viene visualizzato in base al profilo scelto. 15. Orario Le due fascie orarie giornaliere nelle quali l’utente potrà utilizzare il servizio vengono visualizzate in base al profilo scelto. 30 4.14.1 R EGISTRAZIONE CON A STERISK Zerotruth permette di autoregistrarsi in diversi modi e, per poter avere un controllo dell’identità dell’utente, utilizza la spedizione tramite SMS delle credenziali. Cosı̀ facendo è possibile verificare che l’utente autoregistrante abbia inserito dati corretti o, quantomeno, poter risalire allo stesso tramite il contratto che ha stipuato con la compagnia telefonica in caso di illeciti. Gli SMS possono essere spediti tramite un servizio da web (già integrati nel sistema), tramite una key o un telefono, collegati via USB, o un gatewey GSM. In ogni caso il servizio fa assumere al gestore un costo che puo’ essere anche significativo se utilizzato da numerosi utenti. Dalla versione 2.1 Zerotruth permette di avere lo stesso grado di affidabilità nella gestione dell’autoregistrazione, e del recupero password, utilizzando un PBX Asterisk per la verifica dell’autenticità dell’utente senza nessun costo per il gestore del Captive Portal. C ONFIGURAZIONE Z EROTRUTH La configurazione di Zerotruth è molto semplice: Figura 40: Attivazione registrazione con Asterisk Nella pagina di configurazione dell’autoregistrazione: 1. spuntare il checkbox “Registrazione con Asterisk” per abilitare il servizio; 2. scegliere una password, che poi sarà utilizzata da Asterisk per comunicare con Zerotruth in sicurezza; 3. impostare il limite di tempo concesso per attivare la registrazione dopo il quale, se non attivato, l’utente sarà rimosso dal sistema; 4. inserire il numero di telefono da chiamare per l’attivazione; 5. inserire il numero di telefono da chiamare per il recupero della password. 13 13 Il numero di telefono per l’attivazione dell’account e per il recupero della password possono essere gli stessi 31 C ONFIGURAZIONE A STERISK Zeroshell, con l’addon 40600, permette di installare Asterisk 13.3.2 il quale, tra le molteplici funzioni che possiede, consente di eseguire degli scripts (agi-bin) attraverso i comandi inviati dal chiamante. Basterà impostare il file di configurazione “extensions.conf ” in modo tale che ricevendo una chiamata ad un determinato numero esegua il nostro script. Si potrà ovviamente utilizzare un server Asterisk installato su un’altra postazione e in tal caso dovrà poter comunicare con la postazione Zerotruth che potrà essere raggiungibile se la stessa è nella medesima LAN, oppure ha un IP pubblico o in VPN o in altri modi dipendenti dalla configurazione della rete. Se Asterisk interagisce con una sola postazione Zerotruth possiamo fare in modo che esegua il comando di conferma senza rispondere all’utente e quindi evitando una spesa per lo stesso. In questo caso sarà necessario impostare l’“extensions.conf ” (nell’add on di Zeroshell è posto in “/opt/asterisk/etc/asterisk/ ” ) e il nostro script ( posto in “/opt/asterisk/var/lib/asterisk/agi-bin/ ”) che andrà a collegarsi alla postazione Zerotruth, nel seguente modo: Figura 41: Configurazione Asterisk e script per sbloccare l’utente Nel nostro esempio il comando sarà: “curl http://IP ZEROTRUTH:8089/cgi-bin/unlockasterisk.sh?C=$1+gtTYR65fgt” L’utente verrà abilitato, se chiamerà con il numero di telefono inserito al momento della registrazione, senza avere nessun rimando, se non un seplice “ring”, e quindi dovrà essere avvertito di questo nelle informazioni di post registrazione. Se si vuole che l’utente abbia una conferma anche telefonica (negli esempi sono state utilizzate le googletts-agi per la lettura dei messaggi) del successo o meno dell’abilitazione si dovrà impostare la configurazione come segue. Figura 42: Configurazione Asterisk e script per sbloccare l’utente 32 Se Asterisk deve interfacciarsi con più postazioni Zerotruth si procederà come nel seguente esempio: Figura 43: Configurazione Asterisk e script per sbloccare l’utente Assegnando ad ogni postazione Zerotruth un codice (“xxx” ,“yyy”, ...“zzz”) diverso che dovrà essere inserito dall’utente. Per il recupero della password da parte dell’utente si utilizzeranno, se vengono configurati numeri telefonici diversi per l’autoregistrazione e per il recupero password, configurazioni uguali modificando il comando dello script in: “curl http://IP ZEROTRUTH:8089/cgi-bin/forgotasterisk.sh?C=$1+gtTYR65fgt” Oppure se si utilizzerà uno stesso numero si dovrà modificare gli script come nell’esempio seguente: Figura 44: Configurazione Asterisk e script per sbloccare l’utente Tutte le configurazioni, se si utilizza Asterisk installato sulla stessa postazione, possono essere eseguite anche direttamente da GUI (Sez. 4.5). 4.14.2 R EGISTRAZIONE CON SMS Se come servizio SMS si utilizza Gammu (Sez. 4.28.2) comparirà nelle possibilità di configurazione dell’ autoregistrazione “Consenti registrazione completa con invio sms”. Figura 45: Registrazione completa con invio SMS Se scelta tale opzione l’autoregistrazione risulterà molto veloce per l’utente come descritto nella Sez. 9.4.4. 33 4.14.3 R EGISTRAZIONE CON T ICKET Si può optare anche per l’autoregistrazione vincolata alla consegna precedente di un ticket prestampato. Figura 46: Registrazione con Ticket Se nella configurazione dell’autoregistrazione si sceglie “Da Ticket” l’impostazione verrà poi utilizzata dall’utente come descritto nella Sez. 9.4.5. 4.15 AVVISI La pagina permette di inserire i vari avvisi agli utenti. Figura 47: Avvisi Ogni campo serve semplicemente ad inserire le informazioni relative alla propria “etichetta” che saranno utilizzate dal sistema nelle varie pagine o funzioni. 34 4.16 B IGLIETTO La pagina permette di impostare con quale dati verranno stampati i biglietti degli utenti. Figura 48: Impostazione Biglietto In alcune situazioni, come ad esempio dopo una ricerca, nell’inserimento di più utenti con la funzione “Multi”, o con l’inserimento da file o per per l’autoregistrazione da ticket si può scegliere quanti biglietti stampare per pagina, in base a come sono configurati, per ottimizzare il consumo di carta. Figura 49: Esempio biglietti 35 4.17 PAY PAL Zerotruth permette di creare dei profili di connessione dove è previsto un pagamento anticipato, per MB o ore di utilizzo. Il credito registrato consentirà all’utente di utilizzare il servizio e bloccherà lo stesso al suo esaurimento. La funzione di pagamento è stata introdotta in Zerotruth1.0.beta2 attraverso PayPal che consente il pagamento tramite carta di credito e l’istantanea notifica dell’avvenuto accredito (IPN). 4.17.1 C ONFIGURAZIONE Z EROTRUTH Per poter accedere al sito di PayPal durante l’autoregistrazione, dove non si è ancora autenticati, necessita ovviamente di non essere bloccati dal firewall, come avviene prima dell’accesso tramite Captive Portal. PayPal non ha un range di IP fissi e quindi è impossibile consentire l’accesso esclusivo agli stessi da parte dell’utente che si sta registrando per cui, come compromesso, si deve consentire l’accesso al solo registrante, in https per il tempo necessario. Si è scelto di poter impostare per quante volte e per quanti secondi è consentito ad un utente di completare l’auto-registrazione, prima di venir bloccato definitivamente. La pagina imposta, se il profilo dell’autoregistrazione è PrePaid i parametri per il pagamento tramite PayPal. Figura 50: Impostazione PayPal Nel form si deve inserire: - il pulsante che andremo a creare sul sito di PayPal; - l’avviso di Post pagamento; - il numero di tentativi possibili per effettuare l’auto-registrazione; - il numero di secondi che il sistema consente di accedere in https; - il GMT, in quanto l’IPN di PayPal ritorna l’orario GMT -9. Se un utente viene bloccato, per l’eccessivo numero di tentativi, l’amministratore può sbloccarlo scegliendolo dal campo “Libera MAC”. IMPORTANTE: PayPal invia l’IPN solamente tramite la porta 80 o 443 quindi si dovrà trovare il modo per ridirigere la porta scelta sul sito di PayPal sulla porta 8088 di una interfaccia di Zerotruth. 36 4.17.2 C ONFIGURAZIONE PAYPAL Dopo l’autenticazione sul sito di PayPal, scegliere dal menu “Strumenti vendita” “Preferenze venditore”. Figura 51: PayPal Strumenti vendita Si accederà in tal modo al menu dove potremo impostare tutte le opzioni necessarie. Figura 52: PayPal Gestione pulsanti di pagamento 1. PULSANTE PAYPAL Per prima cosa si dovrà creare il pulsante da incollare nel form riportato precedentemente. Figura 53: PayPal impostazione pulsante pagamento 37 Figura 54: PayPal codice pulsante pagamento Una volta creato copiare il codice in Zerotruth. 2. RITORNO AUTOMATICO Inserire l’indirizzo “http://yy.yy.yy.yy:8088/cgi-bin/register.sh” dove “yy.yy.yy.yy” rappresenta l’IP dell’interfaccia del nostro Captive Portal. Figura 55: PayPal Ritorno automatico al sito 3. IPN Inserire l’indirizzo “http://yy.yy.yy.yy/cgi-bin/controlpp.sh” dove “yy.yy.yy.yy” rappresenta l’IP pubblico che verrà reindirizzato ad un IP della nostra postazione sulla porta 8088. Figura 56: PayPal Ritorno automatico al sito A questo punto se nella configurazione del Captive Portal in Zerotruth si sceglie per l’autoregistrazione un profilo prepaid, o esiste almeno un profilo registrato prepaid, oltre ad essere attivato il servizio PayPal, nella schermata di autenticazione comparirà il link “Carica Credito” necessario, nel caso di esaurimento dello stesso, per potersi nuovamente autenticare da parte di un utente precedentemente registrato. 38 Figura 57: Login con “Carica Credito” Figura 58: Login per “Carica Credito” Dopo aver inserito le proprie credenziali sarà possibile scegliere le opzioni di pagamento tramite il “pulsante” precedentemente inserito. Figura 59: “Carica Credito” Al termine si verrà avvisati dell’avvenuto pagamento e del credito disponibile. La stessa procedura avverrà nel processo di auto-registrazione. Una volta autenticato l’utente potrà incrementare il proprio credito utilizzando il link che comparirà nel popup di autenticazione. I pagamenti ricevuti, oltre naturalmente essere visibili nel nostro account sul sito di PayPal, vengono memorizzati in Zerotruth e sono gestibili nella sezione apposita (vedi capitolo successivo), dove verrà riportato anche l’ID della transazione. 39 Figura 60: Avviso post pagamento Figura 61: Popup con “Carica Credito” Se un utente non completa l’auto-registrazione o il “Carica Credito” nei tempi stabiliti verrà bloccato e avvisato. Figura 62: Avviso blocco MAC 40 4.18 PAGAMENTI La pagina visualizza e gestisce i pagamenti tramite PayPal e alla cassa. Figura 63: Gestione pagamenti Si possono ordinare i pagamenti in ordine alfabetico per utente, eliminarli e ricercare i pagamenti di un solo utente cliccando sul nome relativo. Figura 64: Pagamenti singolo utente 41 4.19 L IBERI / BLOCCATI Alcune postazioni o servizi possono avere la necessità di non essere intercettati dal Captive Portal e quindi potersi collegare liberamente alla rete, oppure altre postazioni devono essere bloccate e non lasciate in alcun caso collegarsi, da questa pagina è possibile gestire tali situazioni. Figura 65: Blocco/sblocco servizi e utenti Una postazione si può “liberare” attraverso l’immissione del suo ip, del MAC address o di entrambi. Un servizio si può “liberare” attraverso l’immissione del suo ip, della porta ed eventualmente del protocollo utilizzato. Una postazione si può “bloccare” attraverso l’immissione del suo MAC address . 42 4.20 WALLED G ARDEN Un Walled Garden è una pagina web, o delle pagine web, che l’utente può liberamente visualizzare prima di essersi autenticato e verso la quale è automaticamente indirizzato. Se l’utente cerca di collegarsi ad altri siti verrà rediretto dal sistema alla pagina di autenticazione. La funzione può essere utile in quelle installazioni dove si vuole permettere all’utente di potersi collegare a delle pagine informative, per esempio il sito web di un comune o di una scuola, e solamente se desidera altri servizi obbligarlo ad autenticarsi. Zerotruth permette di impostare due tipi di Walled Garden: uno interno al sistema ed uno, collegandosi ad una postazione remota di cui si conosca l’ indirizzo IP, esterno. 4.20.1 WALLED G ARDEN I NTERNO Figura 66: Walled Garden interno Il gestore del servizio può comporre la propria pagina importando le immagini tramite GUI. La pagina è liberamente trasformabile tranne le funzioni in javascript contenute ed è possibile visualizzarne un’anteprima per un maggiore controllo. 43 4.20.2 WALLED G ARDEN R EMOTO Figura 67: Walled Garden Remoto Per impostare un Walled Garden remoto si dovranno compilare tutti i campi come descritto nella figura permettendo in tal modo all’utente di poter visualizzare tutte le pagine, e solo quelle, del sito scelto. Con il link “Controlla” è possibile avere un’anteprima del sito impostato per un controllo maggiore. Figura 68: Controllo Walled Garden Remoto 44 4.21 P OPUP Figura 69: Impostazione Popup Il Popup impostabile in Zerotruth è un riquadro che si apre automaticamente per pubblicizzare, ad esempio, un evento o la struttura che ospita il sistema. Come il Walled Garden può mostrare una pagina interna al sistema o un sito remoto. La configurazione permette inoltre di obbligare l’utente ad abilitarne nel proprio browser la visualizzazione per accedere al servizio, di mostrarne solo uno all’accesso o ad ogni rinnovo dell’autenticazione, impostare l’orario e le misure. Con il link “Controlla” è possibile avere un’anteprima di quanto configurato. 45 4.22 I MMAGINE L OGIN Si può impostare una o più immagini che compariranno all’utente prima di poter effettuare il login. Figura 70: Impostazione Immagine Login Dopo aver caricato le immagini si può scegliere il tempo di visualizzazione e l’immagine specifica, o random, da mostrare. La visualizzazione delle immagini al login è meno invasivo dell’attivazione del popup visto nella precedente sezione e ai fini informativi probabilmente più utile. 46 4.23 FACEBOOK L IKE Si può obbligare gli utenti a lasciare un Like su una propria pagina di Facebook per poter utilizzare il servizio senza essere continuamente disturbati dal popup di richiesta. Prima di tutto bisogna recuperare un proprio “Plugin Code” dal sito di sviluppo di Facebook (https://developers.facebook.com) seguendo i seguenti passi: 1. Spostarsi nella pagina relativa. Figura 71: Link Like su Button 2. Proseguire con il link “Like Box” Figura 72: Link Like Box 2. Compilare il form per ricevere il codice. Figura 73: Form Like Button 2. Recuperare i dati da inserire in Zerotruth. Figura 74: Form Like Button 47 Su Zerotruth è sufficiente cambiare nello script le parti segnate: Figura 75: Impostazione Like su Facebook 1. appId : XXXXXXXXXXXXXX, sostituendo le X con l’ID assegnato. 2. js.src = /connect.facebook.net/it IT/sdk.js#xfbml=1&appId=XXXXXXXXXXXXXXX&version=v2.0; sostituendo le X con l’ID assegnato. 3. data-href=ḧttps://developers.facebook.com/docs/plugins sostituendolo con l’indirizzo della pagina alla quale si vuole assegnare i Like. 48 4.24 P ROXY Il sistema permette di utilizzare Squid e Havp-ClamAV anche abbinandoli tra loro. Inoltre può essere attivato il Content Filtering DansGuardian. L’attivazione del proxy può richiedere anche un minuto pertanto conviene attendere e dare un refresh della pagina per controllare se il proxy è regolarmente in funzione. Per il corretto funzionamento del sistema le operazioni di configurazione devono essere effettuata dalla GUI di Zerotruth installando Squid e DansGuardian, se necessitano, dalla stessa, infatti le versioni dei due programmi non sono compatibili con quelle disponibili da Zeroshell. Figura 76: Configurazione Proxy 4.24.1 S QUID Squid è forse il più noto “proxy server” ed è molto utile per ottimizzare i collegamenti ad Internet, infatti memorizza in una cache tutte le richieste HTTP 14 effettuate e le ripropone molto velocemente alle successive richieste. 14 Squid non può intercettare il protocollo HTTPS. 49 Diventa quindi quasi indispensabile in quelle situazioni, come le scuole, dove le connessioni simultanee agli stessi siti Web sono prevalenti e la banda di collegamento spesso scarsa. Zerotruth permette da GUI di configurare le caratteristiche essenziali di Squid, tra le numerosissime presenti nel programma, compresa la memorizzazione nei Log di sistema dei collegamenti effettuati comprensivi dei siti visitati. Va tenuto presente che tale possibilità può essere contraria alle leggi sulla privacy se non comunicata ed accettata dagli utilizzatori. 4.24.2 DANSGUARDIAN DansGuardian è un software per filtraggio dei contenuti web e lavora come servizio accessorio di un proxy.15 Il filtraggio è attuato usando molti metodi, quali l’analisi dell’URL e del dominio, del contenuto testuale, delle immagini, del contenuto MIME, dell’estensione del file. È in grado di controllare liste anche molto grandi di domini, URL, parole o frasi correlate alla pornografia e non solo. Da GUI è possibile configurare le caratteristiche basilari tenendo presente che il “Filter Level” sarà più selettivo con valori bassi e si dovranno fare delle prove per testare l’adeguatezza alle norme della struttura che ospita il Captive Portal. 4.24.3 H AVP +C LAMAV Zerotruth utilizza Havp e ClamAV come antivirus centralizzato sulle pagine web e filtraggio dei contenuti già disponibile in ogni installazione di Zeroshell. Pe un approfondimento si rimanda alla documentazione dettagliata presente sul sito di Zeroshell (Web Proxy Trasparente con Antivirus e Blacklist degli URL). 15 Dansguardian non è attivabile se non insieme, nel nostro caso, a Squid e/o Havp. 50 4.25 S HAPER Zerotruth dipone di uno “shaper”, uno strumento che permette di limitare il traffico che passa per una determinata interfaccia. Questa funzione è prevista sui sistemi GNU/Linux dal kernel che consente di limitare il traffico in ingresso ed in uscita per una o più interfacce di rete. Per rendere più semplice il traffic shaping Zerotruth utilizza, adattandolo, l’ottimo script CBQ.init. La pagina consente di attivare lo shaping e una volta inseriti nei Profili (Sez. 6) i limiti di banda ne visualizza e aggiorna costantemente il funzionamento. Figura 77: Attivazione e visualizzaione Shapping Le tabelle riportano, dividendole, le connessioni attribuite ai profili o ai singoli utenti. 51 4.26 B LOCKER I sistema permette di attivare e gestire un sistema per bloccare tentativi di intrusione e pubblicità indesiderata. 4.26.1 IP B LOCKER Nella sezione Blocker Zerotruth consente di inserire un numero di tentativi falliti di accesso alla GUI di amministrazione o in SSH dopo i quali un IP viene bloccato. Viene permesso anche di marcare un IP come fidato che non sarà soggetto al controllo. Figura 78: Configurazione IP Blocker e Ad Blocker 4.26.2 AD B LOCKER La seconda parte della pagina invece offre la possibilità di attivare e aggiornare un AD Blocker di molti siti solitamente indesiderati. L’aggiornamento dell’elenco dei siti indesiderati può avvenire manualmente o programmato per giorno, settimana o mese. 52 4.27 E MAIL Il servizio di invio email messo a disposizione da Zerotruth si deve appoggiare ad un server di posta elettronica con SMTP per inviare i messaggi. In base al servizio che si vuol utilizzare si dovranno impostare opportunamente i vari parametri. Di default Zerotruth è configurato per utilizzare Gmail come Realy Server e, in questo caso, basterà unicamente inserire il proprio indirizzo di posta elettronica e la propria password lasciando invariati gli altri dati. Figura 79: Configurazione Email Il Form consente anche di inserire una intestazione e un footer che compariranno in tutte le email inviate. Molte comunicazioni con gli utenti avvengono in modo automatico attraverso l’invio di una email, come al momento della registrazione o di un aggiornamento. Se non si vuole che ciò avvenga deselezioneare “Notifiche utente”. Il servizio di posta elettronica è inoltre importante per il Backup di sistema e per gli avvisi all’amministratore. 53 4.28 SMS L’ invio di SMS si deve normalamente appoggiare ad un servizio SMS da WEB offerto da numerosi provider. Figura 80: Configurazione SMS Zerotruth è già configurato per utilizzare alcuni dei più noti ed affidabili servizi presenti in rete: • Skebby • Mobyt • Smsglobal • Aimon • Subitosms • Smsbiz Se il servizio scelto lo permette si potrà anche visualizzare il credito residuo e il numero di SMS ancora disponibili. Zerotruth utilizza la spedizione di SMS in numerose funzioni ed è indispensabile, se non si utilizza Asterisk (Sez.1), per l’autoregistrazione degli utenti. Oltre all’autoregistrazione il servizio SMS è utilizzato per: • Recupero password • Notifiche agli utenti (se selezionato il relativo check box) • Notifiche all’Amministratore Esiste anche la possibilità di utilizzare un proprio Gateway GSM, una Key GSM o un telefono USB per essere completamente autonomi e non sottostare ad eventuali scollegamenti da Internet. 54 4.28.1 MY SMS SCRIPT Nel caso si volesse disporre di uno script personalizzato per il servizio SMS è possibile utilizzare la funzione “my SMS script”. Figura 81: Configurazione my SMS script Lo script può essere composto direttamente da GUI utilizzando il Form proposto e utilizzando le variabili già assegnate visualizzabili nelle righe commentate dello stesso. 55 4.28.2 G AMMU Per utilizzare una propria Key GSM oun telefono USB Zerotruth si avvale del supporto di “Gammu”. Gammu è un’utility da riga di comando per gestire molti modelli di device GSM. Figura 82: Configurazione Gammu Per configurare adeguatamente il device fare riferimento alle tabelle presenti sul sito WEB di Gammu, in particolare accertarsi di riportare correttamente il parametro di connessione. Se di ha un solo device USB la porta dovrebbe esere “/dev/ttyUSB0” altrimenti accertarsi tramite i comandi “lsusb” e/o “dmesg” di come il sistema “mappi” il device. Se la configurazione va a buon fine la pagina dovrebbe riportare il corretto device e lo status positivo, e si potrà utilizzare per inviare gli SMS come nelle configurazioni precedenti. In vantaggio di utilizzare una Key GSM sta nel fatto che, ovviamente, non risente di un eventuale scollegamento dalla rete Internet e potrà quindi, ad esempio, inviare alert all’amministratore. Un’altra importante funzione che consente l’utilizzo di Gammu è quella di poter ricevere degli SMS e quindi essere utilizzato sia per l’autoregistrazione degli utenti, come già descritto nella sezione dell’autoregistrazione, sia ricevere comandi per il sistema. Utilizzando il Form proposto nella pagina si può preparare un proprio script che, utilizzando le variabili già assegnate, esegua dei comandi ed eventualmente invii all’amministratore delle risposte. 56 4.29 M ULTI CP Il sistema permette di gestire, in modo centralizzato, dei Captive Portal remoti con tutte le funzioni di Zerotruth e non solamente per l’autenticazione Radius già disponibile in Zeroshell. Figura 83: Configurazione MultiCP Per realizzare l’infrastruttura è necessario che tutte le postazioni 16 siano dotate di Zeroshell e Zerotruth. Una volta installato Zerotruth è possibile abilitarne la funzione “server” o “client” dopo aver permesso il collegamento delle varie postazioni. Per maggior sicurezza si consiglia di collegare i vari sistemi tramite una VPN a “stella” che risulta essere facilmente implementabile dall’interfaccia di Zeroshell. Dalla postazione “server” sarà possibile gestire completamente tutte le postazioni come se si trattasse di un unico Captive Portal rendendo molto agevole il mantenimento del servizio offerto, ad esempio, da scuole con sedi distaccate, servizi comunali sul territorio o catene di esercizi commerciali. Figura 84: MultiCp: aggiornamento Client Figura 85: MultiCP lato client Per la completa trattazione dell’argomento è disponibile il manuale ZT MultiCP.pdf . 16 Dalla versione 3.0 Zerotruth supera il limite delle 6 postazioni massime. 57 4.30 B ACKUP I backup possono essere scaricati immediatamente o resi automatici con cadenza giornaliera, settimanale o mensile 17 con modalità diverse anche combinate tra di loro. Inoltre è possibile cancellare al termine della spedizione dei backup, o dell’immediato download, i log di sistema e gli utenti eliminati 18 per poter recuperare dello spazio sul disco nel caso si ritenga opportuno. Figura 86: Configurazione Backup 4.30.1 B ACKUP CON EMAIL Se viene configurato e abilitato il servizio email inviare i backup attraverso questo canale risulta molto semplice e non necessita di nessun altro tipo di configurazione. I backup verranno inviati all’Amministratore in formato compresso “tgz”. 4.30.2 B ACKUP CON FTP Inviare i backup ad un server remoto attraverso un collegamento FTP necessita, ovviamente, di avere un account su di esso e inserire le proprie credenziali sul form proposto allo scopo. 17 I backup verranno inviati alle ore 00:01:00 ogni giorno, se viene scelta la cadenza giornaliera, o ogni lunedı̀, se viene scelta la cadenza settimanale, o il primo giorno del mese se viene scelta quella mensile. 18 Si ricorda che gli utenti eliminati dal dabtabase vengono archiviati in una apposita directory per non perdere i loro dati di accountig. 58 4.30.3 B ACKUP CON D ROP B OX Se si utilizza Dropbox è necessario registrare su “https://www.dropbox.com/developers/apps” una nostra applicazione e consentire a Zerotruth di potersi interfacciare per caricare il backup. La prima volta che si utilizzerà questa modalità Dropbox chiederà a Zerotruth il permesso di utilizzo che dovrà essere concesso. Figura 87: Conferma accesso a Dropbox 4.30.4 B ACKUP CON SCP Una valida alternativa per eseguire i backup consiste nell’utilizzare un canale sicuro, attraverso il protocollo SSH, con il programma SCP. Se viene utilizzato questo sistema verrà creata automaticamente la chiave pubblica e privata per poter consentire la comunicazione tra il sistema e il server remoto senza dover, come nei normali collegamenti SSH, autenticarsi con una password mantenendo lo stesso grado di sicurezza. Il sistema consiste nell’inserire una chiave pubblica, generata con quella privata che risiederà su Zerotruth, all’interno della configurazione del server remoto. In tal modo ad ogni connessione utilizzando il protocollo SSH verrà controllato se la nostra chiave privata e quella pubblica fanno parte della stessa coppia e, in caso positivo, l’accesso al sistema sarà consentito senza chiedere altre autenticazioni. Tale modalità di autenticazione è molto sicura infatti trovare una chiave privata partendo da una pubblica è praticamente impossiile e certamente molto più complicato di trovare una password. Figura 88: Backup con SCP Viene mostrata, al termine della configurazione, attraverso il link “SSH Key” la chiave pubblica da inserire sul server remoto, eventualmente aggiungendola su una nuova riga a quelle già presenti, nel file “/home/USER REMOTE/.ssh/authorized keys” o “/root/.ssh/authorized keys” se si imposta un collegamento con le credenziali di “root” . Se il file “authorized keys” non esiste si dovrà crearlo e successivamente, dalla Shell di Zeroshell, collegarsi in SSH per la prima volta al server remoto in modo da memorizzarlo tra gli hosts conosciuti e fidati. In questa fase, non avendo ancora copiato la chiave pubblica e non avendo ancora effettuato un primo collegamento in SSH con il server remoto, il sistema segnalerà la mancata connessione sicura con un “bollino rosso”. Per copiare la chiave pubblica sul server remoto si può utilizzare un modo più semplice descritto nella prossima pagina. 59 Per facilitare l’operazione Zerotruth mette a disposizione lo script “ssh-copy-id”, opportunamente modificato, che si deve eseguire dalla Shell di Zeroshell comprensivo di “path” . “/DB/apache2/cgi-bin/zerotruth/scripts/ssh-copy-id” Figura 89: Esportazione chiave pubblica Se il procedimento avrà esito positivo verrà riportato altrimenti verrà segnalato l’errore. Tornando alla GUI di Zerotruth e ricaricando la pagina della sezione backup verrà ora visualizzato il collegamento sicuro attivato e la possibilità di controllare i backup effettuati sul server remoto.19 Figura 90: Visualizzazione collegamento SSH sicuro Figura 91: Controllo Backup effettuati Da quest’ultima pagina è possibile cancellare singoli backup remoti, esegure un download o ripristinarli attraverso i link delle relative icone. 19 Ad ogni apertura, o refresh, della pagina il sistema invia un file al sistema remoto per essere certi dell’effettivo funzionamento segnalando quindi lo stato reale del collegamento. 60 4.30.5 R IPRISTINO B ACKUP Inoltre è possibile aggiornare o ripristinare il sistema caricando un backup, della stessa versione attualmente installata 20 , precedentemente salvato o, se utilizzato SCP come canale di trasmissione, come già visto nella Sez. 4.30.4. , Figura 92: Scelta backup da caricare Dopo aver scelto il backup da caricare si potranno fare ulteriori scelte per ripristinare anche singole parti dello stesso. Figura 93: Scelta sezioni di backup Al termine dell’operazione verrà visualizzato il corretto o meno caricamento di ogni singolo elemento. Figura 94: Visualizzazione esito caricamento backup 20 Per gli importanti cambiamenti strutturali che ogni versione di Zerotruth ha avuto fino alla versione 3.0 si è scelto di non permettere il caricamento di backup da versioni precedenti. Probabilmente nelle prossime versioni questo limite verrà rimosso . 61 4.31 C ONTROLLO CAPACIT À DISCO Soprattutto quando il sistema è installato su device embedded può essere importante tenere sotto controllo la capacità residua del supporto di memorizzazione dei dati. Figura 95: Configurazione Avviso MB liberi Hard Disk Oltre a mostare la capacità e i MB ancora disponibili Zerotruth permette di essere avvisati, tramite SMS o email se opportunamente configurati, nel caso venga superata una determinata soglia e anche di eliminare i LOG di sistema che possono occupare notevole spazio. 4.32 G RAFICI Vengono messi a disposizione diversi grafici per il controllo del sistema, alcuni relativi all’utilizzo delle risorse, CPU, RAM e rete, altri all’utilizzo del Captive Portal. Il grafico relativo all’utilizzo della CPU viene aggiornato in tempo reale. Figura 96: Grafico utilizzo CPU 62 Il grafico relativo all’utilizzo della RAM viene aggiornato in tempo reale. Figura 97: Grafico utilizzo RAM Il grafico relativo all’utilizzo della rete viene aggiornato in tempo reale. Figura 98: Grafico utilizzo rete I grafici relativi all’utilizzo del Captive Portal vengono aggiornati alle ore 00.01 di ogni giorno e mostrano l’utilizzo del sistema sia per ore di collegamento che per traffico in MB. Esiste comunque la possibilità di aggiornarli manualmente dal relativo link presente nella pagina. Figura 99: Grafico utilizzo CP per anni 63 Figura 100: Grafico utilizzo CP per mesi Figura 101: Grafico utilizzo CP per giorni Figura 102: Grafico utilizzo CP per ore 64 Figura 103: Grafico top ten utenti Il grafico “Top Ten” visualizza i 10 utenti che hanno maggiormente utilizzato il Captive Portal sia per ore di connessione che per MB (RX+TX). Figura 104: Scelta range dati È possibile selezionare i dati impostando una precisa fascia temporale per un controllo più accurato. 65 4.33 AGGIORNAMENTI La pagina permette di accedere agli aggiornamenti di Zerotruth che vengono visualizzati, se presenti, con la possibilità di installarli. Figura 105: Aggiornamento Zerotruth Gli aggiornamenti possono essere automatizzati e, se configurato e attivato il servizio email, essere avvisati quando questi avvengono. Figura 106: Post aggiornamento Il processo di aggiornamento mostra, al termine, l’esito dell’operazione. Ogni giorno, ad un orario casuale per ogni singola installazione di Zerotruth 21 viene effettuata la verifica degli aggiornamenti disponibili online ed eventualmente segnalati con un bollino rosso sul bottone “Config” e sul bottone “Aggiorna”. Figura 107: Avviso aggiornamenti disponibili Figura 108: Avviso aggiornamenti disponibili 4.34 U PGRADE La pagina per l’aggiornamento mostrerà, se presente, il possibile “upgrade” ad una versione successiva con la possibilità di effettuarlo da GUI. 22 21 L’orario casuale è stato scelto per non caricare il server di aggiornamento con numerose chiamate contemporanee 22 La versione 2.1 di Zerotruth, per le strutturali modifiche inserite nella versione successiva, riporterà solamante l’avviso e la versione 3.0 dovrà essere installata da “shell”. 66 5 G ESTIONE U TENTI La visualizzazione e la gestione degli utenti registrati avviene nelle pagina “Lista Utenti” e “Aggiungi Utente”. 5.1 AGGIUNGERE UTENTI Abbiamo già visto come Zerotruth permetta l’ autoregistrazione. Esistono altri quattro modi per inserire gli utenti nel database del sistema da parte del gestore. 5.1.1 AGGIUNGERE UN UTENTE La modalità di default consente di aggiungere un utente registrando le carattristiche che lo definiranno. Figura 109: Inserimento utente 1. Il valore del campo “Username” viene proposto automaticamente ma è possibile modificarlo a piacere. 2. Il valore del campo “Password” viene proposto automaticamente ma è possibile modificarlo a piacere e visualizzato ciccando sull’icona occhiali 3. Il valore del campo “Nome” è obbligatorio a meno che non si sia configurato diversamente nella sezione Captive Portal alla voce “Consenti Utenti Anonimi”. 4. Il valore del campo “Cognome” è obbligatorio a meno che non si sia configurato diversamente nella sezione Captive Portal alla voce “Consenti Utenti Anonimi”. 5. Il valore del campo “Email” non è obbligatorio. 6. Il valore del campo “Telefono” non è obbligatorio. Nel caso del suo inserimento dev’essere senza gli zeri o segni iniziali. 7. Il valore imposta il profilo assegnato. Viene proposto di default il profilo “DEFAULT ” che non ha nessun limite per l’utente. 8. Il campo riporta su quale interfaccia è atttivo il profilo. Si vedrà nella sezione Profili (Sez. 6) come sia possibile assegnare agli stessi interfacce diverse. 9. È permesso “nascondere” determinati utenti alla vista, e quindi alla gestione, agli utenti gestori. Se selezionato “Nascosto” soltanto l’amministratore potrà vedere e gestire l’utente. 67 10. I campi relativi alla “Scadenza” impostano la data oltre la quale l’utente verrà definito “Scaduto”. Se non impostato L’utente avrà durata illimitata. 11. Si può impostare una data di scadenza in un numero di giorni dalla prima autenticazione. 12. Se scelto un profilo prepagato si può inserire un credito iniziale. 13. È possibile assegnare all’utente gli unici giorni nei quali può autenticarsi. Se non scelti potrà autenticarsi ogni giorno. 14. Si può limitare la possibilità di autenticazione all’utente in due fasce orarie giornaliere. 15. Si può bloccare l’utente se supera un certo numero di ore di connessione per giorno o mese. 16. Si può bloccare l’utente se supera un certo numero di MB utilizzati nelle connessioni per giorno o mese. 17. È possibile visualizzare e stampare il biglietto per l’utente in tutte le lingue installate in Zerotruth nel formato deciso nella configurazione relativa ai biglietti. 18. Al termine della registrazione il campo consente di inviare all’utente, se inserita l’email e/o il numero di telefono, i dati di registrazione. 19. Talvolta può essere utile inserire delle note relative all’utente. 5.1.2 AGGIUNGERE DIVERSI UTENTI Se si ha la necessità di inserire molti utenti contemporaneamente esite il form relativo attivabile dal link “Multi” della pagina “Aggiungi Utente”. Figura 110: Link per Multi utenti La funzione permette, ad esempio, di stampare diversi biglietti per consegnarli alla reception di un albergo e già caricati di un credito. Figura 111: Link per Multi utenti 1. Numero di utenti da inserire 2. Eventuale prefisso nell’username dell’utente. 3. Inserisce l’eventuale credito nella tabella “Pagamenti” della sezione “Captive Portal”. Al termine del procedimento verranno visualizzati a video, pronti per essere stampati, i biglietti degli utenti. 68 5.1.3 AGGIUNGERE UTENTI DA FILE Se si è in possesso di un file con i dati degli utenti, come ad esempio l’anagrafica di una scuola, si può usare per inserire gli utenti nel database. Il file deve essere in formato puro testo ottenibile con un editor come gedit, nano o notepad. Figura 112: Link per inserimento utenti da file Figura 113: Esempio file da caricare La pagina mostra un avviso sul formato accettato e permette il caricamento del file. Figura 114: Caricamento file Dopo il caricamento verrà visualizzato il form per impostare l’inserimento degli utenti riportandone il numero trovato nel file. Figura 115: Inserimento utenti da file Al termine del procedimento verranno visualizzati a video, pronti per essere stampati, i biglietti degli utenti. 69 5.1.4 AGGIUNGERE UTENTI VINCOLATI AL BIGLIETTO Se nelle impostazioni dell’autoregistrazione viene abilitato “Da Ticket” comparirà anche la possibilità di registrare gli utenti i quali saranno gli unici abilitati ad autoregistrarsi. Figura 116: Link per inserimento utenti vincolati al biglietto Figura 117: Link per inserimento utenti vincolati al biglietto Figura 118: Biglietti per autoregistrazione Si vedrà sezione successiva (Sez. 5.2) come gestire tali utenti. 70 5.2 L ISTA UTENTI Il tipo di visualizzazione delle tabelle che elencano gli utenti inseriti nel sistema viene scelto nella sezione “Captive Portal” (Sez. 4.13) alla voce “Abilita tabella utenti veloce”. Se tale opazione non viene selezionata la visualizzazione degli utenti avverrà in modalità standard altrimenti con una tabella chiamata “veloce” per la rapidità della visualizzazione anche se con meno dettagli. 5.2.1 TABELLA STANDARD La tabella standard consente di visualizzare ed intervenire su molti aspetti degli utenti attraverso i relativi link-bottone e icone. Figura 119: Lista utenti standard 1. La colonna riporta il numero progressivo degli utenti visualizzati che collega ad una scheda dettagliata del singolo utente. Figura 120: Lista utenti standard 71 2. La colonna riporta il numero di sessioni effettuate dall’utente con la possibilità di visualizzarle anche in determinati range di tempo. Figura 121: Lista connessioni utente 3. La colonna riporta gli utenti validi, contrassegnati con una icona verde, e quelli scaduti, contrasssegnati da un’icona rossa. Un utente viene catalogato cone scaduto quando ha superato la data di scadenza, le ore massime di collegamento, i MB massimi che può utilizzare o, nel caso di profili a pagamento, non ha più credito. 4. La colonna riporta se per l’utente sono state inserite delle informazioni aggiuntive, nel qual caso possono essere visualizzate. In alcuni processi tale caratteristica è molto utile in quanto viene visualizzato se l’utente si è autoregistrato, è in attesa di competamento di registrazione (autoregistrazione con Asterisk), ecc. 5. Dall’icona di questa colonna si può eliminare un utente dal database. 6. La colonna riporta gli utenti attualmente collegati. Il link dell’eventuale icona di collegamento consente di disconnettere immediatamente l’utente relativo. Se è abilitata la connessione simultanea e l’utente risulta collegato con due o più device l’icona riporta un punto rosso. Figura 122: Collegamento simultaneo In tal caso il link scollegherà l’utente da tutti i device utilizzati. Se si vuole scollegare l’utente da un solo device è necessario utilizzare il link sul numero delle connessioni che aprirà la pagina relativa. Figura 123: Connessioni utente Per scollegare l’utente da un singolo device si dovrà scegliere il link “Attivo” sulla riga desiderata. 72 7. La colonna riporta gli utenti liberi o bloccati. Un utente può essere bloccato o sbloccato manualmente dal link dell’icona oppure automaticamente dal sistema se ha superato il tempo massimo consentito giornaliero o mensile impostato, i MB utilizzabili giornalieri o mensili impostati, non rientra nell’orario o nei giorni consentiti di collegamento. Superati i limiti impostati un utente bloccato ritorna libero. 8. I’icona matita è un link che porta alla pagina per la modifica dei dati relativi all’utente. Figura 124: Modifica utente Il form, uguale a quello dell’inserimento di un singolo utente, riporta i dati dell’utente, ne permette la modifica, la stampa del nuovo biglietto e l’invio, se scelto, delle nuove credenziali. 5.2.2 L ISTA UTENTI PER AUTOREGISTRAZIONE DA BIGLIETTO Se nella sezione relativa all’autoregistrazione (sez. 4.14) è stata abilitata la funzione “Da Ticket” nella pagina che visulizza la lista degli utenti registrati comparirà il link per gestire tale caratteristica. Figura 125: Link utenti in attesa Figura 126: Gestione utenti in attesa di autoregistrazione È possibile bloccare o sbloccare, eliminare e stampare nuovamente i biglietti per gli utenti in attesa di autoregistrarsi. Dalla stessa pagina, si possono aggiugere altri utenti. 73 5.2.3 R ICERCA UTENTI Nella pagina della lista degli utenti è presente il link per poter effettuare delle ricerche nel database. Figura 127: Link ricerca utenti Figura 128: Form Ricerca utenti Possono essere combinati nella ricerca i diversi campi proposti. La pagina risultante di una ricerca permette di eseguire delle operazioni su gruppi di utenti. Figura 129: Ricerca utenti Le azioni possibili sono: • Elimina Si ricorda che gli utenti eliminati vengono cancellati dal database ma non dal sistema. In tal modo si può recuperare lo “storico” del’utilizzo del Captive Portal e le sessioni effettuate per un eventuale controllo. • Scollega Gli utenti selezionati verranno, se risultano con una connesione attiva, scollegati. • Blocca Gli utenti selezionati verranno bloccati e non potranno collegarsi al Captive Porta; se risultano connessi l’operazione contemporaneamente effettuerà il loro scollegamento. 74 • Sblocca Gli utenti selezionati verranno, se risultano bloccati, sbloccati . • Rendi nascosto Si può rendere nascosto, e quindi visibile e gestibile solo dall’amministratore, il blocco degli utenti selezionati. • Rendi pubblico Si può rendere pubblico, e quindi visibile e gestibile anche dagli utenti gestori, il blocco degli utenti selezionati. • Download sessioni Si può eseguire immediatamente un backup delle sessioni degli utenti selezionati. • Cancella sessioni Si può cancellare dal sistema le sessioni del blocco degli utenti selezionati. Questa operazione comporta la non rintracciabilità dell’utilizzo sul Captive Portal degli utenti interessati e va quindi eseguita con attenzione e dopo aver eseguito un backup delle sessioni registrate sul sistema. • Cambia profilo Si può cambiare profilo, e quindi le caratteristiche di base, degli utenti selezionati. • Cambia gestore Si può cambiare il “proprietario” degli utenti selezionati. • Stampa biglietto 5.2.4 TABELLA VELOCE Se nella confiurazione del Captive Portal viene impostato “Abilita tabella utenti veloce” (Img: 37), la pagina “Lista Utenti” si presenterà nel modo seguente. Figura 130: Tabella veloce La “Tabella Veloce” mostra gli utenti del Captive Portal su tre colonne e con meno dettagli di quella di standard ma nella visualizzazione risulta essere più veloce. È possibile comunque passare alla visualizzazione standard utilizzando l’apposito bottone-link. 75 6 P ROFILI I profili sono delle “categorie” alle quali tutti gli utenti del Captive Portal appartengono sia che vengano inseriti dai gestori nel database sia che si siano autoregistrati attraverso le varie modalità permesse. 6.1 TABELLE P ROFILI Figura 131: Pagina profili I profili inseriti possono essere modificati o cancellati ad esclusione del profilo “DEFAULT ” che rimmarrà come profilo base con nessun limite per l’utente. Se un profilo viene cancellato tutti gli utenti associati allo stesso passeranno al profilo “DEFAULT ”. Il campo “Connessioni simultanee” verrà visualizzato solamente se nella configurazione del Captive Portal (Sez. 4.13)) è stata demandata ai profili la specifica gestione. 76 6.2 AGGIUNGI P ROFILO Il bottone-link “Aggiungi Profilo” porta al form di inserimento di un nuovo profilo. Figura 132: Inserimento profilo I profili definiscono le caratteristiche base degli utenti e i limiti di utilizzo del sistema. Si possono inserire più profili con configurazioni diverse per consentire agli utenti accessi diversi, in una scuola, ad esempio, si possono prevedere profili specifivi per i docenti, gli alunni, la segreteria etc. Il campo “Connessioni simultanee” verrà visualizzato solamente se nella configurazione del Captive Portal (Sez. 4.13)) è stata demandata ai profili la specifica gestione. 6.3 P ROFILO A PAGAMENTO I pagamenti, se impostati, possono essere anticipati o posticipati. Nel caso sia posticipato verrà memorizzato il costo delle connessioni in base al costo per ora o per MB impostati da presentare al cliente al termine, ad esempio, del suo soggiorno in albergo o in un campeggio o quando per i limti del profilo stesso verrà disattivato e avrà necessità di riattivare la connessione. Figura 133: Pagamento posticipato Nel caso sia anticipato si potrà prevedere un tempo libero iniziale durante il quale l’utente potrà incrementare il proprio credito attraverso un pagamento alla cassa, in questo caso il gestore del sistema aggiornerà lo stato dell’utente immettendo il versamento ricevuto o, se configurato, autonomamente utilizzando Paypal. Se viene selezionato il tipo di pagamento anticipato il form darà la possibilità, visualizzandolo, di inserire il Tempo libero in minuti. Figura 134: Pagamento anticipato 77 6.4 P ROFILO CON LIMITE DI BANDA Se abilitato lo shaper (Sez. 4.25) nell’impostazione dei profili sarà possibile assegnare agli utenti un limite di banda sia in download che in upload. Il limite di banda è configurabile per “profilo” o per “user”. Nel primo caso la banda assegnata sarà divisa tra tutti gli utenti collegati appartenenti al profilo mentre nel secondo verrà assegnata per singolo utente. Figura 135: Inserimento profilo con Shaping 6.5 P ROFILO CON IMPOSTAZIONE INTERFACCIA Se il Captive Portal è attivo su più intefacce di rete comparirà nelle impostazioni da immettere anche la possibilità di assegnarle ai singoli profili. Figura 136: Inserimento profilo per interfacce di rete Gli utenti appartenenti al profilo potranno collegarsi solamente alle interfacce selezionate. Ad esempio in una scuola si possono dividere gli utenti in profili diversi dove gli alunni possano collegarsi solamente sulla rete wired (aula informatica) mentre i docenti anche su quella wireless. Se il Captive Portal è attivo su più intefacce di rete verrà riportato anche nell’elenco dei profili. Figura 137: Pagina profili con interfacce di rete In Zeroshell i proflili vengono definiti classi, si scelto in Zerotruth di chiamarli in tal modo perchè essendo stato inizialmente sviluppato per una scuola poteva creare confusione ai gestori scambiandoli per le classi scolastiche. 78 7 E MAIL Gli utenti inseriti nel database possono essere contattati o avvisati attraverso email. La funzione può trovare un valido motivo per avvisi riguardanti manutenzioni o programmate interruzioni del servizio del Captive Portal oppure, negli esercizi commerciali, per inviare auguri o inviti. 7.1 I NVIO EMAIL Viene inizialmente visualizzato il form di ricerca, naturalmente dei soli utenti con email registrata, dove è possibile combinate i vari campi per una ricerca accurata. Figura 138: Email - Ricerca utenti Figura 139: Compilazione email Successivamnete sarà possibile scegliere, attraverso i relativi check box, i soli utenti ai quali si vuole inviare l’email. Le email conterranno automaticamente, oltre al testo immesso nel form, anche una intestazione e un piè di pagina come inserito nella configurazione degli “avvisi” del Captive Portal (Sez. 4.15). Le email inviate verranno memorizzate nei LOG di sistema dove potranno essere visualizzate e/o cancellate. 79 8 SMS Gli utenti inseriti nel database possono essere contattati anche attraverso SMS. 8.1 I NVIO SMS Viene inizialmente visualizzato il form di ricerca, naturalmente dei soli utenti con numero di telefono registrato, dove è possibile combinate i vari campi per una ricerca accurata. Figura 140: SMS - Ricerca utenti Figura 141: Compilazione sms Successivamente sarà possibile scegliere, attraverso i relativi check box, i soli utenti ai quali si vuole inviare il messaggio che non potrà superate i 160 caratteri. Se il fornitore del servizio lo consente ad ogni invio verrà aggiornato il credito residuo in modo da avere il controllo delle spese effettuate e la possibilità o meno di inviare ulteriori messaggi. Gli SMS inviati verranno memorizzati nei LOG di sistema dove potranno essere visualizzati e/o cancellati. 80 9 U TILIZZO CAPTIVE P OR TAL Come riportanto da Wikipedia “ La tecnica di Captive Portal forza un client http connesso ad una rete di telecomunicazioni a visitare una speciale pagina web (usualmente per l’autenticazione) prima di poter accedere alla navigazione. Ciò si ottiene intercettando tutti i pacchetti, relativi a indirizzi e porte, fin dal momento in cui l’utente apre il proprio browser e tenta l’accesso a Internet. In quel momento il browser viene rediretto verso una pagina web la quale può richiedere l’autenticazione oppure semplicemente l’accettazione delle condizioni d’uso del servizio. ” 9.1 L OGIN CAPTIVE P OR TAL Una volta collegato alla rete, sia essa wired o wireless, Zerotruth ridirige l’utente ad una pagina di login a meno che sia stato impostato un “ servizio aperto” (Sez. 4.13). 9.1.1 L OGIN STANDARD Figura 142: Form Login Gli elementi possono variare nella pagina in base ai device utilizzati quali smartphone e tablet. La pagina di login verrà visualizzata nella lingua impostata nella configurazione del sistema ma si potrà scegliere una delle lingue presenti in Zerotruth cliccando sulle relative icone “bandiera”. L’utente visualizzera le pagine di autenticazione e ogni informazione successiva in base alla lingua scelta. 81 Sarà inoltre possibile visualizzare le informazioni neccessarie, inserite nella configurazione “avvisi” del Captive Portal (Sez. 4.15), per l’accesso o altre notizie attraverso il link “Info”. Figura 143: Informazioni utente Dopo aver immesso le proprie credenziali l’utente verrà, se queste risultano autorizzate, abilitato all’accesso e verrà mostrato il popup di autenticazione. Figura 144: Popup di autenticazione Si potrà disabilitare la visualizzazione del Traffico e/o del Costo se si ritiene utile nella configurazione del Captive Portal (Sez. 4.13). Figura 145: Popup di autenticazione con solo “Tempo” 82 Il popup di autenicazione precedentemente mostrato è quello di default ma è possibile utilizzarne uno alternativo, maggiormente adeguato alla grafica di Zerotruth, che dispone di maggiori funzioni, come l’avviso dell’immininete disconnesisone per il raggiugimento dei limiti di tempo o di traffico. Figura 146: Popup di auteticazione Figura 147: Popup di auteticazione con avviso di imminente disconnessione Si può scegliere di abilitare quest’ultimo popup nella configurazione del Captive Portal ( Sez. 4.13) alla voce “Popup autenticazione di Zerotruth”. Per i device mobili, che possono avere dei problemi con il rinnovo dell’autenticazione tramite popup, Zerotruth propone un sistema alternativo, se abilitato nella configurazione del Captive Portal ( Sez. 4.13), reindirizzando l’utente verso una pagina dedicata. Da tale pagina l’utente potrà continuare nella navigazione, controllare i propri dati e scollegarsi. Il sistema controlla, ogni tot minuti impostati sempre nella configurazione del Calpive portal, che la pagina sia attiva dopo la quale la connessione verrà disattivata. Figura 148: Pagina di autenticazione per device mobili 83 9.1.2 L OGIN A PER TO Se nella configurazione del Captive Portal (Sez. 4.13) viene impostato il “servizio aperto” l’utente potrà accedere senza dover inserire nessun dato in modo quindi molto veloce. Alla prima connessione verranno visualizzati i dati e i limiti con i quali si accederà alla rete e che l’utente dovrà accettare per prosegure. Figura 149: Autoregistrazione con Captive Portal aperto Successivamente, e cosı̀ per ogni ulteriore accesso, si dovrà solamente utilizzare l’apposito bottonelink per essere autenticati. Figura 150: Login con Captive Portal aperto La pagina di login del sistema aperto permette all’utente di cancellare il proprio account. Si considereri comunque che, anche in questo caso, Zerotruth quando elimina un utente esegue una copia dei relativi dati, comprensivi delle sessioni effettuate, che potranno essere recuperati tramite backup. 84 9.1.3 L OGIN CON CODICE QR I biglietti con le credenziali degli utenti, come visto nella pagina i configurazione dei biglietti (Sez. 6.2), possono contenere anche un codice QR con le credenziali per l’accesso alla rete. Il sistema è molto pratico per quei device che possono installare, o hanno gia installato, un lettore di codici QR che li indirizzerà velocemente all’autenticazione automatica e all’accesso alla rete. 9.2 CAMBIO PASSWORD Dal popup di autenticazione è possibile, attraverso il link “Cambia Password”, cambiare la propria password. Figura 151: Reimpostare la password Risulta necessario avere il servizio email abilitato per tale funzione in quanto all’utente verrà spedito un codice di controllo da inserire nel form successivo per una ulteriore sicurezza. Figura 152: Inserimento codice controllo Naturalmente per il successo dell’operazione l’utente deve essere stato inserito nel sistema anche con il proprio indirizo email. Esistono altre procedure per modificare la password da parte di un utente se il sistema è configurato per l’auto-registrazione con Asterisk (Sez. 9.4.3) o Gammu (Sez.4.28.2) o con invio di SMS (Sez.4.14.2). 85 9.3 D ETTAGLI CONNESSIONI UTENTE Dal popup di autenticazione è possibile per l’utente, attraverso il link “Dettagli Connessioni”, visualizzare una scheda che riassume i propri dati e l’utilizzo del Captive Portal. Figura 153: Dettagli utente Figura 154: Connessioni utente Dalla scheda inoltre è possibile accedere ai dati dell’accounting con l’elenco di ogni singola connessione dove viene specificato: • l’ndirizzo IP e il MAC address del device che ha effettuato il collegamento; • la data e l’ora di inizio connessione; • la data e l’ora di fine collegamento; • i MB in download; • I MB in upload • il traffico totale; • il tempo totale ; • l’eventuale costo. Per un controllo più dettagliato è inoltre possibile fare una ricerca per un determinato range di tempo. 86 9.4 AUTOREGISTRAZIONE Zetrotruth consente l’autoregistrazione in modi dversi ma sempre avendo cura di poter risalire in modo preciso al reale utente nel caso vi sia la necessità. Nel caso si imposti la registrazione in modo aperto, utile soprattutto in reti wired dove si voglia avere un maggior controllo sulle connessioni, si avrà la registrazione del MAC address e quindi la possibilità di risalire alla postazione. 9.4.1 AUTOREGISTRAZIONE S TANDARD L’ Autoregistrazione è permessa di default solo se si è abilitato il servizio email e SMS. Infatti le credenziali verranno mandate all’utente in modo completo, ma senza password, via email ed essenziali ma comprensive di password via SMS. Figura 155: Auto Registrazione Dopo aver inserito le proprie credenziali l’utente, se inserite negli “avvisi” del Captive Portal (Sez. 4.15), per proseguire dovrà accettare le “norme” di utilizzo del servizio. Figura 156: Norme per utilizzo del servizio 87 AL termine del procedimento di autoregistrazione l’utente visualizzerà la conferma dell’esito che riporterà quanto inserito nella configurazione degli “avvisi” del Captive Portal (Sez. 4.15). Figura 157: Avvio post registrazione 9.4.2 AUTOREGISTRAZIONE CON S OCIAL N ETWORK Una volta installato il modulo relativo Zerotruth consente l’autoregistrazione con i più popolari Social Network: Facebook, Google+ e Twitter. Zerotruth verifica che le credenziali siano valide e registra l’utente con l’indirizzo email inserito e la password registrata non in chiaro nel database come per gli altri utenti ma codificata in MD5. In tal modo sia l’amministratore che gli utenti gestori non potranno visualizzare la reale password degli utenti che si sono registrati in questa mdalità. Per tali utenti quindi non sarà possibile recuperate la propria password se viene smarrita mentre potranno modificarla anche diversamente di quanto registrato sul Social Network. Figura 158: Autoregistrazione con Facebbok 88 Figura 159: Autoregistrazione con Google+ Figura 160: Autoregistrazione con Twitter 89 9.4.3 AUTOREGISTRAZIONE CON A STERISK Dopo aver opportunamente configurato l’autoregistrazione tramite chiamata ad un PBX Asterisk (Sez. 4.14.1) gli utenti utilizzeranno questo canale che, come già descritto, evita ai gestori del servizio i costi di spedizione delle credenziali attraverso SMS. L’autoregistrazione avverrà, come al solito, attraverso il form richiamabile dal link Registrazione presente nella pagina di login del Captive Portal. Figura 161: Form auto registrazione con Asterisk Al termine del procedimento l’utente verrà avvisato della necessità, per completare la registrazione, di chiamare il numero del centralino Asterisk con la SIM del numero inserito nella registrazione. Figura 162: Avviso post registrazione Nello stesso avviso verrà visualizato l’username e la password assegnata. 90 Nella lista utenti troveremo a questo punto l’utente registrato contrassegnato con il logo di Asterisk. L’utente risulterà bloccato in attesa di conferma e non potrà essere modificato dai gestori o dall’admin ma solo, eventualmente, eliminato. Figura 163: Tabella users con utente in attesa di conferma Quando l’utente effettuerà la chiamata telefonica per il controllo del’autenticità del numero inserito la tabella riporterà l’utente come definitivamente registrato eventualmente mostrando i limiti assegnati dal profilo assegnato. 9.4.4 AUTOREGISTRAZIONE CON SMS Se viene configurata l’autoregistrazione “completa con invio sms” (Sez. 4.14.2) la procedura diventa facile per l’utente che deve essere a conoscenza del numero telefonico del servizio. Infatti basta inviare un sms al numero del device impostato su Zerotruth con un’unica parola scelta come password. Il numero di telefono del chiamante verrà registrato come “username”. La modalità risulta essere efficace in quelle strutture dove i clienti possono essere avvisati del sistema . Se si abilita tale sistema di auto registrazione verrà disabilitato quello di default. 9.4.5 AUTOREGISTRAZIONE DA T ICKET L’autoregistrazione da Ticket risulta adeguata per quelle strutture nelle quali esiste un contatto diretto con l’utente quali un albergo o un campeggio e si configura nelle impostazioni del Captive portal (Sez. 4.14.3) All’utente viene consegnato un ticket preparato in precedenza (Sez. 5.1.4) con inserito solo l’username. Figura 164: Biglietto per auto registrazione Solamente gli utenti in possesso del biglietto potranno autoregistrarsi inserendo nel campo username del form di autoregistrazione quanto riportato. Per il resto il processo di autoregistrazione rimane invariato. Se si abilita tale sistema di auto registrazione verrà disabilitato quello di default. 91 9.5 R ECUPERO PASSWORD Zerotruth permette all’utente di recuperare la propria password in relazione all’impostazione del sistema. 9.5.1 R ECUPERO PASSWORD STANDARD Dalla pagina di login è possibile per l’utente recuperare la propria password se dimenticata. Figura 165: Recupero password L’utente deve essere in possesso comunque del proprio username e inserire la propria email e il numero di telefono che sarà utilizzato per inviare la password attraverso un SMS. 9.5.2 R ECUPERO PASSWORD CON A STERISK Se il sistema di autoregistrazione è impostato per essere utilizzato con Asterisk l’utente potrà recuperare la propria password attraverso una chiamata telefonica come descritto nella Sez. 4.14.1. 92 9.6 B LOCCO CAPTIVE P OR TAL Per manutenzioni o altre necessità è possibile bloccare l’accesso al Captive Portal dandone avviso agli utenti che tentano di collegarsi. Il blocco del servizio avviene se il Captive Portal, pur essendo attivato, non viene posto online. (Sez. 4.13). Figura 166: Configurazione Captive Portal fuori servizio Figura 167: Captive Portal fuori servizio L’avviso che comparirà all’utente potrà essere modificato dalla pagina avvisi del Captive Portal (Sez. 4.15). 93 Allegati A Installazione e configurazione Certificati SAN23 L’importanza di utilizzare delle connessioni crittografate quando si trasmettono dei dati iportanti come le autenticazioni è fondamentale, ma utilizzando il certificato auto-firmato di Zeroshell presenta il fastidioso inconveniente dell’avviso dei browser della sua possibile inattendibilità in quanto non firmato da una “Certification Authority” riconosciuta. Figura 168: Avviso connessione non certificata Tale limite può generare confusione agli utenti del captive portal e indurli a rinunciare all’utilizzo. Installare un certificato firmato da una “Trusted CA” consente ai browser di verificare l’attendibilità della connessione ma si deve tener presente che quasi sempre i Captive Portal vengono realizzati su domini privati e i certificati vengono rilasciati solamente per domini pubblici con email associata (p.e. www.zerotruth.net ed email del tipo [email protected]). Tale limite può essere superato acquistando dei certificati UCC/SAN24 che consentono di avere, oltre al “Common Name” (CN, nell’esempio www.zerotruth.net), anche dei “Subject Alternative Names” (SAN, nell’esempio hotspot.zerotruth.net e captive.zerotruth.net) che utilizzeremo come “hostname” per l’interfaccia di Zerotruth sulla quale è in ascolto il Captive Portal. Per ottenere i certificati possiamo affidare alla società che li emette la completa gestione della procedura, e in questo caso ci verranno inviati sia i certificati che la chiave privata da utilizzare, diversamente possiamo creare la nostra chiave privata e generare la “Certificate Signing Request” (CSR) da inviare per ottenerte il certificato che installeremo poi con la chiave privata che abbiamo creato in precedenza. Nel caso volessimo creare la chiave privata e la CSR, possiamo procedere in vari modi, da Windows è possibile utilizzare sia openssl da riga di comando oppure con il programma xca mentre da Linux possiamo utilizzare direttamente openssl da terminale. Per prima cosa creiamo la chiave privata (in questo caso otteremo una chiave RSA 4096 bit) con il comando openssl genrsa -out www.zerotruth.net.key 4096 Figura 169: creazione chiave privata 23 Il presente allegato è stato realizzato grazie all’indispensabile e competente lavoro di Jonatha Ferrarini. I certificati utilizzati e testati sono dei Comodo Positive UCC/SAN che offrono 3 domini ampliabili a piacere, acquistati da www.megasslstore.com. 24 94 Editiamo ora il file /etc/ssl/openssl.cnf, per caricare le v3 req extensions. La parte relativa alle estensioni da aggiungere alla CSR deve, dopo aver aggiunto le righe segnate dalla ferccia rossa, apparire nel seguente modo: Figura 170: V3 req extensions Creiamo ora la CSR per www.zerotrut.net con hash SHA-512, usando la chiave RSA creata in precedenza con il seguente comando: openssl req -new -key www.zerotruth.net.key -out www.zerotruth.net.csr -sha512 compilando i campi che verranno richiesti facendo attenzione ad inserire alla voce “CommonName” esattamente il dominio raggiungibile su Internet. Figura 171: Creazione CSR A questo punto troveremo pronte sia la chiave RSA che la CSR , quest’ultima (www.zerotruth.net.csr) da inviare all’autorità di certificazione per ottenere il nostro certificato firmato. Figura 172: Chiavi RSA e CSR 95 Ottenuto il certificato firmato (www.zerotruth.net) Figura 173: Certificato firmato e il certificato “Root CA” (ca-bundle.crt) Figura 174: Certificato firmato cambiamo le estensioni dei files da .crt a .pem, per importarli in Zeroshell. Il certificato della Root CA ( ca-bundle.pem) va importato nelle Tusted CAs. Figura 175: Importazione Root CA 96 Il certificato firmato va importato, con la relativa chiave RSA, nelle “Imported”. Figura 176: Importazione Certificato firmato Se si va a controllare il certificato con il link “View” Zeroshell riporterà “Status: Unable to get local issuer certificate” Figura 177: Mancanza della Certificate Chain Questo avviso dipende dal fatto che il nostro certificato non è stato firmato direttamente dalla “Root Ca” e, come riporta la figura172, vi sono due CA intermedie indispensabili. Per il corretto funzionamento dobbiamo importare la “certificate chain” completa, mancano in questo caso i certificati “COMODO RSA Certification Authority” e “COMODO RSA Domain Validation Secure Server CA”, da importare sempre nelle Tusted CAs. Questi cerificati intermedi li possiamo trovare sul sito di COMODO: COMODO RSA Certification Authority COMODO RSA Domain Validation Secure Server CA In un documento di testo, copiamo il certificato in .pem, da —–BEGIN CERTIFICATE—– a —–END CERTIFICATE—– compresi, se necessario cambiando l’estensione del file di testo appena creato in .pem, per importarlo nelle Tusted Cas. 97 L’operazione va effettuata per tutti e due i certificati. Alla fine la nostra “Trusted CAs list” dovrebbe presentarsi come nella seguente immagine: Figura 178: Importazione certificati intermedi Ricontrollando lo stato del certificato ora il sistema riporterà lo stato “OK ”. Figura 179: Controllo Stato certificato Affinchè il Captive Portal utilizzi il certificato importato si dovrà fare in modo che non usi come ridirezione l’IP address dell’interfaccia del Captive Portal o il CN ma uno dei due hostname disponibili come SAN sul certificato (nell’esempio captive.zerotruth.net) creando, nel DNS, la nuova zona zerotruth.net. Figura 180: Inserimento zona DNS Figura 181: Inserimento zona DNS 98 Si dovrà inoltre creare un record di tipo A nella zona appena inserita nel DNS assegnando come IP address l’IP dell’interfaccia sulla quale è in ascolto il Captive Portal. Figura 182: Inserimento record A Nella sezione “Authentication” della pagina “Captive Portal” è necessario impostare il nuovo certificato affinchè venga utilizzato nell’autenticazione al posto di quello locale. Figura 183: Scelta certificato importato Terminate le operazioni su Zeroshell utilizzando l’interfaccia di Zerotruth potremo impostare la ridirezione all’URL “captive.zerotruth.net”. Figura 184: Impostazione ridirizione con URL L’esempio della figura precedente riporta la configurazione nel caso il Captive Portal sia configurato per utilizzare un’unica interfaccia di rete mentre se fosse impostato su “Multi interfaces”, cioè pronto a rispondere su più indirizzi IP, verrà proposto di impostare per ognuna l’URL sul quale ridirigere l’utente. 99 Figura 185: Impostazione ridirizione con URL con multi interfaces Nell’esempio il sistema è configurato con Captive Portal su “Multi interfaces” e precisamente “ETH01”, “ETH02” e “WLAN00” come segnato dai diversi campi. Per ogni interfaccia sarà possibile inserire un URL, corrispondente ad un SAN, che verrà utilizzato per la ridirezione. Inoltre è possibile non inserire l’URL per alcune interfacce e in tal caso la stessa utilizzerà il proprio IP address per la ridirezione, senza quindi utilizzare i certificati “attendibili”. Naturalmente affinchè il sistema ridiriga opportunamente al relativo URL si dovrà inserire un record A, specifico per il SAN collegato all’interfaccia di rete, nella relativa zona del DNS. Ad operazioni finite il Captive portal sarà ridiretto automaticamente sul SAN corrispondente e verrà riconosciuto come sicuro dai browser. Figura 186: Certificato riconosciuto come attendibile Figura 187: Certificato riconosciuto come attendibile 100 B Creare nuovi templates Zerotruth, per tutte le pagine visualizzate dagli utenti del Captive Portal, mette a disposizione un template di default ma è possibile crearne uno proprio .25 Per creare un nuovo template, senza modificare quello esistente, bisogna eseguire le operazioni di seguito descritte. Operando da shell creare il nuovo template con il comando: / DB / apache2 / cgi - bin / zerotruth / scripts / createTemplate . sh Figura 188: Creazione nuovo template inserendo, quando richiesto, il nome scelto. Dopo tale operazione il nuovo template, una copia di quello di default, sarà creato e sarà visibile e selezionabile dalla pagina di configurazione del Captive Portal. Figura 189: Abilitazione nuovo template Sarà quindi possibile abilitarlo per poi fare i cambiamenti necessari avendo comunque la possibilità di tornare al template di default. Tutti gli scripts, i CSS e le immagini del nuovo template si troveranno nella directory / DB / apache2 / htdocs / zerotruth / templates / nome_template della quale sarà importante rispettare la struttura delle cartelle contenute. Per eliminare completamente un template, ad eccezione di quello di default, è disponibile uno script da utilizzare da shell: / DB / apache2 / cgi - bin / zerotruth / scripts / deleteTemplate . sh 25 Sarà cosa molto gradita poter inserire in Zerotruth i nuovi templates creati . 101 C I ferri del mestiere Zeroshell e Zerotruth permettono di configurare e gestire il Captive Portal completamente dall’interfaccia grafica facilitando molto il lavoro di configurazione. Talvolta comunque necessita, per una verifica o per l’esigenza di modificare uno script, di dover accedere alla Bash Shell o montare il file system di Zeroshell sul nostro PC. Nel primo caso Zeroshell mette a disposizione i comandi della Bash Shell e l’editor “vi”, presente in tutte le distribuzioni gnu-Linux e assolutamente da saper utilizzare almeno nelle funzioni principali, con i quali si può intervenire per ogni necessità. Può essere comunque agevole disporre di un editor più intuitivo e di un file manager visuale. Zerotruth mette a disposizione come add-on un pacchetto con Midnight Commander e Nano compilati e configurati specificatamente per il sistema. L’installazione dell’add-on deve avvenire da shell con i seguenti comandi: • “cd /DB” • “wget http://zerotruth.net/download/zt-mc-nano.tar.gz” • “tar zxvf zt-mc-nano.tar.gz” • “./install.sh” Figura 190: Installazione di Midnignt Commander e Nano Per poter utilizzare subito i due programmi, senza eseguire un reboot della macchina, è necessario far rileggere alla bash shell attiva il nuovo profilo memorizzato nell’installazione, che aggiunge il path corretto, con il comando: “. /root/.bash profile” facendo attenzione ad inserire il punto iniziale. C.1 Midnight Commander Midnight Commander è un veloce file manager visuale per i terminali a caratteri e corrisponde all’eseguibile “mc”. Si tratta di un programma molto simile a Norton Commander, un software proprietario per DOS. Midnight Commander è facilmente configurabile e permette di gestire file e directory in modo molto intuitivo anche con l’utilizzo del mouse. Inoltre si può accedere velocemente a file compressi e a server remoti usando il protocollo FTP. In questo documento si esporrà solamente alcune possibilità rimandando alle numerose guide presenti in Internet l’approfondimento delle notevoli potenzialità. 102 Per eseguire Midnight Commander è sufficiente usare da shell il comando “mc”. Figura 191: Midnight Commander I comandi principali vengono riportati nei riquadri in basso dell’interfaccia e possono essere attivati con il mouse o con il corrispondente tasto funzione (F1, F2... F10) mentre con il tasto Tab ci si sposta tra le due finestre. Per eseguire uno script è sufficiente selezionarlo e premere invio sulla tastiera cosi come per scompattare un archivio compresso. Con il tasto F3 si visualizza un file mentre con F4 si può editarlo. Midnight Commander disponde di un proprio editor ma è possibile utilizzare Nano installato assieme al programma. Per configurare il file manager per l’utilizzo di default di Nano aprire il menu Options e spostarsi in Configuration. Figura 192: Midnight Commander 103 Nella scheda che si aprirà si dovrà semplicemente togliere la spunta a “Use internal editor”. Figura 193: Midnight Commander In tal modo se viene editato un file Midnight Commander utilizzerà l’editor Nano. Un’altra importante caratteristica utile per trasferire, o scaricare, file da un server remoto è la possibilità di utilizzare il programma come client FTP. Per accedere ad un server FTP aprire il menu Left o Right, a seconda che di voglia utilizzare la finestra di sinistra o di destra per collegarsi, e spostarsi in FTP link Figura 194: Midnight Commander dove si dovranno inserire le credenziali di autenticazione per il server remoto nel formato “user:password@IP” Figura 195: Midnight Commander 104 Se il collegamento verrà stabilito potremo utilizzare i soliti comandi da mouse o tastiera per trasferire i file da o per il server remoto. Figura 196: Midnight Commander C.2 Editor Nano Per utilizzare Nano si deve eseguirlo da Shell con il comando “nano”. Se seguito dal nome di un file esistente lo aprirà e si potrà editarlo con gli intuitivi comandi descritti in basso nella finestra dell’editor. Figura 197: Midnight Commander Figura 198: Midnight Commander In breve tempo si prenderà confidenza dei principali comandi e diventerà uno strumento abituale nella gestione di Zerotruth e Zeroshell. 105 C.3 SFTP Per chi si trovasse a disagio a gestire il file manager e l’editor direttamente da shell è possibile montare il file system di Zeroshell sulla postazione con la quale ci si collega al sistem utilizzando sftp e poi gestirlo come se facesse parte del nostro sistema locale. Per abilitare Zeroshell ad accettare un collegamento sftp è necessario modificare la login shell impostata di default su “localman” in “/bin/bash”. Per eseguire tale operazione è sufficiente, dopo l’autenticazione, digitare il comando: “chsh” e alla richiesta della nuova login shell inserire “/bin/bash” Figura 199: Modifica login shell Ora si potrà montare Zeroshell sul nostro PC in una cartella a nostro piacimento come evidenziato nella figura seguente tenendo presente che Zeroshell eliminerà la configurazione se riavviato. La procedura, naturalmente, richiederà le credenziali di autenticazione per terminare l’operazione regolarmente. Figura 200: Utilizzo di sftp La stessa funzione la svolge automaticamente, ad esempio, nautilus il file manager di Ubuntu scegliendo “connetti al server” nel menu file. Figura 201: Nautilus 106 Se il file system di Zeroshell sarà stato montato regolarmente ogni programma locale vi potà accedere in lettura e scrittura. Nel seguente esempio si mostra l’utilizzo di Geany un leggero editor di testo multi piattaforma che supporta molti linguaggi di programmazione. Figura 202: Geany - apertura file Figura 203: Geany - interfaccia 107 D Scripts In questo allegato vengono riportati alcuni esempi di scripts da utilizzare nelle varie features di Zerotruth. D.1 Scripts per keypad Come illustrato nella sezione Keypad (Sez. 4.8) è possibile impartire dei comandi al sistema con una tastiera utilizando dei codici numerici. I tasti utilizzabili sono quelli sempre presenti su un tasierino numerico e quindi dal tasto “0” al tasto “9”, il tasto “+”, “-”, “*” e “/” oltre al tasto “Enter” che serve a terminare la sequenza e inviare gli scan code. Lo script che viene lanciato dopo aver digitato un codice e premuto il tasto Enter, o il tasto mappato come Enter, (“/DB/apache2/cgi-bin/zerotruth(scripts/readkeys.sh” ) converte gli scan code in numeri ed esegue, se trova un codice impostato, i relativi comandi. La prima parte dello script dev’essere mantenuta perchè serve a convertire gli scan code in numeri per costruire il codice. # !/ bin / bash source / DB / apache2 / cgi - bin / zerotruth / conf / zt . config source / DB / apache2 / cgi - bin / zerotruth / functions . sh source / DB / apache2 / cgi - bin / zerotruth / language / $C_LANGUAGE / $C_LANGUAGE . sh NC = " $ ( echo $1 | sed ’s / -/ /g ’ | wc -w | awk ’{ print $1 } ’) " [ " $NC " == " 0 " ] && exit CODE = " " for N in $ ( seq 2 $ (( $NC +1))); do PC = " $ ( echo $1 | cut -d ’ - ’ - f$N ) " PC = " $ ( cat $C_ZT_CONF_DIR / keys . conf | grep " $PC " | cut -d ’ ’ - f1 ) " CODE = " $ { CODE } $ { PC } " done Sotto tale intestazione si può inserire qualsiasi comando che tenga presente i possibili codici passati come nei seguenti esempi dove il simbolo “/–/ ” significa che la riga va posta in continuazione alla precedente. CAPTIVE P ORTAL OFFLINE if [ " $CODE " == " 15556 " ]; then ln -f -s $ C _ H T D O C S _ T E M P L A T E _ D I R / cp_showauth_custom - off / - -/ $C_CP_DIR / Auth / Template / cp _sh ow au th _c us to m exit fi CAPTIVE P ORTAL ONLINE if [ " $CODE " == " 16668 " ]; then ln -f -s $ C _ H T D O C S _ T E M P L A T E _ D I R / cp_showauth_custom - on / - -/ $C_CP_DIR / Auth / Template / cp _sh ow au th _c us to m exit fi D ISCONNETTERE TUTTI GLI UTENTI if [ " $CODE " == " 1563546 " ]; then CONNECTED = $ ( ls $C_CP_DIR / Connected ) for IP in $CONNECTED ; do $C_ZT_BIN_DIR / zt " Disconnetti " " $IP " done exit fi 108 B LOCCARE TUTTI GLI UTENTI if [ " $CODE " == " 986546 " ]; then USERS = $ (/ usr / local / bin / ldapsearch - xLLL -b " ou = Radius , $C_LDAPBASE " ’(!( sn =* -*)) ’ cn / - -/ | sed -n ’/ cn :/ p ’ | awk ’{ print $2 } ’) [ -z " $USERS " ] && exit for USER in $USERS ; do if [ " $USER " != " admin " ]; then CONNECTED = $ ( ls $C_CP_DIR / Connected ) for IP in $CONNECTED ; do if [ $ ( cat $C_CP_DIR / Connected / $IP / User | cut -d " @ " - f1 ) == " $USER " ]; then $C_ZT_BIN_DIR / zt " Disconnetti " " $IP " " $USER " fi done RADIUS = $ (/ usr / local / bin / ldapsearch - xLLL -b " ou = Radius , $C_LDAPBASE " cn = $USER sn ) PASS = $ ( echo $RADIUS | awk ’{ print $NF } ’) PASSLOCK = " $PASS - $RANDOM " DATA = " dn : cn = $USER , ou = Radius , $C_LDAPBASE \ nsn : $PASSLOCK " echo -e " $DATA " | ldapmodify -c -x -D " $C_LDAPMANAGER , $C_LDAPBASE " / - -/ -w $C_LDAPROOT > / dev / null DATA = " dn : uid = $USER , ou = PEOPLE , $C_LDAPBASE \ nlocked : yes " echo -e " $DATA " | ldapmodify -c -x -D " $C_LDAPMANAGER , $C_LDAPBASE " / - -/ -w $C_LDAPROOT > / dev / null fi done exit fi S BLOCCARE TUTTI GLI UTENTI if [ " $CODE " == " 134321 " ]; then USERS = $ (/ usr / local / bin / ldapsearch - xLLL -b " ou = Radius , $C_LDAPBASE " ’(&( sn =* -*)) ’ cn / - -/ | sed -n ’/ cn :/ p ’ | awk ’{ print $2 } ’) [ -z " $USERS " ] && exit for USER in $USERS ; do if [ " $USER " != " admin " ]; then RADIUS = $ (/ usr / local / bin / ldapsearch - xLLL -b " ou = Radius , $C_LDAPBASE " cn = $USER sn ) PASS = $ ( echo $RADIUS | awk ’{ print $NF } ’) PASS = $ ( echo " $PASS " | cut -d ’ - ’ - f1 ) DATA = " dn : cn = $USER , ou = Radius , $C_LDAPBASE \ nsn : $PASS " echo -e " $DATA " | ldapmodify -c -x -D " $C_LDAPMANAGER , $C_LDAPBASE " / - -/ -w $C_LDAPROOT > / dev / null DATA = " dn : uid = $USER , ou = PEOPLE , $C_LDAPBASE \ nlocked : no " echo -e " $DATA " | / ldapmodify -c -x -D " $C_LDAPMANAGER , $C_LDAPBASE " / - -/ -w $C_LDAPROOT > / dev / null fi done exit fi R EGISTRARE UN UTENTE Registrare un utente con username uguale al numero di cellulare e mandare un sms con le credenziali. In questo caso viene utilizzatato il codice passato come numero di cellulare che deve terminare con il simbolo “+” come ad esempio “3334567898+”. if [ -n " $ ( echo " $CODE " | grep ’+$ ’) " ]; then PHONE = " $ ( echo " $CODE " | cut -d ’+ ’ - f1 ) " USERNAME = " $PHONE " NAME = " $L_ANONYMOUS " LAST_NAME = " $L_ANONYMOUS " CLASS = " DEFAULT " MATRICE = " a b c d e f g h i l m n p q r s t u v z 1 2 3 4 5 6 7 8 9 " 109 while [ " $ { a :=1} " - le $C_LE NGH_PA SSWORD ]; do PASSWORD = " $PASSWORD$ { MATRICE : $ (( $RANDOM % $ {# MATRICE })):1} " let a +=1 done SHADOWEXPIRE = $ ( dateDiff -d " 1970 -01 -01 " " 2037 -12 -31 " ) ldap_add_people ldap_add_radius $C_ZT_BIN_DIR / zt " ControlAcct " " $USERNAME " $C_ZT_BIN_DIR / zt " ControlLimits " " $USERNAME " $C_ZT_BIN_DIR / zt " AddK5 " " $PASSWORD " " $USERNAME " " 2037 -12 -31 " TEXT_SMS = " $C_HOTSPOT_NAME user : $USERNAME password : $PASSWORD - $L_FOOTER_SMS " $C_ZT_BIN_DIR / zt " InviaSms " " $C_SMS_PROVIDER " " $PHONE " " $TEXT_SMS " exit fi 110
Documenti analoghi
deploy di zeroshell in ambiente virtuale
Per testare il Captive Portal ho creato un utente con le seguenti credenziali:
Username: “lorenzo” - Password: “password”
Dopo aver collegato l’adattatore di rete della macchina virtuale Windows al...
Configurazione Zeroshell rev02 - Parte 1
Inserire il CD con l’immagine masterizzata di Zeroshell e confermare modifiche al BIOS.
Attendere l’accensione fino al caricamento della schermata di boot illustrata qui sotto.