Navigazione Anonima – Quello che dovresti sapere

Anonimi sul Web

Anonimi sul Web

Partiamo subito con il chiarire che la navigazione anonima del browser non ti rende invisibile sul web, in quanto non nasconde il tuo indirizzo IP.

Bisogna iniziare a dipanare alcune false convinzioni e cattivi modi di utilizzare un potente mezzo come Internet.

Domanda: Sai quali dati lasci in giro ogni volta che navighi?

La definizione piu’ errata e’ l’utilizzo del termine navigazione anonima (o navigazione in incognito) come il nome dell’opzione attivabile sui browser che consente di non salvare i cookies a livello locale.

Un ‘infinita’ di persone naviga su internet pensando che quando attiva la navigazione anonima “nessuno” possa sapere che cosa stiano facendo , cosa stiano visitando , e credono realmente che questa semplice opzione li renda immuni da ogni pericolo del web, al sicuro da occhi indiscreti.

MA IN INCOGNITO DA CHI ?

Teoricamente da tutti coloro che nella rete ci vivono per spiare gli altri con scopi di diverso genere, pubblicita’ occulta e non richiesta, stalker e quant’altro si possa trovare nel web, ma in realta’ navigheremo in incognito soltanto da noi stessi; perche’ cio !!!???

 

Proviamo a spiegare meglio.

Diciamo che stai navigando dal tuo pc (o da quello dell’ufficio) e decidi di aprire una nuova finestra per navigare in incognito, bene, di fatto ti si apre una sessione di navigazione internet dove tutti i dati raccolti durante la navigazione, una volta chiusa la sessione verranno cancellati, nella realta’ delle cose cio’ avverra’ soltanto a livello LOCALE, quindi solo nel vostro PC, ehhhhh gia’.

Diamo per vero che se “navighi in incognito” e fai login in un sito web (home banking per esempio) , una volta chiusa la finestra del browser i dati delle vostre password e i siti web che avete vistato non verranno salvati nel tuo computer, ma questo purtroppo non significa che, ad esempio, il vostro capo curioso, accedendo al server aziendale, oppure il  provider , o ancora il proprietario del sito web , i server DNS , i sistemi di raccolta dati e via dicendo non sappiano che VOI , dal vostro computer , con il vostro specifico indirizzo ip , dalla vostra postazione e locazione fisica avete navigato su un determinato sito , avete scritto la mail a una determinata persona , avete effettuato l’accesso ad un determinato servizio etc etc……

E QUINDI COSA POSSIAMO FARE?

La prima cosa da definire e’ il concetto di privacy, ovvero cos’e’ che in qualita’ di utenti, internauti, vogliamo “nascondere” da occhi curiosi:

  • Mantenere riservati i miei usi e costumi
  • Mantenere riservato il luogo dal quale mi connetto (che per alcuni utenti in luoghi del mondo ad alta censura è a tutti gli effetti una questione di sicurezza personale)
  • Mantenere riservate le mie comunicazioni personali , le e-mail , messaggi e dati scambiati con App di vario genere (whatsapp, skype, hangout etc…), da mobile o pc
  • Non rendere pubblici i miei dati di navigazione (user & password di servizi primari con home banking etc)

 Tutto questo NON viene fatto da una semplice navigazione anonima del browser e se pensavate il contrario e’ il momento di aprire gli occhi.

Facciamo un esempio concreto; ognuno di noi per navigare, che sia da casa o dall’ ufficio, ha necessita’ di attivare una connessione con un ISP (Internet Service Provider).

In Italia i dati della navigazione vengono, per legge, salvati per diversi anni , il tuo provider quindi mantiene memorizzate informazioni come i siti web che visiti (streaming online , siti web per adulti , torrent , banche , comunicazioni di ogni genere…) , dunque ogni volta che mandi una mail loro possono sapere quale indirizzo di posta la manda , a chi , da dove , con che indirizzo IP, e molto altro ancora.

Se fate uso di software p2p o torrent, possono sapere l’origine del traffico , cosa scaricate, possono arrivare a filtrare la vostra connessione fino a rallentarla (vi sara’ successo sicuramente guardando film in streaming da siti FREE), in piu’ tutto questo traffico di dati avviene totalmente in chiaro. Insomma, tanta pubblicita’ per venderti una ADSL da 100 mega e poi scarichi a 500 kb , non ti sei ancora chiesto perchè ?

Tutti questi dati di fatto vengono usati per “schedare quotidianamente usi e costumi di milioni di persone, salvando di fatto tutte le tue personali abitudini e, purtroppo, a causa di vari proclami contro il terrorismo e presunti hacker cattivi (definiti cosi soltanto perche’ svelano gli altarini di alcune potenze), stiamo prendendo la direzione di un aumento del controllo su tutto quello che facciamo in rete.

Dunque: NAVIGAZIONE ANONIMA NON VUOL DIRE NAVIGAZIONE SICURA

Quante volte vi e’ capitato di collegarvi ad una rete WiFi Free, in un’ internet caffè o in altri luoghi pubblici, magari per fare la prenotazione di un Volo o di un Hotel ?

Situazione ancora piu’ pericolosa, sei in viaggio e decidi di collegarti usando il WI-FI dell’albergo e compri da vari servizi on line, pagando tramite la carta di credito (pauraaaa). Di fatto, ad un malintenzionato, basterebbe installare sul router dell’albergo dei trojan, che oggi giorno sono alla portata di un quattordicenne smaliziato, per potersi intrufolare nella comunicazione, tra voi ed il sito esterno, e letteralmente carpire i vostri dati in chiaro (un tipo di attacco che prende il nome di “Attacco man in the middle”).

Un’ altra delle assurdita’ che si leggono spesso in giro è che basti cambiare indirizzo IP per essere improvvisamente e totalmente anonimi e dunque liberi di fare quello che si vuole, al sicuro da occhi indiscreti : cavolata.

Il nostro indirizzo IP definisce l’associazione tra la nostra sessione internet e la nostra posizione fisica.

Eppure, molta gente pensa che basti utilizzare un proxy per realizzare una vera navigazione anonima , in realtà anche questo non è vero. Anche in questo caso tutto il nostro traffico dati risulterà semplicemente arrivare da un’ altro IP ma di fatto sarà comunque in chiaro e  dunque tracciabile. Nella pratica non verranno nascosti i siti che visitiamo , sara’ soltanto come dire che li sta visitando un’ altro indirizzo IP. Di fatto pero’ un’ ente esterno può associare la tipologia di traffico internet all’ indirizzo ip acquisito , contattare chi ha rilasciato l’indirizzo IP e acquisire il vostro indirizzo reale.

Un proxy non ti rende anonimo al 100% 

Infatti ecco alcuni dati che lasciamo quotidianamente in giro per la rete

  • Chi siamo e da dove ci colleghiamo
  • Il nostro numero di telefono , quando navighiamo con il cellulare
  • Data , ora e tipologia di comunicazione usata (social media, VoIP, p2p, siti web , emails, Messengers)
  • Durata e uso della comunicazione tramite uno dei servizi del punto sopra
  • Dove siamo fisicamente (incluso l’uso di WI-FI o celle di connessioni dati mobile 3/4 G)
  • Verso chi comunichiamo e quando, compresi i dettagli di una mail

DUNQUE: CAMBIARE INDIRIZZO IP NON VUOL DIRE NASCONDERE QUELLO CHE FACCIAMO !

Per nascondere il tuo traffico dati lo devi criptare, devi fare in modo che prima che il tuo traffico vada all’esterno sia indecifrabile e illeggibile. Puoi farlo attraverso l’uso di VPN commerciali o tramite la creazione di VPN fai da te. Solo cosi avrai una reale navigazione anonima. Per chiunque se lo stia chiedendo, persino usare una connessione filtrata con TOR non ci rende sicuri ed anonimi al 100% se non usiamo una VPN per criptare tutto il traffico.

Possiamo affermare che criptare il proprio traffico dati è diventata una priorità, cosi’ come è normale avere un antivirus sul computer, questo perchè oggi giorno siamo sempre interconnessi ed i nostri dati girano ovunque per la rete, nei motori di ricerca, nei grandi centri Big Data, e vengono usati quotidianamente per schedare le nostre abitudini e per inondarci di pubblicità ad-hoc.

Invece, una volta connessi a internet tramite una VPN , che utilizza un protocollo robusto di criptazione, i nostri dati verranno criptati e, a seconda del protocollo utilizzato, sarà difficile se non impossibile decifrarli.

Tramite la VPN viene instaurato un ponte di connessione virtuale punto a punto tra chi si connette e uno dei server della VPN , server che può essere situato ovunque geograficamente, facendovi cosi acquisire un’ indirizzo IP di un’ altra nazione (adesso ha senso), utilizzando successivamente diversi sistemi di tunneling per instradare i dati in modo sicuro.

Ultimo consiglioUSATE UNA VPN PER TUTTO ANCHE PER LO SMARTPHONE

Mentre con un computer ci risulta normale installare un buon antivirus, o persino un firewall per proteggere i nostri dati , con il cellulare invece il 90% delle persone sembra non pensarci o disinteressarsene.

Di fatto pero’ in un’ unico apparecchio teniamo memorizzati dettagli fondamentali sulla nostra vita personale (foto , contatti telefonici , mail , informazioni bancarie, delle carte di credito etc) ma lasciamo che la connessione dati sia sempre aperta, mentre i nostri dati vengono interscambiati continuamente in chiaro.

Oggi ci sono, per fortuna, VPN che fanno di tutto e costano davvero poco, o comunque il giusto per l’importanza del servizio che danno, come PureVPN . Ora che abbiamo fatto chiarezza sul concetto di anonimato in rete credo che l’uso di una vpn dovrebbe diventare una consuetudine di uso comune.

 

VPN – Navigazione Sicurezza e Anonimato

VPN - Navigazione Sicurezza e Anonimato

VPN – Navigazione Sicurezza e Anonimato

Facciamo una piccola premessa per spiegare al meglio che cosa sono le VPN e come possiamo usarle.

Una VPN, acronimo di Virtual Private Network, nasce come l’estensione della rete locale. Grazie ad una VPN è possibile connettere computer e dispositivi mobili fisicamente situati anche a migliaia di chilometri di distanza così come se fossero collegati alla stessa rete locale (aziendale, dell’ufficio o di casa).
Dal momento che le informazioni viaggiano utilizzando un mezzo intrinsecamente insicuro qual è la rete Internet, le VPN prevedono l’utilizzo di un algoritmo crittografico che permetta di cifrare le informazioni in transito rendendole inaccessibili da parte di persone non autorizzate (vengono così scongiurati i cosiddetti attacchi man-in-the-middle, impedendo ad un qualunque malintenzionato che si ponga tra i due estremi della comunicazione di intercettare e leggere informazioni che non gli appartengono).

Le principali peculiarità di una VPN sono:

Economicità: la scelta di una implementazione adeguata in fase di decisione permette di scegliere la soluzione più adeguata al miglior costo sostenibile;
Semplicità: grazie allo sviluppo di diversi protocolli la tecnologia è vpn/pptp e´semplice da implementare;
Sicurezza: Il traffico passante viene comunemente crittografato aumentando conseguentemente la sicurezza della connessione.

Le VPN possono essere usate come alternativa ai Proxy per rendere anonime le nostre connessioni ad internet e, tendenzialmente, sono solitamente più performanti e sicure. A differenza dei Proxy il vostro traffico viene totalmente protetto inibendo ogni sorta di monitoraggio da parte del vostro ISP, infine sfrutterete l’indirizzo IP della rete VPN e non il vostro. Si può usare una VPN sostanzialmente perchè garantisce una navigazione anonima sul web. Tutti i dati sono criptati tramite algoritmi. In pratica è come se i nostri dati internet passassero attraverso un tunnel, proprio la VPN, che scherma la nostra connessione. Questo significa essere più sicuri quando ci si connette ad una rete pubblica, come un wifi in hotel o in un internet cafè. E’ possibile accedere a siti che sono bloccati, come spesso accade proprio all’interno delle reti pubbliche. Non ultimo si è più protetti dagli attacchi di hackers e sniffers. Da ricordare però che il traffico è protetto finché si trova all’interno del tunnel: una volta uscito sarà “allo scoperto” come una qualsiasi altra normale connessione. Ora, so che i più tecnici avrebbero da fare qualche appunto alle affermazioni qui sopra, ma volevo andare dritto al punto.

Solitamente si sfruttano reti VPN dislocate in un paese diverso rispetto al proprio per evitare censure governative o per accedere a siti internet non accessibili a determinate nazioni per questioni di license, un esempio lampante è dato dal servizio Last.FM ormai accessibile in tutto il mondo ma agli albori era possibile iscriversi e sfruttare il servizio solo se si era cittadini Americani e una verifica del proprio IP impediva a cittadini non Americani di sfruttare il sevizio, grazie ad una VPN Americana si poteva aggirare questo limite.

VPN LIST

CyberGhostVPN : un servizio gratuito dislocato in tutto il mondo grazie alla presenza di 20 server, offre banda e traffico limitato per un massimo di 2h consecutive dopo le quali si verrà automaticamente disconnessi.
Per la connessione sfrutta un client proprietario basato sul protocollo OpenVPN ed è purtroppo limitato ai soli utenti Windows. È possibile espandere l’account alla versione Premium a 49euro all’anno eliminando il limite temporale della connessione e ampia la gamma dei server disponibili fino a 230, infine la versione Premium offre i comuni protocolli OpenVPN, L2TP/IPSec e PPTP permettendo il collegamento anche da sistemi operativi diversi da Windows.

TunnelBear : garantisce mensilmente 500Mb di traffico internet gratuito senza alcun limite di banda o di traffico, se inoltre seguite su Twitter l’account ufficiale del servizio il traffico raddoppierà ad 1Gb al mese. La versione premium ha un costo di 49,99 dollari all’anno e offre anche un client per dispositivi mobili iOS e Android.

PureVPN : è un ottima via d’uscita per tutte quelle persone che vivono all’estero e sono disperate perchè hanno una connessione scarsissima e non possono sfruttare a pieno la VPN, inoltre e´ tra le piu´ economiche poiche´ permette di usare fino a 5 multi login (per tanto pagate una volta e condividete l’account con altri amici o parenti, fino a 5) Si seleziona l’Italia dalla server list e cliccate connetti e il gioco e’ fatto., funziona su PC , Mac , Android , Linux , permette i torrent e il p2p.

ExpressVPN : è una tra le più longeve e famose VPN sul mercato. I suoi punti di forza sono la velocità , la copertura delle nazioni e i client proprietari che permettono di usare in modo semplice la VPN su android o Ios. Ottima copertura delle nazioni (45 nazioni , Italia inclusa) , client e app fatta a doc disponibili per il mobile (ricordiamo che è SEMPRE possibile configurare manualmente una connessione VPN su un cellulare) , nessun limite di banda , criptazione dati e possibilità di vedere in streaming contenuti video , come vedere NETFLIX fuori dagli Stati Uniti o vedere Sky Go dall’estero. Permesso P2P e Torrent.

IPVanishVPN : da oltre 15 anni è presente sul mercato con soluzioni VPN. Le sue caratteristiche sono sicurezza estrema (NAT Firewall incluso nel prezzo), Velocità (forse la rete privata VPN più scelta dai gamers), semplicità d’uso.
IPVanish infatti cripta i nostri dati in uscita (per tanto non filtrabili e riconoscibili dai nostri provider) utilizza server velocissimi (rete privata Tier 1 tra le più veloci sul mercato).

Abbiamo dunque capito che poter usare una VPN puo´ essere molto utile ma ricordiamoci sempre di agire usando la testa. Quindi se dovete usare una VPN , usatene una economica o sfruttate i periodi di prova , usando comunque VPN professionali.

Come creare una Web TV 2.0

Crea la tua WebTV 2.0

Crea la tua WebTV 2.0

Di Web TV ne nascono a decine ogni giorno grazie ai molti servizi disponibili online e, tra i più giovani impazza la moda del livestream via smartphone. Vediamo dunque in questo secondo articolo, che segue il precedente “Come creare una Web TV gratuita“, come utilizzare ulteriori sistemi 2.0 per la creazione di un canale TV per condividere le nostre idee e passioni.

Le WebTV sono un fenomeno ormai affermato della cultura del ventunesimo secolo. Come gia accaduto durante l’epoca delle radio libere, favorite dal bassissimo costo di realizzazione, infatti oggi giorno per poter partire bastano, una connessione a internet, una webcam o uno smartphone e un account su un servizio di streaming online e tanta tanta voglia di mettere in mostra le proprie capacità. Come gia sappiamo, negli ultimi anni più di qualcuno è riuscito a diventare famoso e a guadagnare tramite le pubblicità e la condivisione dei propri video, vedi i casi italiani di Fedez o Frank Matano, tanto per citarne alcuni ma, molti altri rimangono nell’anonimato della Rete pur costruendosi una propria reputazione ed un proprio seguito.
Si può creare una WebTV sia per dire la propria su qualcosa che ci appassiona o commentare ciò che accade nel mondo ed essere in onda per pochi minuti al giorno, sia per lanciare una piccola televisione locale con un palinsesto strutturato e sostenendosi attraverso la raccolta pubblicitaria o con l’autofinanziamento. Tutto ciò è reso possibile dalle decine di servizi presenti in Rete che permettono di ospitare le WebTv degli internauti: da YouTube a Ustream, ogni piattaforma offre diverse funzionalità e caratteristiche.
Sono sempre di più, ad esempio, gli utenti che sfruttano le potenzialità del livestream (commenti in diretta, immediatezza ,spontaneità) rispetto a coloro che caricano video, filmati in precedenza e modificati tramite i software di editing. Tra i giovanissimi, come dicevamo ad inizio articolo, impazza invece la moda del livestream grazie soprattutto a Periscope e Meerkat, due applicazioni lanciate nei primi mesi del 2015 e che hanno fatto appassionare migliaia e migliaia di persone alla diretta di contenuti multimediali via smartphone.

YouTube – Hangouts
Una piattaforma per creare web tv molto usata è Hangouts. Il servizio integrato all’interno del social network Google+ ma soprattutto è uno strumento importante in quanto si interfaccia direttamente con YouTube. In molti hanno tentato l’avventura della diretta video e alcuni (i cosiddetti YouTubers) ne hanno fatto una vera e propria professione. Per poter utilizzare la funzione livestream di YouTube è necessario prima di tutto creare un account Google e verificarlo sulla piattaforma video di Big G, dopo di che’, sara’possibile creare un servizio di live streaming per migliaia di spettatori, i quali possono accedere sia da Google+ che da YouTube. Il primo passo da compiere è cliccare sul bottone Carica, presente nella parte in alto a destra, vicino all’icona della foto profilo. Nella pagina che si aprirà, l’utente dovrà entrare nella sezione Live Streaming, presente nella parte destra dello schermo: cliccando su Inizia, partirà immediatamente la diretta video, con la possibilità di interagire con i propri fan, grazie alla chat. Al termine del livestream, il video sarà disponibile sul canale YouTube e visibile a tutti gli internauti della Rete. Tramite gli Analytics, è possibile studiare i momenti migliori del programma e capire dove intervenire per aumentare gli ascolti. Ovviamente, qualora preferiate, è possibile creare un video live su YouTube anche con le app ufficiali di Hangouts sia per Android che per iPhone/iPad. Ricordiamo, infine, che al termine della diretta video su Hangouts, i video verranno caricati sul vostro canale YouTube e gli utenti potranno guardarli in differita. Hangouts è un ottimo modo per creare web tv professionali.

Ustream
Ustream è una piattaforma di streaming video utilizzata soprattutto dalle aziende per diffondere il proprio messaggio o dalle piccole stazioni televisive locali, che cercano un modo economico per creare una Web Tv e raggiungere una audience maggiore. Rispetto alla gratuità di YouTube, Ustream ha un costo mensile che si aggira intorno ai cento euro (l’offerta base) per avere la possibilità di caricare video in alta definizione e uno storage di 500 GB. È possibile creare anche un account gratuito, ma la trasmissione dei livestream non è in alta definizione ed è intervallata dalla pubblicità.
Per registrarsi gratuitamente è necessario cliccare su Sign Up, presente nel centro della home e poi su Start Free Trial (i video caricati saranno disponibili per la visione solo per trenta giorni). Completato l’iter, per iniziare lo streaming in diretta si deve premere su Vai in diretta, scegliere la categoria e scrivere una breve descrizione dell’evento e infine permettere l’acceso al microfono e alla webcam da parte del servizio. Una volta in onda, si potrà interagire con i visitatori attraverso la chat e condividere l’inizio della diretta con i propri amici sui social network per aumentare il numero dei telespettatori. Ustream è disponibile anche in versione mobile, attraverso l’applicazione scaricabile dal Google Play Store e dall’App Store.

Livestream
Con un servizio specifico per le televisioni e le radio, Livestream è uno delle soluzioni migliori per chi è in cerca di una piattaforma affidabile per creare una WebTv. Livestream mette a disposizione qualsiasi tipo di tool per mandare in live streaming eventi culturali e manifestazioni sportive. Smartphone, tablet, telecamere professionali, qualsiasi tipo di device è supportato per la diretta video. Il servizio ha un costo che varia dai pochi dollari al mese, fino a quasi ottocento per avere il massimo supporto dallo staff della piattaforma. Livestream offre anche la possibilità di creare un account gratuitamente, senza il supporto alla diretta tramite smartphone e tablet.

ToMakeWeb
Dedicata al mondo del business, ToMakeWeb è adatto a chi ricerca un servizio pensato e sviluppato per creare una WebTv in onda ventiquattro ore al giorno. Con ToMakeWeb è possibile creare un palinsesto giornaliero, caricando i video tramite YouTube o direttamente dal personal computer, personalizzare la grafica e gestire i banner pubblicitari. Attraverso il monitoraggio delle statistiche l’azienda può capire quali sono i programmi più seguiti e modificare le trasmissioni che non hanno il supporto dei telespettatori. Con la chat e i social network si può interagire in diretta con il pubblico e rispondere alle loro domande. Il servizio di livestream ha un costo minimo di settanta euro al mese e aumenta ad ogni funzionalità in più richiesta.

Periscope
Tra le applicazioni più amate tra i giovani, Periscope permette di essere in onda per un breve periodo e di interagire con i propri fan attraverso la chat. Semplicissimo da usare, è stato acquistato da Twitter per poter mandare in onda i live streaming direttamente sul social network. Insieme a Meerkat, altro servizio di streaming video direttamente da mobile, ha creato non pochi problemi alle case di produzione per la violazione dei diritti televisivi. Inoltre, molto sociologi hanno evidenziato la pericolosità di un servizio che permette il livestream toccando un semplice bottone, senza alcun tipo di filtro.

 

Quindi, alla fine della fiera, il concetto e’ che “chi piu’ ne ha pou’ ne metta” sia di idee che di contenuti.
Condividete gente, condividete.

MaxScale – un proxy per i Database MariaDB e MySQL

Maxscale - Proxy per MariaDB & Mysql

Maxscale – Proxy per MariaDB & Mysql

MaxScale è il nuovo database proxy server open source sviluppato da MariaDB Corporation Ab.

MaxScale nasce con un concetto di proxy alla base, ma con una filosofia ed un approccio “database centrico” ed una architettura a plugin estremamente configurabile.

Per chi si fosse perso i precedenti articoli riguardanti i Proxy Server, ricordiamo che, un proxy, è un server che fa da intermediario in una connessione, ossia esso riceve le richieste da un client e le reindirizza verso altri server che sono i destinatari delle richieste. In altre parole un proxy funziona come un centralinista: riceve la chiamata del cliente  e la gira al primo operatore libero.
Per capire meglio cosa e’ in grado fare elenchiamo alcune delle sue funzionalità principali quali:

  • controllo della disponibilità del Database (monitoring)
  • load balancing
  • analisi della query in ingresso per capire se indirizzarla su una specifica tipologia di server

tutto questo, e molto altro ancora.

MaxScale si può inserire in modo trasparente tra l’applicativo e il server MySQL, esattamente come fa un proxy web tra il nostro browser e il sito che stiamo cercando di visitare.
Grazie ad un proxy è possibile avere:

  • Ridondanza: usando più di un database dietro al proxy, poiche’ un solo server non fornisce l’affidabilità e l’alta disponibilità in caso di down di una macchina.
  • Diminuizione dei costi di infrastruttura: perché generalmente due server piccoli sono meno costosi che un unico server molto performante.

Per migliorare la spiegazione ora vedremo due tipi di database proxy server:

I proxy di livello trasporto come HAProxy (di cui abbiamo piu’ volte parlato in altri articoli).
I proxy di livello applicativo come MaxScale
HAProxy: un proxy efficiente, rapido e funzionale

Fino ad oggi tra i proxy più usati in ambito MySQL Cluster è l’HAProxy che lavora ad un livello più basso (livello 4: trasporto). HAproxy pero’ non conosce nulla di MySQL e si occupa quindi soltanto di bilanciare le connessioni tra i server. Haproxy e’ molto veloce, leggero ed efficente, tuttavia questo tipo di bilanciamento è fatto senza che il proxy sia a conoscenza di cosa sta smistando. Questo rende il sistema meno efficente poiché un server può ricevere molte richieste pesanti, mentre altri server possono essere scarichi. Quindi l’HAProxy non è la scelta vincente in tutti i casi.

MaxScale: e’ un proxy che in configurazioni di questo tipo può fare cose incredibili

MaxScale lavora a livello più alto (livello 7: applicativo) e, monitorando i server riesce a capire cosa sta succedendo all’interno dell’infrastruttura. Conoscendo il protocollo MySQL può intervenire manipolando il traffico tra client e server. Ecco alcune delle sue principali funzionalità:

  • Filtro delle query al database
  • Gestione del routing: instradamento delle richieste a uno o più database server
  • Modifica delle query al volo prima che raggiungano il database
  • Possibilità di nascondere la struttura interna dell’infrastruttura lasciando un singolo punto d’accesso.
  • Alta affidabilità e scalabilità del sistema
  • Possibilità di spostare un database dal server locale ad un server esterno senza modificare la configurazione delle applicazioni
  • Divide automaticamente le scritture sul server MASTER e le letture su uno o più database SLAVE.
  • MaxScale può fornire un Load Balacing delle connessioni senza bisogno di utilizzare applicazioni o CMS che prevedano questa funzionalità. Questo significa che CMS come Joomla! o WordPress possono trarre i benefici usando una replicazione Master/Slave per rendere scalabile il proprio sito.

Caratteristiche di MaxScale

Il punto di forza di MaxScale è sicuramente la sua modularità che permette una notevole libertà adattandosi a molti casi d’uso. MaxScale è :

  • Modulare: un sistema di moduli ne definisce le funzionalità
  • Estendibile: è possibile applicare più filtri anche in cascata
  • Flessibile: i moduli e i filtri possono essere aggiunti dinamicamente

I moduli base di MaxScale

Ecco i 5 moduli che costituiscono il cuore di MaxScale:

  • Protocol: da la possibilità di utilizzare più protocolli es. MySQL client, http, telnet;
    I client si connettono a MaxScale anziché al database MySQL senza accorgersi della differenza. Possono usare le stesse librerie di connessione utilizzate fino ad ora: es. MySQL client o MariaDB client
  • Authentication: il sistema di autenticazione permette ai client di accedere a MaxScale usando le credenziali presenti sui server di Backend;
    MaxScale non ha un sistema di autenticazione o un database di utenti. Vengono utilizzati gli stessi utenti presenti sui database di backend, caricati all’avvio dell’applicazione
  • Monitor: legge la configurazione dello stato del sistema direttamente dai server di backend;
    Viene utilizzato per capire in ogni momento lo stato di tutti i database di backend collegati a MaxScale. In questo modo è possibile sapere qual’è il server Master e quanti Slave stanno replicando correttamentei dati. Il monitor può essere utilizzato per controllare un Galera Cluster.
  • Router: smista le connessioni a uno o più database di backend;
    Dirige il traffico dal client ai server utilizzando una regola specifica denominata connection routing
  • Filter e logging: i filtri permettono di modificare le query oppure di scrivere un file di log con tutte le richieste e le risposte ricevute;
    Tra i più potenti strumenti messi a disposizione di MaxScale ci sono sicuramente i filtri che permettono di effettuare operazioni avanzate sulle query senza modificare il comportamento dell’applicazione, 1) processando query SQL e risultati, 2) utilizzando una semplice regex, 3)  analizzando, modificando o rifiutando le query, 4) mettendo più filtri in cascata

Non resta che testare di persona, magari con un ambiente ad hoc con Docker e Vagrant.

 

Load Balancing Systems

Load Balancing Systems

Load Balancing Systems

Ormai Internet e’ parte della vita di milioni di persone e’ lo sara’ sempre di piu’. Sono lontanissimi i tempi dei siti statici con qualche migliaio di accessi al mese o poco piu’, oggi quasi ogni tipologia di servizio offerto dalle aziende o dalla pubblica amministrazione, ha la gestione su di un portale Internet, dunque la gestione degli accessi, al secondo, e’ diventata la discriminante per valutare un ottimo servizio da uno scadente; si pensi alla fantastica operabilita’ di portali come Facebook, Twitter o Gmail, solo per citarne alcuni, che permettono e gesticono l’accesso di milioni di utenti 24h senza praticamente disservizi o rallentamenti .

Ora dietro c’e’ una mole di lavoro ingegneristico del software, dell’hardware, dell’architettura migliore, del DB piu’ performante etc ma, prima che tutto cio’ inizi ad operare l’utente dev’essere, per prima cosa, agganciato ed instradato verso il server (fisico o virtuale che sia) che accogliera’ le sue operazioni (acquisti , home banking, pagamento bollette…), tutto cio verra’ fatto dall’infrastruttura di Load Balancing, che puo’ essere un fiore all’occhiello dell’azienda oppure trasformarsi in un Mega Point of Failure, quindi vediamo di spiegare meglio che cosa sono i Load Balancer e come operano.

Letteralmente “Load Balancing” significa bilanciare il carico di lavoro su più nodi dell’architettura.Viene spesso confuso come tecnica per ottenere l’ High Availability (HA), ma pur condividendone alcuni mezzi, ha dei fini totalmente diversi.

In pratica il “bilanciatore di carico”, per chi non lo sapesse, è quel componente (di frontend) che prende in carico le connessioni in ingresso (quelle degli utenti per gli accessi POP/IMAP ad esempio) e le smista verso i server (backend) veri e propri che erogano i servizi (webserver, application server..). E’ sempre il bilanciatore che interviene quando un server di backend viene rimosso dal cluster, per manutenzione o interruzione, a dirottare il traffico verso i server rimasti attivi.

Uno degli errori più comuni per effettuare il Load Balancing è quello di prendere come riferimento il Load dei server, scrivendo sulle console delle nostre macchine il comando “uptime”, riceveremo come risposta un dato come questo

16:49 up 453 days, 12:17, 56 users, load averages: 0,59 0,46 0,47

dove gli ultimi tre numeri identificano il carico del server negli ultimi 1, 5 e 15 minuti rispettivamente.

Immaginiamo ora di aggiungere ulteriori nodi quando il carico di un server negli ultimi 5 minuti superera’ il valore di 1,5. La nuova macchina aggiunta partirà con un carico pressoché a 0 e verrà invasa da centinaia di richieste fino a rischiarne la saturazione, e dovremo inoltre attendere altri 5 minuti prima che un nuovo bilanciamento possa intervenire.

Peccato che prima di quei 5 minuti il nostro nuovo server farà parecchia fatica a rispondere a tutte queste richieste, perdendo cosi di fatto parecchi utenti a causa di errori di pagina non trovata oppure di time out per la troppa attesa etc….facendo perdere parecchi soldi all’azienda. Questo tipo di problema è chiamato “staleness”, e può essere aggirato con altre tecniche che non si basano su una metrica numerica.

Come implementare il load balancing:

Come scegliere quindi su quale server dirigere una richiesta?

La tecnica di Load Balaincing più semplice è detta Round Robin, il suo principio e’ che ogni richiesta che viene effettuata viene smistata su un server differente, a rotazione.

In un cluster di 100 macchine, 100 richieste verranno distribuite su tutti 100 i servers a rotazione dal primo all’ultimo. Questa è una tecnica molto semplice da usare, e inclusa ad esempio già in Apache, ma si porta il limite che se un server è sovraccarico non avrà mail il tempo rientrare in una situazione di normalità che subito dopo dovra’ gestire un’ennesima richiesta e cosi via.

La tecnica “Random” ci offre un modo elegante per distribuire le richieste; in pratica non si basa su nessuna metrica, ma per i puristi resta comunque fuori controllo poiche’ offre comunque la possibilià (anche se randomica) di continuare a girare richieste verso server già sovraccarichi.

Una variante della tecnica “Random” è la “Weighted Random“, dove viene introdotta la variabile “potenza del server”, ossia i server più potenti avranno una possibilià più alta di ricevere richieste, rispetto ad hardware meno performante.

La tecnica “Predictive” invece è una variante del “Round Robin”, in questa metodologia vengono introdotte alcune variabili al normale ciclo per permettere di avere una ripartizione più accurata saltando ad esempio i server già troppo carichi. E’ una tecnica implementata a livello di Load Balancers hardware, e i produttori sono di solito restii a documentare gli algoritmi “Predictive”.

Resta scontato che, una volta scelta la tecnica preferita, dovremo prendere in considerazione anche altri problemi. Ora, ad esempio, proviamo ad uscire dal ragionamento di un singolo Load Balancer, e proviamo ad aumentare la posta ed a pensare in modalita’ High Availability con almeno due bilanciatori dove il lavoro del primo verrà supportato o, in caso di problemi, preso in carico dal secondo, che redistribuirà il traffico secondo una sua logica.

Per l’utente finale (colui che naviga dal suo browser) non cambierà nulla, infatti il browser si connetterà ad un IP dove non ci sarà un webserver ad attenderlo, ma il Load Balancer. Il Load Balancer girerà quindi, seguendo il nostro metodo di allocazione scelto, la richiesta ad un webserver scarico pronto a risponderci.

Cosa fondamentale e’ che i due, o più load balancer, devono essere in grado di parlarsi e condividere informazioni, così che entrambi sapranno che un dato server è da considerare sovraccarico o che un altro server sta per uscire dal pool.

Come scegliere il giusto load balancing

Scegliere il metodo di load balancing, e lo strumento col quale applicarlo, necessitano quindi di studi specifici sul tipo di traffico, e sull’architettura dell’applicazione che si vuole bilanciare, soprattutto quando entrano in gioco variabili come SSL.

L’SSL è basato sulla generazione di un certificato legato ad un IP, e in uno scenario dove abbiamo diversi IP virtuali che rigirano il traffico verso altri “nattati” diventa quantomeno improbabile poter gestire in modo corretto il certificato. Questo proprio perche’ il certificato è usato per validare la reale identità del server web, quindi mettendoci in mezzo un load balancer otterremmo un “man in the middle” che invalidera’ la connessione SSL.

L’unico modo diventa spostare la connessione SSL solo tra browser e Load balancer, inserendo il certificato sul VIP del sistema di Load Balancing e lasciando il traffico dopo il Load balancer in chiaro (anche se è sempre possibile attraverso una VPN ottenere maggiore sicurezza sui canali di comunicazione).

In sostanza, il Load balancing è un argomento semplice da capire, e probabilmente ancora più semplice da ottenere anche con hardware non dedicato, grazie alle diverse opportunità che il mondo Open Source ci regala.

Come sempre, il grosso del problema è strutturare l’applicazione nel suo complesso, incastrando i vari elementi affinché tutto il flusso dei dati sia ottimale.

La scelta del bilanciatore non e’ facile, ce ne sono di diversi tipi, sia hardware che software e, molte volte, la loro bonta’ non dipende dal prezzo che lo pagate ma dalla giusta scelta che farete a monte, di ottimizzazione del servizio che dovete erogare. Possiamo dire che molto spesso, in ambito Opensource la scelta ricade su LVS, HAProxy, Pound…, mentre in ambiti piu’ istituzionali (Banche, Assicurazioni etc) la scelta spesso ricade su F5, Citrix, Radware….

Personalmente sono un sostenitore di LVS, che ho usato spesso in grossi progetti, ma vediamo quali sono i suoi punti di forza confrontandolo con l’altro ottimo prodotto Open HAProxy.

LVS lavora in kernel-space (disponibile quindi solo per Linux) il che lo rende estremamente leggero e veloce, anche se limitato in termini di funzionalità. Haproxy è invece un software che gira in user-space, sicuramente più portabile (gira praticamente su qualsiasi Linux/Unix) ma anche più costoso in termini di risorse.

Per darvi un idea di quante poche risorse usa LVS, considerate che ogni connessione attiva occupa solo 128 bytes di memoria (nella tabella dove queste vengono memorizzate). Con circa 4GB di RAM sarete in grado di smistare qualcosa tipo 500.000 connessioni simultanee.

LVS lavora al layer 4 (vedi Open Systems Interconnection), mentre HAProxy lavora al layer 7 della pila OSI. Se questo da una parte è un vantaggio per haproxy, che può ispezionare anche il contenuto del pacchetto, di fatto si traduce in un maggiore carico a livello di CPU e quindi minore scalabilità.  In un bilanciatore di carico con LVS il carico del server sarà quasi sempre pari a 0.00, mentre con haproxy si manterrà intorno allo 0.50.

Sempre con LVS è possibile ottimizzare il consumo di banda dei singoli server che compongono il cluster. Se configurato in modalità “Direct Routing” (o LVS-TUN) il bilanciatore si farà carico solo del traffico in ingresso mentre saranno i singoli server di backend ad inviare il traffico di risposta ai client remoti. Con haproxy (o LVS configurato come NAT) tutto il traffico IN/OUT passa dal bilanciatore il che lo tiene maggiormente sotto stress e vi constringe a dimensionarlo in modo da poter sostenere un traffico di rete pari alla somma totale del traffico diretta verso l’intero cluster.

Non ultimo LVS puo’ vantare il tool ipvsadm, questo ottimo tool aggiorna la tabella d’instradamento IPVS nel kernel. Ipvsadm consente di modificare la configurazione di LVS aggiungendo e rimuovendo servizi, modificando la modalita’ di forwarding, paradigmi di bilanciamento, ecc. Il pacchetto ipvsadm non ha interfacce grafiche e segue il principio unix, fare una cosa sola e farla bene, quindi risponde al solo compito di avere uno strumento per il bilanciamento a livello 4.

Con ipvsadm è possibile selezionare un metodo per passare i pacchetti dal server LVS ai real server dove gira il servizio, i metodi principali sono:

LVS-DR (direct routing) dove il MAC addresses nel pacchetto è cambiato ed il pacchetto indirizzatto verso il real server
LVS-NAT basato sul network address translation (NAT)
LVS-TUN (tunneling) where the packet is IPIP encapsulated and forwarded to the realserver.

Praticamente un bilanciatore di carico con LVS lo potete accendere, configurare e dimenticarvelo per anni.