
Mi tocca precisare prima di continuare che il dispositivo che sto andando ad esporvi per la creazione, è in una qualche forma già esistente col nome di gl.inet – troverete altre informazioni qui –
Partiamo dal WireGuard (WikiPedia):
WireGuard è un programmaopen-source e un protocollo che implementa la tecnica della virtual private network (VPN) per creare connessioni sicure punto-punto in configurazione routed o bridged. Viene eseguito come modulo nel kernel linux e punta ad avere prestazioni migliori rispetto ad IPsec e OpenVPN.

Da test effettuati che vi riporto effettivamente il WireGuard è nettamente più veloce, sia in termini di latenza di linea che per quanto riguarda le linee di codice utilizzate per implementarlo. Vi mostro un esempio. Oltre che è facilmente controllabile per via di un codice molto snello.

Associazione punto punto alla rete:

Ma il bello qual’è? che questa nuova VPN veloce e riutilizzabile è usufruibile attraverso qualsiasi dispositivo: per me invece sarà un passettino un pò più complesso; verrà utilizzato su un dispositivo portatile così da avere una connessione protetta ovunque io voglia.

Siamo quasi pronti:
Entrati nella piccola RaspBerry aggiornamo il software.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get install wireguard-dkms wireguard-tools
Adesso dobbiamo creare le chiavi Privata e Pubblica per la connessione
Umask 077
wg genkey | tee server_private_key | wg pubkey > server_public_key
wg genkey | tee client_private_key | wg pubkey > client_public_key
Dopo aver ottenuto la nostra chiave modifichiamo sudo nano /etc/wireguard/wg0.conf
ed aggiungiamo:
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PrivateKey = <insert server_private_key>
ListenPort = 51820
[Peer]
PublicKey = <insert client_public_key>
AllowedIPs = 10.0.0.2/32
Usciamo con ctrl+x e diamogli un yes. Avviamo il nostro servizio al boot:
wg-quick up wg0
systemctl enable wg-quick@wg0
Controlliamo se tutto è andato a buon fine:
wg show
ifconfig wg0
E dovrebbe apparire una cosa simile:
root@iron:~# sudo wg
interface: wg0
public key: mia chiave pubblica
private key: (hidden)
listening port: 51820
root@iron:~#
Facciamo le configurazioni del firewall necessarie su /etc/sysctl.conf:
Togliamo il cancelletto da:
net.ipv4.ip_forward=1
Poi…
sysctl -p
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 51820 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate NEW -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
apt-get install iptables-persistent
systemctl enable netfilter-persistent
netfilter-persistent save
Bene non ci resta che configurare la parte client:
Il tutto sta nel configurare un .conf con le informazioni necessarie per lo scambio di dati.
Esistono diversi tool per effettuare la connessione su tutti i sistemi operativi vi mostro qualche esempio:
Android: Wireguard | Windows – Apple – Linux: TunSafe |
Andiamo a modificare il file /etc/wireguard/wg0.conf dove all’interno inseriremo:
[Interface]
Address = 10.0.0.2/32
PrivateKey = <insert client_private_key>
DNS = 10.0.0.1
[Peer]
PublicKey = <insert server_public_key>
Endpoint = <insert vpn_server_address>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21
Abilitiamo sul nostro client il wireguard con il conf appena creato.
wg-quick up wg0
systemctl enable wg-quick@wg0
Collegiamoci adesso alla nostra rete e testiamo la connessione e il relativo indirizzo IP.
Così facendo abbiamo ottenuto una bella VPN su wireguard, ma se questa non è installata su server remoto ben poco abbiamo concluso.
Pertanto vi consiglio di utilizzare questa VPN server su RaspBerry su una connessione pubblica tanto da avere una VPN (veloce e con IP stealth) sempre anonima.
Vi ricordo che per navigare completamente anonimi bisogna anche modificare il Webrct su Firefox seguendo questo piccolo accorgimento:
Apri una nuova finestra e digita:
about:config
nel browser cerca:
media.peerconnection.enabled
e da true passa il valore in false con doppio click
Non dimenicate di fare un test per il leak.
http://dnsleak.com/.
Bene adesso abbiamo completamente terminato, se tutto è andato a buon fine sarete al sicuro dal disseminare i vostri dati online durante la navigazione.