NGINX ecco le ragioni per cui dovreste usarlo

nginx fast web servernginx (pronunciato come “engine-x”) è un web server/reverse proxy leggero ad alte prestazioni; è anche un server proxy di posta elettronica (IMAP / POP3), rilasciato sotto licenza BSD-like. Funziona su sistemi Unix, Linux, varianti di BSD, Mac OS X, Solaris e Microsoft Windows.

 

nginx fornisce rapidamente i contenuti statici con un utilizzo efficiente delle risorse di sistema. È possibile distribuire contenuti dinamici HTTP su una rete che utilizza i gestori FastCGI (ad esempio php5-fpm, php-fastcgi) per gli script, e può servire anche come un bilanciatore di carico software molto capace.

nginx utilizza un approccio asincrono basato su eventi nella gestione delle richieste in modo da ottenere prestazioni più prevedibili sotto stress, in contrasto con il modello del server HTTP Apache che usa un approccio orientato ai thread o ai processi nella gestione delle richieste.

nginx è più leggero e meno dispendioso di memoria rispetto ad Apache e già questo è un punto a favore del web server russo. Poi, nonostante sia più compatto, garantisce prestazioni migliori rispetto al concorrente, infatti con un bassissimo utilizzo di risorse, nginx garantisce tempi di risposta eccellenti anche in presenza di un numero molto elevato di connessioni concomitanti e, con un’occupazione di memoria pari a un quarto di quella pretesa da Apache, nginx è capace di garantire fino a quattro volte il numero di connessioni contemporanee gestite dal concorrente. Di fronte a questa verità, siti ad alto traffico come WordPress.com, YouTube e tanti altri non potevano non effettuare il cambio e spostarsi su nginx.

Secondo il Web Server Survey Netcraft di febbraio 2014, nginx è risultato essere il terzo server web più utilizzato in tutti i domini (15,00% dei siti esaminati) e il secondo server web più utilizzato per tutti i siti “attivi” (13,46% dei siti esaminati).

Una cosa importante da capire, comunque, è che nginx possiede un’architettura event-based ovvero, detta in modo semplice, non necessita di effettuare la creazione di tanti processi per quante richieste siano in esecuzione, ottimizzando l’uso di memoria al contrario di Apache che, in certi casi, può provocare problemi di memoria su WordPress o altri CMS. Apache usa infatti un thread per connessione, mentre nginx lavora in modo asincrono con thread non bloccanti, il che riduce l’uso di RAM ed ottimizza l’esecuzione dei processi.

Una delle caratteristiche che più colpisce di nginx è la capacità di supportare nativamente il load balancing, per cui possiamo utilizzare questa tecnica per scalare velocemente i server HTTP. Con il load balancing di nginx possiamo distribuire il traffico fra differenti server, definiti in un gruppo nel file “nginx.conf”, in questo modo, ad esempio, se in un particolare momento operativo dobbiamo aggiungere un nuovo webserver al nostro stack LAMP, possiamo semplicemente inserirlo nel gruppo di server gestito dal file nginx.conf. In seguito al reload della configurazione (nginx -s reload), nginx effettuerà le operazioni di load balancing fra tutti i server indicati nel file di configurazione, compreso l’ultimo appena inserito.

Anche l’installazione di nginx è semplicissima e si può effettuare da qualsiasi shell-bash con una sola riga di comando. Nello specifico sulle distribuzioni Ubuntu e Debian scriveremo:

apt-get install nginx

mentre per CentOS, Red Hat Linux Enterprise e Fedora digiteremo:

yum install nginx

Caratteristiche HTTP di base

  • Gestione dei file statici, file di indice, e auto-indicizzazione
  • Reverse proxy con caching
  • Bilanciamento del carico
  • Tolleranza agli errori
  • Supporto SSL
  • Supporto FastCGI con il caching
  • Server virtuali basati su nome ed IP
  • Streaming FLV
  • Streaming MP4, utilizzando il modulo streaming MP4
  • Autenticazione di accesso nelle pagine web
  • Compressione gzip
  • Capacità di gestire più di 10000 connessioni simultanee
  • Riscrittura degli URL
  • Log personalizzato
  • include server-side
  • resistente agli attacchi di Slowloris
  • WebDAV

Nel prossimo articolo inizieremo a vedere in modo dettagliato quali siano le migliori configurazioni.

IPCop il tuo prossimo Firewall

IPCop Firewall

IPCop Firewall

IPCop è una mini-distribuzione GNU/Linux open source adatta a realizzare un firewall hardware/software. Garantisce un’efficiente sicurezza della rete impedendo intrusioni esterne non autorizzate.

È un’ottima soluzione per piccole reti, reti aziendali e SOHO (Small Office-Home Office), ma può essere adattata ad ogni esigenza e può essere usata anche su hardware piuttosto datato, o dedicato, permettendo cosi anche un buon risparmio riguardo alla dotazione hardware necessaria. Può essere usata da amministratori di rete che non conoscono Linux per creare un firewall Linux-based, oppure può essere utilizzata da chi ne capisce di più (di Linux ovviamente!) ma non ha il tempo per configurare manualmente un un intero set di regole su iptables ecc…

IpCop offre un’ampia gamma di caratteristiche tecniche: si va dal Linux netfilter standard con capacità di NAT al supporto per DMZ via DNAT, dal supporto DHCP (sia server che client) al supporto NTP per sincronizzare e servire la data e l’ora, dalla possibilità di attivare un proxy a quella di attivare un IDS. Inoltre supporta quattro schede di rete e un numero illimitato di connessioni VPN, oltre ad offrire la possibilità di backup e restore della configurazione. È inoltre facilmente estendibile grazie a numerosi moduli presenti in Internet.

IpCop non richiede molta potenza di calcolo per poter funzionare: basta un 386 con poca RAM e MB di HD; ma per ottenere maggiori risultati è richiesto come minima configurazione un Pentium MMX con 64 Mb di ram e qualche GB di hard disk (prevalentemente per i log e le configurazioni). Se si intende utilizzare le funzioni di proxy sono consigliati 256 MB di ram e qualche GB in più libero. Le possibilità d’ installazione variano a seconda delle esigenze: via CD, chiavetta USB, o direttamente su Scheda Compct Flash (Occorre un hardware appropriato).

IPCop e’ rilasciato sotto la licenza GPL ed e’ sviluppata con il tradizionale stile dell’Open Source. Il progetto viene sviluppato grazie alla collaborazione di diversi sviluppatori sparsi per l’intero globo. L’interfaccia grafica e’ disponibile in 17 lingue diverse e la distribuzione include anche un raffinato e semplice sistema di aggiornamento.

La configurazione minima, prevede due interfacce di rete: Red (Internet) e Green(Lan); tuttavia si puo’ estendere la configurazione fino a 4 interfacce di rete, per aggiungere una DMZ e una scheda di rete dedicata al Wi-Fi.

La personalizzazione manuale delle regole e’ possibile attaverso la configurazione del file nel PATH: /etc/rc.d/rc,firewall.local e precisamente su /etc/rc.d/rc.firewall ed il comando e’:

$ /etc/rc.d/rc.firewall.local {start | stop | reload}

Particolarita’ davvero interessante di IPCop e’ quella di offrire la possibilita’ di espansioni aggiuntive di funzioni tramite un gran numero di addons .

Come accedere ai siti oscurati

zenmanUn po’ piu’ liberi con ZenaMate

Il concetto alla base di tutto e’ che Internet e’ considerato un diritto dei cittadini, questo e’ ormai assodato in quasi tutte le nazioni avanzate, tanto che persino in Italia, che come sempre arriva lunga su ogni questione, stanno lavorando alla prima bozza della Dichiarazione dei Diritti in Internet (PDF) .

Ok, tutto bello, peccato pero’ che quando ci giri su Internet ti accorgi che i tuoi diritti di cittadino sbattono, cosi’ come nel mondo reale, contro gl’interessi delle multinazionali.
Facciamo un esempio, a volte capita di navigare su youtube e trovi il video dell’artista di tuo piacimento, clicchi speranzoso di poter visionare quel video ed invece ti viene mostrata una faccina triste che ti dice che “quel contenuto non e’ visibile dal tuo paese”…..   COOOOSAAAAAA ????????

Tutto ruota dietro ai diritti d’autore ed alle royalty dello show business, questo perche’ in molte (non in tutte) nazioni esistono enti quali la SIAE in Italia o la GEMA in Germania che richiedono il pagamento di dazi, assurdi, per la visione di video, e non solo come potreste pensare quelli nuovi in classifica ma di qualunque eta’ essi abbiano.

Questo a mio parere lede qualunque tipo di diritto del cittadino ad usare il mezzo Internet.

A fronte di questo negli anni si sono escogitati sistemi di vario genere per bypassare queste situazioni ed altre, relative a siti oscurati, come fu per “The Pirate Bay” ecc….., ma molto spesso questi richiedono una conoscenza informatica che non e’ spesso presente per ogni singolo utilizzatore.

Oggi esiste pero’ tra le tante soluzioni anche quella offerta da un’azienda anglo/tedesca che ha sviluppato un’applicazione facilissima da installare, come estensione, per qualunque browser (Chrome, Firefox, Opera, Android, Safari…) e che permette con un semplice click di oltrepassare quel tipo di barriere poste in essere per giochi di potere ed economici, il suo nome e’
ZenMate.

ZenMate permette di creare una rete VPN direttamente dal browser per riuscire ad accedere a qualsiasi sito, sia a siti con limitazioni geografiche, sia a siti bloccati sul pc dell’ufficio o della scuola.

La cosa veramente interessante è che ZenMate può assegnare un indirizzo ad ogni “scheda” del browser, per ad esempio accedere ad un sito camuffandosi da utente che si collega dagli Stati Uniti ed ad un altro da utente di un Paese europeo e cosi via.

Caratteristiche:
-Accedere a qualsiasi sito web da qualsiasi luogo
-Crittografare il traffico del browser per una maggiore privacy
-Accedere a siti dal pc del posto di lavoro o della scuola senza restrizioni
-Accelera la connessione a Internet
-Si installa in 1 click!

In questo esempio vedremo l’installazione su Chrome, ricordo anche che con ZenMate non dovrete modificare i DNS o comprare servizi che vi permettano di bypassare il problema.

Come funziona:

1) Avete bisogno del browser chrome.

2) Installate questa estensione.

3) Una volta installato il pacchetto, si aprirà una pagina, qui dovrete inserire la vostra mail e successivamente cliccare su Get secured now.

4) A questo punto, il simbolo di ZenMate diventerà verde e potrete navigare nei siti che prima erano oscurati.

Vi ritroverete cosi con il simbolo dello scudo di ZenMate di fianco alla Barra degli indirizzi di Chrome, cosi da poterla tenere sotto controllo ed utilizzarla al meglio, infatti qualora capitasse che anche cosi incappaste in un rifiuto potete cliccare sullo scudo attivando l’interfaccia di gestione e, nalla parte in basso a sinistra , noterete la voce “Change Location”, al suo interno vi vengono mostrate 6 nazioni diverse da scegliere per far si che il vostro traffico venga reindirizzato su IP che probabilmente non risultano nelle BlackList.

Per fare il test, potete utilizzare questa lista dei siti bloccati in italia.

Twemproxy il proxy per Memcached

twemproxy2

Twemproxy (repository GitHub) è un proxy server che consente di ridurre il numero di connessioni aperte verso un server Memcached o Redis. Per cosa può essere utile questo strumento?

 

 

Le caratteristiche principali sono :

– ridurre il numero di connessioni al cache server agendo come un proxy;

– sharding di dati automatico tra più cache server;

– supporto per l’hash con diverse strategie e funzioni di hashing;

– configurabile per disabilitare i nodi caduti;

– esecuzione di istanze multiple, consentendo al client di connettersi al primo proxy server disponibile;

– pipelining e batching di richieste con risparmio di round-trip;

– configurabile per disabilitare i nodi non più funzionanti, e richiamarli successivamente, dopo un po’ di tempo;

Twemproxy è stato reso open source da Twitter (che lo ha sviluppato per le proprie esigenze) all’inizio del 2012, con il supporto a memcached, e recentemente ha aggiunto anche il supporto a Redis. Twitter fa uso estensivo dei cache server ed il sistema sul quale gira Twemproxy, per Twitter, è di dimensioni impressionanti; immaginate che i sistemisti devono gestire centinaia di cache server, che a loro volta amministrano svariati TB di dati ciascuno per oltre trenta servizi diversi, in-memory, inclusa la memorizzazione dei tweet. Parliamo di almeno due milioni di miliardi di query al giorno, ossia più di ventitré milioni di query al secondo, per un’infrastruttura che, peraltro, continua a crescere in maniera esponenziale.

Leggi anche articolo (“Ottimizzazre grazie a Memcached“)

 

GreenSQL il FW per i DB

greensql-architecture
GreenSQL: un reverse proxy contro gli attacchi SQL injection

GreenSQL è un’interessante applicazione che promette di proteggere un database da eventuali attacchi dannosi. Sostanzialmente si tratta di un firewall open source che fa da filtro tra l’applicazione web e il database. Funziona come un proxy, l’applicazione invece di connettersi al database si connette a GreenSQL che poi gestisce la connessione con il database vero e proprio.

Attacchi SQL injection

Un attacco di tipo SQL injection consiste nell’inserimento “injection” di una particolare query SQL nei dati passati in input ad una applicazione da parte di un client allo scopo di provocare l’esecuzione di comandi SQL predefiniti.
Un exploit di tipo SQL injection se coronato da successo può rivelare dati sensibili da un database, modificarli, eseguire operazioni amministrative sul database (come uno shutdown od un backup), e talvolta anche impartire comandi al sistema operativo sottostante.

GreenSQL è un database firewall Open Source utilizzabile per proteggere le basi di dati da attacchi di tipo SQL injection, operando come un proxy per comandi SQL,e con integrato il supporto per Mysql.

La sua logica operativa si basa sulla valutazione dei comandi SQL, sia utilizzando una matrice di indici di rischio, sia bloccando comandi amministrativi del db (DROP, CREATE, etc).

GreenSQL opera come un reverse proxy per le connessioni Mysql. Vale a dire che invece del server Mysql, le applicazioni si connettono al server GreenSQL, che analizzerà le queries SQL e le inoltrerà al server Mysql di back-end.

Sostanzialmente funziona così: se la query mandata dall’applicazione è ritenuta rischiosa da parte di GreeSQL essa non viene mandata al DB e GreenSQL restituisce all’applicazione un risultato nullo. Alternativamente, se la query non presenta problemi, viene inviata al server e la rispostata arriva poi alla web application.

Per default GreenSQL lavora sulla porta 3305 girando tutte le richieste al server Mysql sulla porta

http://127.0.0.1:3306

Si puo’ configurare in modalita’ differenti quali :

  • Simulation Mode (database IDS): Non effettua nessuna operazione ma permette l’analisi del comportamento di GreenSQL.
  • Blocking Suspicious Commands (database IPS): In questa modalita’ effettua un analisi euristica per cercare query giudicate “illegali” e le blocca automaticamente. In questa modalita’ si richia di bloccare falsi positivi e far eseguire query che risultano essere falsi negativi.
  • Learning mode: si usa per evitare i problemi del Blocking Suspicious mode. Permette di visionare l’analisi della query e “informare” di volta in volta il software se bloccare o no questo tipo di operazioni.
  • Active protection from unknown queries (db firewall): dopo un certo periodo di “apprendimento” nella modalita’ learning mode il sistema puo’ passare alla fase successiva (bene, ho imparato tutto, ora sono pronto ad operare da solo!).

Passiamo ora all’installazione:

Si scarichi l’ultima versione del software dalla url del sito http://www.greensql.net in particolare la “GreenSQL Firewall”
riferito alla vostra piattaforma ed una volta installato il pacchetto inerente alla vostra piattaforma.

Dopo l’installazione il server greensql girera’ sulla porta 3305. provate ad accedervi con il comando:

mysql -h 127.0.0.1 -P 3305 -u root -p

Dopo aver digitato la password di root dovreste andare sul prompt di mysql (quit per uscire).

Ora il sistema e’ pronto per essere utilizzato. Non dovete far altro che avere l’accortezza di modificare i vostri script di configurazione chiedendo di connettersi sulla porta 3305 piuttosto che la 3306.

Se ad esempio il vostro CMS e’ gia’ impostato per effettuare la connessione sulla porta di default allora editate il configuration.php (o relativo file) nella sezione specifica. Ad esempio se trovate qualcosa del tipo:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

sostituitela con

$link = mysql_connect('localhost:3305', 'mysql_user', 'mysql_password');

Installiamo ora la greensql-console che permette di gestire, manutenere ed impostare tutte le caratteristiche di GreenSQL.

Scaricate sempre dal link per i download scaricate la “Management Console” relativa alla vostra piattaforma :

tar xvfz greensql-console-<VERSIONE> -C /opt/

cd /opt/greensql-console

vim config.php

Editate i campi:

$db_name = "greendb";

$db_user = "green";

$db_pass = "greensqlpassword";

Accertatevi di aver impostato i permessi della cartella template_c a 777:

# chmod 777 templates_c

Ora potete accedere via web alla management Console dalla URL:

http://<vostro_indirizzo_ip>/greensql-console

Da qui potete verificare tutte le operazioni che effettua il GreenSQL con le varie possibilita’ di operare.

Infine per fermare e riavviare il servizio potete eseguire i comandi:

/etc/init.d/greensql-fw stop

/etc/init.d/greensql-fw start

Buon divertimento !