How To

Come creare una piccola VPN tra due computer in due comandi

Logo di OpenSSH

Premessa: questo how-to in realtà è farina del sacco d'altri che però mi hanno concesso volentieri la possibilità di "divulgare" ( si fa per dire) questo piccolo trucchetto molto utile se si ha una macchina, accesa e distante, su cui si deve lavorare. Per esempio, a casa state scaricando con l'interfaccia web di transmission l'ultima immagine per l'installazione di ubuntu e volete controllare a che punto è dall'ufficio, così potrete farlo comodamente Sorriso

Livello di conoscenze richiesto: Non serve di fatto sapere cos'è ssh e come funziona (magari nasce la curiosità), bisogna saper usare la shell.

Obiettivo: Vogliamo creare una connessione punto-punto tra il nostro computer che si trova in un posto a caso nel mondo, e il nostro fidato server che si trova nella nostra casetta. Questa connessione dev'essere prima di tutto semplice, e fatta in modo che io dal mio client possa comunicare con il server come se si trovasse nella mia rete locale, me dev'essere sopratutto sicura.

SSH permette di fare questo fin dalla versione 4.2, seguendo alcuni semplici passi.

Pre-requisiti:

  • ssh-server e ssh-client devono essere installatì sul server alla versione 4.2
  • Il login da root deve essere abilitato.
  • Il server deve permettere i tunnel tun (di default non è così) e deve permettere al root di fare il login, quindi nel file /etc/ssh/sshd_config devono essere presenti le righe:
    PermitRootLogin yes
    PermitTunnel yes
  • Sul client e sul server bisognerà agire come utente root, per poter creare l'interfaccia tun necessaria alla connessione

Comandi per creare la connessione: 

# ssh -w X:X This email address is being protected from spambots. You need JavaScript enabled to view it. 

e poi una volta dentro la sessione ssh: 

# ifconfig tunX 10.0.X.1 pointopoint 10.0.X.2


NB Al posto di X usare un numero, deve essere diverso per ogni client che si connetterà)

Con questi due semplici comandi, uno dato sulla macchina locale e uno sulla macchina remota, abbiamo creato un'interfaccia di rete tunX sia sul client che sul server, e quella sul server ha indirizzo 10.0.X.1 ed è connessa a 10.0.X.2, che sarà l'indirizzo "virtuale" del nostro client.
Ssh si può anche eseguire in background ( nella modalità detta "one hit"), e questo permetterebbe di chiudere la finestra del terminale aperta prima, quindi al posto dei due comandi di prima si può eseguire in un colpo solo:

# ssh -f -w X:X This email address is being protected from spambots. You need JavaScript enabled to view it. 'ifconfig tunX 10.0.X.1 pointopoint 10.0.X.2'

NB Questa modalità è consigliata quando si è certi della correttezza della configurazione, dato che è più difficile accorgersi di eventuali errori poichè il terminale ssh è subito chiuso

Per ultima cosa bisogna dire al client che è connesso al server

ifconfig tunX 10.0.X.2 pointopoint 10.0.X.1

 

Abbiamo finito! Ammiccamento