BlackBox

Il tema della privacy negli ultimi tempi è davvero diventato il tallone di Achille sulla rete.
Se da un lato, abbiamo ottenuto migliorie e sconvolgimenti della vita comune, grazie alla tecnologie e all’interconnessione, dall’altra stiamo e abbiamo pagato un prezzo: i nostri dati, la nostra privacy.
Di recenti mi è capitato di sentire un affermazione che ritengo veritiera:

Se ti offrono qualcosa GRATIS sul web, il compenso saranno i tuoi dati.

Ecco perché ho deciso di non pagare questo prezzo, costruendo un BOX capace di nascondere tutto il traffico verso internet, proteggendo non solo i miei dati ma anche da tutti quegli ads fastidiosissimi che compaiono sempre nelle nostre navigazioni; tutto questo senza installare nessun software, semplicemente utilizzando la BLACKBOX.
E’ chiaro molte case di antivirus importanti, come ad esempio la Symantec e la KasperSky hanno i loro prodotti ben confezionati che con un centinaio di euro permettendo di fare ciò che vi propongo in questo articolo, bello e pronto. Ma a noi le cose piace crearcele!
Facciamo un pò di chiarezza:
Per la realizzazione della blackbox ho utilizzato un raspberry pi 0 W, portatile facilmente trasportabile con all’interno tutta la tecnologia che necessitiamo per lo scopo detto prima.
Installato il sistema operativo Raspbian sulla scheda ho effettuato delle configurazioni come segue.

  • Ottimizzato Raspberry Pi con sudo raspi-config
    • Selezionato 2 Change User Password per cambiare la password di default.
    • Selezionato 3 Boot Options -> B1 Desktop / CLI -> B2 Console Autologin
    • Selezionato 5 Interfacing Options -> P2 SSH -> Yes
    • Selezionato 7 Advanced Options -> A3 Memory Split -> Immetti il numero 16

Ho aggiornato Raspbian e il kernel con i comandi di seguito:
sudo apt update && sudo apt -y upgrade
sudo apt install -y rpi-update
sudo rpi-update

dopodiché ho riavviato con: sudo reboot.

1 – INSTALLAZIONE DI OPENVPN

Ho installato una VPN con lo script di configurazione automatica PiVPN – che installa sulla tua raspberry una OpenVPN perfettamente funzionante.
curl -L https://install.pivpn.io | bash
Dopo l’installazione ho cercato l’indirizzo IP che fa parte della configurazione della VPN appena installata con il comando:ifconfig tun0 | grep 'inet addr'
Nel mio caso questo ritorna: inet addr:10.8.0.1 P-t-P:10.8.0.1 Mask:255.255.255.0
Bene, a questo punto modifichiamo il file di configurazione di OPENVPN cosi: sudo nano /etc/openvpn/server.conf
Inserendo queste modifiche:

  • Modifica push "dhcp-option DNS 8.8.8.8" in push "dhcp-option DNS 10.8.0.1"
  • Chiudi e salva con la combinazione di tasti Ctrl+X, invio y, invio.
  • Riavvia OpenVPN: sudo systemctl restart openvpn

2 – INSTALLAZIONE DI PI-HOLE

Partiamo dalle basi, che cos’è pi-hole?
Pi-hole è un software che, con un solo comando e poche risorse, è in grado di installare un server DNS (Domain Name System) nella rete aziendale o casalinga, in grado di bloccare tutte le richieste di pagine pubblicitarie eseguite da ogni dispositivo in rete, smartphone compresi, senza bisogno di modificarli.
Quando si apre un sito internet, il computer richiede al server (solitamente rappresentato dal router ADSL), come trovare tutte le parti che compongono il sito web richiesto, testo, immagini, video e banner.
Pi-hole intercetta la richiesta delle pubblicità e le blocca.
Quindi installiamo, servirà alla nostra blackbox per proteggerci da tutte queste richieste.
curl -sSL https://install.pi-hole.net | bash

Una volta eseguito il comando, nella finestra che appare selezionare la scheda “tun0“, non dimentichiamoci che bisogna modificare, nella schermata successiva l’indirizzo che ci porta in: 10.8.0.1/24 come indirizzo del server pihole e 192.168.1.1 come indirizzo del router.

Dopo l’installazione andremo a configurare il dnsmasq con il comando:
sudo nano /etc/dnsmasq.conf
cambiando la riga commentata da#listen-address= in: listen-address=127.0.0.1, 192.168.xxx.xxx, 10.8.0.1.Inserendo al posto degli asterischi l’indirizzo IP assegnato dal vostro router.
Riavviamo infine il servizio con: sudo systemctl restart dnsmasq
Riassumendo abbiamo fin’ora installato la nostra VPN che ci servirà per accedere alla nostra blackbox e a tutti i suoi servizi, ed installato il pi-hole che blocca la pubblicità dei vari siti proteggendoci da malware e quant’altro.

4 – AGGIUSTA IL FIREWALL UFW (SE INSTALLATO)

ufw allow 53

3 – INSTALLAZIONE DI DNSCrypt

Addeso installeremo l’ultimo TOOL essenziale alla nostra blackbox che sarebbe il DNSCrypt.
Ci sono stati e ci sono tutt’ora numerosi esempi di  man-in-the-middle, e snooping del traffico DNS, rappresentando un serio rischio di sicurezza informatica.
Cos’è un DNSCrypt? è il nuovo strumento offerto dal principale gestore dei DNS internazionali, OpenDNS, in grado di cifrare tutte le nostre comunicazioni con i server DNS. Esso permette di risolvere le vulnerabilità legate alle comunicazioni DNS, come la vulnerabilità Kamisky del 2008, proteggendo l’ultimo miglio della connessione ad internet dell’utente, ovvero le comunicazioni tra ISP e Utente.
Andiamo alla shell, installando i pacchetti necessari al funzionamento del tool:
sudo apt -y install build-essential tcpdump dnsutils libsodium-dev
sudo apt -y install locate bash-completion libsystemd-dev pkg-config
Una volta terminate le installazioni andremo a scaricare e compilare direttamente sul nostro raspberry il software:
mkdir -p dnsproxy
cd dnsproxy
wget https://launchpad.net/ubuntu/+archive/primary/+files/dnscrypt-proxy_1.9.5.orig.tar.gz
tar -xf LATEST.tar.bz2
cd dnscrypt-proxy[tab per completare]
sudo ldconfig
./configure --with-systemd
make
sudo make install

Aggiungiamo l’utente:
sudo useradd -r -d /var/dnscrypt -m -s /usr/sbin/nologin dnscrypt
In questa guida utilizzerò il server https://dnscrypt.nl/ voi ovviamente avete la possibilità di scegliere qualsiasi server.
cp dnscrypt-proxy.socket dnscrypt-proxy@dnscrypt.nl-ns0.socket
Una volta copiato il socket col nuovo nome andremo a modificarlo:
nano dnscrypt-proxy@dnscrypt.nl-ns0.socket
Inserendo questa configurazione:
[Unit]
Description=dnscrypt-proxy
dnscrypt.nl-ns0 listening socket
[Socket]
ListenStream=127.10.10.1:11153
ListenDatagram=127.10.10.1:11153
[Install]
WantedBy=sockets.target
Chiudete il file e salvate.
Copiate e modificate il .service cp dnscrypt-proxy.service dnscrypt-proxy@.service
[Unit]
Description=DNSCrypt client proxy
Documentation=man:dnscrypt-proxy(8)
Requires=dnscrypt-proxy@%i.socket
After=network.target
Before=nss-lookup.target
[Install]
Also=dnscrypt-proxy@dnscrypt.nl-ns0.socket
WantedBy=multi-user.target
[Service]
Type=simple
NonBlocking=true
ExecStart=/usr/local/sbin/dnscrypt-proxy –resolver-name=%i –user=dnscrypt
Restart=always
Salva e copia tutti i file in  systemd : sudo cp ./dnscrypt-proxy@* /lib/systemd/system/
Avvia le configurazioni appena fatte:
sudo systemctl daemon-reload
sudo systemctl enable dnscrypt-proxy@.service
sudo systemctl enable dnscrypt-proxy@dnscrypt.nl-ns0.socket
Riavvia la blackbox con:sudo reboot
Modifica la configurazione di DNSMasq: sudo nano /etc/dnsmasq.d/02-dnscrypt.conf
Inserendo la riga:
server=127.10.10.1#11153
Modifica il file di configurazione di pi-hole :sudo nano /etc/dnsmasq.d/01-pihole.conf
commentando le voci #server=…
Salvate e uscite.
Aprite il file di configurazione:
sudo nano /etc/pihole/setupVars.conf
Inserendo i commenti in:
#piholeDNS1=… #piholeDNS2=…
Riavviamo il DNSMasq con:sudo systemctl restart dnsmasq
Riavviamo infine la nostra Raspberry Pi :sudo reboot
Spero di essere stato chiaro e conciso, ovviamente essendo di ridotte dimensioni può essere sempre spostato ed occultato ovunque si voglia, permettendo così l’uso desiderato.
Vi ricordo che in qualsiasi posto voi andiate ad installarlo, bisogna aprire il numero della porta UDP o TCP a seconda della scelta fatta in fase di installazione, altrimenti non riuscirete a collegarvi, e poi vorrei aggiungervi una chicca del servizio NO-IP.com che vi permetterà di avere un DNS sempre aggiornato sulla vostra scatola nera anche se l’indirizzo IP del vostro ROUTER dovesse cambiare.
Installate tramite terminale: sudo apt-get install ddclient
e dopo aver fatto la registrazione al servizio free di no-ip.com configuratelo come segue:

protocol=dyndns2
use=web, if=eth0
server=dynupdate.no-ip.com
login=yourusername
password=yourpassword
yourhostname.no-ip.org

Il gioco è fatto adesso riavviate il servizio:
sudo /etc/init.d/ddclient restart
Buon proseguimento, se vi è piaciuto mettete un like e restate aggiornati.

Leave a Reply

Your email address will not be published. Required fields are marked *