NGROK – reverse proxy server cross-platform

ngrok mostrare un sito in locale

Ngrok Pubblica il tuo sito in localhost

Lo sviluppo di siti e di Webb Application e’, al giorno d’oggi, uno dei core business piu’ importanti per la maggior parte delle aziende in tutto il mondo, motivo per cui sono nati una grande quantita’ di tool per agevolare i web developer durante tutte le operazioni di sviluppo, test e produzione.

Molto spesso capita che non si abbia il tempo o anche il budget per gestire piu’ ambienti di sviluppo, cosi ci si riduce per avere tutto il proprio ambiente [sviluppo / test / pre produzione] soltanto sul proprio pc.

Come fare quindi se c’e’ bisogno di mostrare l’avanzamento del lavoro al cliente senza dover prima creare e/o aggiornare gli altri ambienti di test/pre-produzione??? …. e’ per aiutare in questa pressante fase che e’ nato un tool come ngrok.

Ngrok e’ un reverse proxy server con cui e’ possibile rendere “pubblico” un server locale, anche se e’ collocato dietro un NAT od un Firewall, il tutto tramite secure tunnel. Quindi attraverso Ngrok si potra’ implementare un personal cloud service direttamente dalla propria postazione di lavoro realizzando cosi uno stack LAMP/LEMP

 

INSTALLAZIONE

mkdir ngrok
cd ngrok/
wget -c https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip ngrok-stable-linux-amd64.zip

Dopo aver installato il pacchetto possiamo fare una prova, se ad esempio usate come web server Apache, potete farlo in questo modo;

sudo nano /var/www/html/index.html

<!DOCTYPE html> <html> <body> <h1>Prova</h1> <p>Test di Ngrock.</p> </body> </html>

Salviamo il file e ora possiamo avviare il tool puntandolo sulla porta su cui abbiamo in ascolto il nostro Web server:

ngrok http 80

Una volta lanciato il comando ci apparira’ qualcosa di simile:

Session Status online Session Expires 7 hours, 53 minutes
Version 2.2.8 Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://44c9afca.ngrok.io -> localhost:80
Forwarding https://44c9afca.ngrok.io -> localhost:80

Una volta avviato possiamo dunque iniziare ad usarlo anche tramite la comoda interfaccia Web:

http://localhost:4040

ngrok localhost

Tornando alla descrizione del Tunnel appena creato, le voci a cui dobbiamo fare caso sono:

  • Web Interface: tramite questo indirizzo potrai accedere ad un’interfaccia web dove puoi monitorare tutte le attività associate all’url che hai appena creato. Questo vuol dire che potrai vedere quanti utenti si stanno collegando ed altre informazioni.
  • Forwarding: questo è il link che dovrai fornire al tuo cliente. Hai entrambe le versioni, sia http che https. Lavorando in locale probabilmente userai quasi sempre l’http.
  • HTTP Requests: In questa sezione vedrai in tempo reale tutte le richieste http che vengono fatte tramite il tuo link. Ti è utile per capire se qualcuno sta guardando il sito in un dato momento.

Quindi dando al proprio cliente il link http://44c9afca.ngrok.io  quest’ultimo avra’ accesso alla root web del localhost

Questo vuol dire che se stai utilizzando MAMP o XAMPP verrà servito il file index.php all’interno della tua cartella /htdocs

Se invece utilizzi WAMP su Windows il tuo tunnel porterà gli utenti alla index.php della cartella www

Per coloro che utilizzano un Virtual Host per gestire i tuoi progetti la procedura e’
leggermente diversa ma pur sempre semplice; nella pratica bastera’ aggiungere un solo
parametro, come nell’esempio seguente:

ngrok http -host-header=miosito.dev 80

dove ovviamente al posto di “miosito.dev” metterete l’indirizzo del vostro in locale. ** WordPress per coloro che invece usano la piattaforma di WordPress si dovranno applicare altri accorgimenti per far in modo che il vostro cliente veda correttamente il sito. Questo perche’ tutti gli url che creati da WordPress sono assoluti ovvero mostrano per esteso l’indirizzo di un determinato documento. Per poter effettuare questo tipo di modifica consiglio di utilizzare un comodo tool come Relative URL , un tool che fa gia parte dei plugin consigliati da WordPress, con il quale sara’ possibile modificare URL da qualcosa come questo (esempio):

http://localhost:8080/wp/2012/09/01/hello-world/

in qualcos’altro come questo:

/wp/2012/09/01/hello-world/

Una volta effettuate tutte le modifiche del caso bisognera’ aggiornare il file wp-config.php
inserendo, prima della riga “/* i parametri dei re indirizzamenti, qualcosa del tipo:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

PS:Ricordatevi di disinstallare il plugin e rimuovere le righe di codice dal file wp-config.php quando metterete il sito online.

Le configurazioni possibili con Ngrok sono davvero svariate e potete trovare tutto cio che non e’ stato contemplato in questo articolo, direttamente sul sito del progetto NGROK

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.

Docker – costruire i contenitori

Docker costruire i contenitori

Docker costruire i contenitori

Recentemente abbiamo parlato della virtualizzazione tramite Docker (vedi articolo Docker – cosi cambia la virtualizzazione) e, prima di proseguire sara’ meglio rifare una piccola introduzione.

Docker e’ indubbiamente una valida alternativa alla virtualizzazione tradizionale nel mondo Linux. Questo tipo di virtualizzazione, detta a “container” non emula un’ intero hardware come fanno invece gli hypervisor tipo VMware, Virtualbox, Xen o KVM, ma crea invece dei “contenitori” nel sistema operativo dove possono essere messe in esecuzione applicazioni di vario genere in modo del tutto separato una dall’altra.

Dato che con il cloud il ruolo del sistema operativo diventa sempre meno importante perchè si punta più sullo strato applicativo, PaaS, rendendo il tutto più flessibile. A questo punto se dovessimo far girare 1000 clienti su un ambiente condiviso, diventerebbe interessante disporre di una tecnologia di virtualizzazione che riduca al minimo fisiologico gli overhead.

La virtualizzazione classica non è così, perchè per ogni ambiente applicativo, riservato ad un cliente, si dovrebbe  lanciare una intera macchina virtuale con dentro l’intero sistema operativo. E allora perchè non condividere lo stesso sistema operativo e invece isolare solo gli ambienti di esecuzione delle applicazioni , tipo application server, DB ecc…

I container sono dunque alla base dei moderni servizi cloud di tipo PaaS (Platform as a service) che usano questo tipo di virtualizzazione per misurare il consumo di risorse ed assegnarne i limiti.

Ad esempio, se su uno stesso server fisico, con una soluzione di virtualizzazione di tipo hypervisor si possono ospitare, supponiamo 50 virtual machines, con la virtualizzazione a container si potra’ arrivare anche a 1000 container. Questo perchè un container di per sè è solo un contenitore di processi, mentre una virtual machine completa contiene tutto un ambiente operativo emulato.

Il container può anche essere portabile, infatti ci basta copiare la directory che contiene il filesystem modificato dall’utente dopo la creazione del container, un piccolo file di configurazione, ed il container diventera’ eseguibile su qualsiasi sistema che supporti LXC.

Il concetto è talmente interessante, che qualcuno ha pensato di fare un sistema operativo Linux interamente basato sui container, in cui non c’è nemmeno un package manager perchè si assume che gli applicativi saranno solo in forma di container. Coreos è nato proprio con il principio di supportare ambienti di esecuzione a container, togliendo dal sistema tutto quello che non è strettamente necessario per farlo funzionare.

INSTALLAZIONE

Abbiamo tre possibili metodi d’installazione :

1) Centos

sudo yum -y install docker-io

2) Debian/Ubuntu

sudo apt-get update 
sudo apt-get install docker.io 
sudo sudo apt-get install lxc-docker

3) Download con Curl

sudo curl -sSL https://get.docker.io/ubuntu/ | sudo sh

* Linkiamo docker alla nostra bash

ln -sf /usr/bin/docker.io /usr/local/bin/docker
sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

* Rendiamo docker attivo all’avvio

update-rc.d docker.io defaults

P.S.: Ci sono molti contenitori già disponibili nella community docker, che possono essere trovati attraverso una ricerca. Ad esempio con questo comando cerchero’ la parola debian:

# docker search debian

NAME    DESCRIPTION      STARS     OFFICIAL   AUTOMATED
debian  Debianbaseimage  310         [OK]
google/debian            31                     [OK]

….e molte altre che potrete leggere dall’output completo.

** Installiamo e facciamo provisioning con una immagine Centos

# docker pull blalor/centos  # GitHub blalor/docker-centos-base  image

oppure per chi fosse interessato ad una immagine con gia inserito il tool Ansible (per il Configuration Management ed IT Automation) di cui ho da poco parlato, potra’ scegliere quest’altra immagine.

sudo docker pull ansible/centos7-ansible # GitHub Ansible on Centos7
Pulling repository ansible/centos7-ansible
fff2afd18a57: Download complete

Avviamo un container docker

Attiveremo ora un contenitore centos-base con una shell bash, utilizzando il comando run. Docker eseguira’ questo comando in un nuovo contenitore, -i attribuisce stdin e stdout, -t assegna un terminale.

docker run -i -t centos /bin/bash

Questo è tutto! Adesso stai usando una shell bash all’interno di un contenitore centos.
Per scollegarsi dalla shell la sequenza di escape e’ : Ctrl-p + Ctrl-q.

Diamo un’occhiata ai processi attivi tramite :

# docker ps -a
CONTAINER   ID IMAGE          COMMAND     CREATED
fff2afd18a57     blalor/centos     /bin/bash         About an hour ago

Il Dockerfile
Per automatizzare la procedura di creazione e modifica di un container docker, possiamo utilizzare il Dockerfile, che è una delle parti principali di Docker, infatti attraverso il Dockerfile è possibile non solo fare il deploy istantaneo automatizzato di più istanze e più container, ma è anche possibile eseguire il provisioning di queste istanze, automatizzando task di gestione del sistema, installazione del software e molto altro.

Nel prossimo articolo vedremo un esempio utile, utilizzando ad esempio un’applicazione leggera, che puo’ lavorare molto bene in un contenitore, come NGINX, il noto server web/cached per la gestione di siti web/proxy ad alto carico.

#DockerContainerAvviato

Come criptare traffico DNS con DNSCrypt Proxy

DnsCrypt-Proxy

DnsCrypt-Proxy

Ogni giorno moltissimi PC subiscono, durante la normale navigazione, una modifica delle richieste DNS, tecnica che rientra nel pericoloso campo del phishing : questo tipo di minaccia è subdola e molto pericolosa, perché permette ad un malintenzionato di reindirizzare le vere pagine web (digitate nel browser) verso siti civetta, trappole per rubare piu’ dati sensibili possibili, come utenze di banca password ecc, e spesso pieni di malware.

La minaccia è assolutamente concreta su qualunque sistema quindi anche su sistemi GNU/Linux, perché i DNS vengono utilizzati per risolvere gli indirizzi su qualsiasi PC con qualsiasi sistema operativo.

In questo articolo vedremo come criptare il traffico DNS su Ubuntu 14.04 per renderlo immune a questo tipo di minaccia, così da proteggerci in un’unica soluzione da spionaggio, spoofing e attacchi “man-in-the-middle”.

Criptare traffico DNS su Ubuntu con DNSCrypt
Sergey “Shnatsel” Davidoff, uno degli sviluppatori elementaryOS, mantiene un PPA per dnscrypt-proxy: possiamo quindi facilmente installare questo pacchetto sul nostro sistema Ubuntu.

Installiamo digitando da terminale:

sudo add-apt-repository ppa:shnatsel/dnscrypt
sudo apt-get update
sudo apt-get install dnscrypt-proxy

Se questa procedura non dovesse funzionare si puo’ comunque decidere di scaricare il pacchetto .tar.bz2 e procedere all’installazione nel seguente modod :

URL repository per il download del package : dnscrypt-proxy package

Una volta scaricato il pacchetto, prima di passare all’installazione sara’ bene effettuare una verifica della sua integrita nel seguente modo :

# openssl dgst -sha256 dnscrypt-proxy-1.4.2.tar.bz2
SHA256(dnscrypt-proxy-1.4.2.tar.bz2)= 766bcd8874cd6cbfeeeb7246c75c39ddc14317ad81ad713bd6cfc9529b2f0c0d

# drill -D TXT dnscrypt-proxy-1.4.2.tar.bz2.download.dnscrypt.org

Nel caso in cui il comando drill ritornasse un errore dovrete installare il seguente pacchetto sulla vostra macchina :

apt-get install ldnsutils

a questo punto dovreste avere nella risposta una riga come questa

;; ANSWER SECTION:
dnscrypt-proxy-1.4.2.tar.bz2.download.dnscrypt.org. 10000 IN TXT “766bcd8874cd6cbfeeeb7246c75c39ddc14317ad81ad713bd6cfc9529b2f0c0d”

in cui poter verificare che il codice numerico sia uguale al vostro e poter cosi’ procedere con l’installazione sicura del pacchetto.

bunzip2 dnscrypt-proxy-1.4.2.tar.bz2; tar xvf dnscrypt-proxy-1.4.2.tar -C /opt/
cd /opt/dnscrypt-proxy
./configure && make -j2
make install

se si dovesse presentare un errore di questo tipo: configure: error: libsodium >= 0.5.0 not found
il consiglio e’ quello di scaricare ed installare il pacchetto richiesto al seguente sito ” libsodium

cd /opt/llibsodium-0.5.0#
./configure --prefix=/opt/dnscrypt-proxy-1.4.2/
make && make check
make install

Per una maggiore sicurezza, il pacchetto utilizza un utente di sistema dedicato, senza privilegi – DNSCrypt configurera’ in modalita’ chroot la directory home dell’utente dedicato senza applicare privilegi di root.

NB: per Ubuntu 14.04 e derivate il pacchetto potrebbe interferire con la procedura di spegnimento, bloccando il PC. Possiamo risolvere digitando da terminale.

sudo ln -s /etc/apparmor.d/usr.sbin.dnscrypt-proxy /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.dnscrypt-proxy

Una volta installato DNSCrypt, bisogna fare in modo che la nostra connessione attuale (sia Ethernet che WiFi) utilizzi DNSCrypt per risolvere gli indirizzi DNS.

D’ora in avanti il nostro server DNS sarà 127.0.0.1

Configuriamo questo indirizzo aprendo il file /etc/resolv.conf ed inseriamo come voce

nameserver 127.0.0.1

tutte le altre impostazioni di DNSCrypt  possono essere modificate con estrema facilità editando il file /etc/default/dnscrypt-proxy.

sudo gedit /etc/default/dnscrypt-proxy

Un elenco di resolver DNS pubblici di DNSCrypt possono essere trovati nel link successivo.

Lista DNS Server pubblici

Per avviare il servizio facilmente ci bastera' digitare:

# dnscrypt-proxy --local-address=127.0.0.1 --daemonize

oppure

# dnscrypt-proxy --local-address=127.0.0.1:40 --daemonize

ps: 40 e’ la porta di utilizzo alternativo per filtrare il traffico, ma potete decidere voi se e quale usare.