Ciao a tutti e grazie del supporto.
Ora che la mia VPN su Raspoberry funziona bene come promesso incomincio a 
condividere qui i miei appunti.
L’ultimo problema che ho incontrato credo sia dovuto al fatto che avevo aperto 
una porta sul router solo col protocollo UDP.
Sta di fatto che quando l’ho aperta anche in modalita’ TCP le cose hanno 
iniziato a funzionare correttamente.

Ringrazio Liquido per gli stimoli e suggerimenti.
Di seguito i miei appunti, mi risulta facile condividerli in questo modo, piu’ 
avanti se lo trovate utile potremmo renderli disponibili in altra forma.

Sappiate che a breve, andro’ a seguire un corso dal titolo inquietante: 
"Installing and Configuring Windows Server 2012 (MOC 20410)".
E successivamente sono in lista per il MOC 20411 e per i corrispondenti per la 
versione 2016.

Buona serata a tutti.
A presto.
AS
_______________________________________________________________________________


Azioni per creare VPN (Virtual Private Network)

In pratica ovunque si sia e' come se si fosse collegati via cavo ad una propria 
rete, senza che dispositivi estranei possano sapere quello che vi sta
circolando.

Perche' una simile rete?
Per navigare in modo sicuro anche da fuori casa propria. Ad esempio da accessi 
pubblici come hot-spot degli aereoporti. o per accedere a una risorsa che
risiede sul PC di casa.

Primo problema: l'IP pubblico dei modem/router di casa solitamente e' dinamico 
cioe' cambia ad ogni riavvio dello stesso.
Non possiamo impostarlo o conoscerlo a priori.
Necessita una soluzione per avere un indirizzo noto a cui collegarsi 
dall'esterno.

1)
Per conoscere il nostro IP pubblico ci appoggiamo quindi a un servizio esterno 
(ci iscriviamo).
Sul PC installiamo un software che a intervalli regolari interroga un servizio 
esterno, riconosce e premette di ottenere il nostro attuale IP pubblico.

Creiamo un nome di dominio di comodo (usando un servizio gratuito) a cui verra' 
associato il nostro IP (dinamico) attuale.
Il dominio di comodo possiedera' lo stesso IP che abbiamo scoperto nel passo 
precedente.

Ora abbiamo un modo per raggiungere il nostro PC anche se il suo IP cambia a 
nostra insaputa.
Al nostro nome di dominio fisso verra' assegnato l'attuale indirizzo IP.

2)
Sul PC di casa installiamo OpenVPN usando lo script PiVPN (agnostico)
Una volta installato PiVPN generiamo il certificato per ogni macchina che, 
dall'esterno, vorra' accedere al PC di casa.

Sulle macchine che dovranno collegarsi dall'esterno installeremo il client di 
OpenVPN.
Al client OpenVPN comunicheremo un certificato generato dal passo precedente.


Di seguito andiamo nel dettaglio dei due passi sopra descritti.

1)
Mi sono collegato a noip.com e ho creato il mio dominio <miodominio>.ddns.net. 
Ho atteso ore...
Il giorno successivo lo ho abilitato tramite una mail che mi e' arrivata 
all'indirizzo che avevo usato per la registrazione.
Ho scaricato via web i sorgenti del programma (noip-duc-linux-tar.gz) e li ho 
messi nella directrory /tmp del Raspberry
Mi sono collegato in ssh al Raspberry, sono diventato root per evitare di 
continuare a premettere sudo ad ogni riga di comando attraverso un:
> sudo -i

Ho scompattato i sorgenti:
> gunzip noip-duc-linux-tar.gz
> tar xvf noip-duc-linux-tar

Ho seguito quanto scritto nel file README.FIRST.ITA, non funzionando "make 
install" ho prima configurato l'ambiente di sviluppo:
> apt-get install build-essentials
( e' piu' veloce che scaricare il minimo indispensabile:
  > apt-get install make
  > apt-get install gcc
  > apt-get install libc6-dev )


> make install (nella directory /tmp/noip2....)
Il servizio noip e' gratuito, unica pecca e' che ogni mese va rinnovato. Si 
riceve una maile bisogna fare qualche click per mantenere abilitato il <nome
dominio>.
Vlady suggerisce una alternativa fornita da tp-link: basta avere un dispositivo 
di questa marca e utilizzando il suo numero di serie e' possibile avere lo 
stesso servizio fornito da noip senza necessita' di rinnovo.

Il software a questo punto partiva correttamente con il comando noip2.
Per far si che partisse all'avvio ho creato un file /etc/init.d/noip2.sh ( i 
percorsi potrebbero dipendere dalla distribuzione ) contenente quanto spiegato
nel file README.
      ho sostituito nello script noip2.sh"killproc" con "pkill" ,
      ho cambiato i permessi col comando:
      chmod 755 /etc/init.d/noip2.sh
      ho creato il link "S06noip2" in /etc/rc2.d che punta allo script 
/etc/init.d/noip2.sh

2)
Ora si deve operare sul modem/router di casa, che di solito e' accessibile da 
un browser all'indirizzo 192.168.1.1, login: admin password:admin (da cambiare
con una password propria facile da ricordare).
Bisogna abilitare al port forwarding alcune porte, in modo che le richieste 
fatte al router (di cui conosciamo l'indirizzo IP) vengano inoltrate 
all'apparato
che sara' in ascolto su queste porte (il nostro Raspberry).
La porta indispensabile per OpenVPN e'la TCP/UDP 1194 (sia TCP che UDP ho 
verificato), come indirizzo di destinazione mettiamo l'indirizzo IP del 
Raspberry,
che per questo motivo deve essere fisso, e non assegnato dal DHCP.
E' utile anche inoltrare allo stesso modo la porta ssh, vito che il router ha 
gia' disponibile in ingresso la porta 22 e' necessario utilizzare in ingresso
un numero diverso (es. 2222) mentre come destinazione avremo la porta 22 e l'IP 
(fisso) del nostro Raspberry.

Installiamo ora sul Raspberry (ci colleghiamo a lui via ssh) il servizio VPN.
Serve avere il comando curl, quindi eventualmente lo installiamo:
> apt-get install curl

Lanciamo lo script di installazione, scaricato attraverso https, in una shell 
di tipo bash
> curl -L https://install.pivpn.io | bash
user: pi
OK
UDP
1194 (porta)
256 (cripting normale, non paranoico)
DNS Pubblico Open
<nome dominio>.ddns.net

una volta ultimata l'installazione e configurazione lanciamo il nuovo comando:
> pivpn add
password (da ricordare successivamente)

Viene generata a questo punto una chiave, utilizzabile su qualunque 
dispositivo, uno solo per volta, per accedere alla nostra VPN.
Questa chiave va copiata sul dispositivo,

> scp pi@<nome dominio>:~/ovpn/<nome dominio>.ovpn
scp e' un comando di copia sicura,
pi e' l'utente che utilizziamo, ci verra' chiesta la sua password
~ significa la homedir dell'utente (in questo caso /home/pi),
ovpn e' una directory in cui abbiamo messo i nostri certificati

Sul Raspberry dobbiamo avere installato openvpn
> apt-get install openvpn

e data in pasto al comando openvpn:
> sudo openvpn --config <nome dominio>.ovpn

Quando tutto funziona e' comodo installare un servizio di rete che permetta di 
collegarsi comodamente alla nostra VPN da un nostro dispoitivo linux:
> sudo apt-get install network-manager-openvpn

Configurandolo inserendo il <nome dominio>, la password, aggiungendo una nuova 
rete di tipo "tunnel".
A questo punto e' possibile accedere alla propia VPN come se fosse una rete, 
con un semplice click.



_______________________________________________
BrigX Linux Users Group
[email protected]
http://brigx.it/mailman/listinfo/ml_brigx.it

Proponi la tua idea per una delle nostre serate: http://brigx.it/feedback

Rispondere a