VPN ssh senza alcuna configurazione
Le VPN sono un ottimo strumento per accedere alle risorse su una rete remota come se fossero locali.
Lavorando spesso in giro, io li uso molto e persino per accedere alla rete domestica quando sono via.
Anche se progetti open-source come OpenVPN hanno reso abbastanza semplice la configurazione del proprio server VPN e la configurazione dei client per la connessione, richiedono ancora alcune impostazioni e un’ulteriore porta aperta per il servizio VPN.
Uno strumento VPN molto utile che ho usato molto ultimamente è sshuttle.
sshuttle è fondamentalmente VPN-over-SSH. SSH è di solito disponibile su qualsiasi macchina server (physical machines, cloud instances, containers), e può essere facilmente installato dove non c’è (come macchine desktop) con un singolo comando.
sshuttle non richiede alcuna configurazione lato server o privilegi speciali sull’host remoto: se si può usare SSH in una macchina, è possibile utilizzare anche sshuttle. Crea un tunnel SSH e inoltra il traffico per le reti specifiche dalla macchina locale al server remoto.
Installiamo sshuttle
in ditribuzioni debian-like basta digitare il comando:
$ sudo apt install sshuttle
RedHat-like basta digitare il comando:
#yum install sshuttle.noarch
Creiamo una connessione VPN
sshuttle è facile da usare, per esempio:
$ sshuttle 10.0.1.0/24 10.0.2.0/24 --remote=remote.example.com --auto-hosts
inoltrerà il traffico per le sottoreti 10.0.1.0/24 e 10.0.2.0/24 attraverso remote.example.com, in modo che tutte le macchine su quella rete siano accessibili dalla macchina server e viceversa.
L’opzione --auto-hosts è piuttosto utile: aggiunge automaticamente gli hostnames al file /etc/hosts, in modo che possano essere utilizzati al posto degli indirizzi IP.
Dato che sshuttle usa SSH sotto il cofano, qualsiasi configurazione utente da ~/.ssh/config viene rispettata.