Dimensione: 5902
Commento:
|
Dimensione: 7887
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
= OpenVPN con RIP = | = OpenVPN (anche con RIP) = <<TableOfContents>> |
Linea 3: | Linea 4: |
== HOWTO – OpenVPN creare un link punto punto tra 2 reti e scambiarsi le rotte con RIP == | == OpenVPN shared key: link punto punto tra 2 reti e scambiarsi le rotte con RIP == Questo documento intende dare una rapida spiegazione a chi gia conosce la teoria dietro le VPN ed il protocollo RIP per implementare praticamente con 2 servers linux un tunnel che attraversa una rete pubblica e collega 2 reti private. In questo howto vedremo come collegare 2 reti creando un link punto punto in vpn tra le due reti usando l’implementazione openvpn, e come successivamente scambiare in modo dinamico le rotte delle due reti usando il protocollo RIP. In questo HOWTO sono stati utilizzati 2 servers ai capi del tunnel VPN con sistema operativo Linux UBUNTU (Debian). |
Linea 5: | Linea 7: |
Questo documento intende dare una rapida spiegazione a chi gia conosce la teoria dietro le VPN ed il protocollo RIP per implementare praticamente con 2 servers linux un tunnel che attraversa una rete pubblica e collega 2 reti private. In questo howto vedremo come collegare 2 reti creando un link punto punto in vpn tra le due reti usando l’implementazione openvpn, e come successivamente scambiare in modo dinamico le rotte delle due reti usando il protocollo RIP. In questo HOWTO sono stati utilizzati 2 servers ai capi del tunnel VPN con sistema operativo Linux UBUNTU (Debian). Per prima cosa installiamo OpenVPN |
Per prima cosa installiamo OpenVPN |
Linea 16: | Linea 9: |
[[BR]] | <<BR>> |
Linea 20: | Linea 14: |
(Per altre distribuzioni Gnu/Linux cercare la documentazione relativa)[[BR]] [[BR]] Dopo aver installato il software, dobbiamo creare prima di tutto la chiave privata per l' inizializzazione del tunnel.[[BR]] [[BR]] |
(Per altre distribuzioni Gnu/Linux cercare la documentazione relativa)<<BR>> <<BR>> Dopo aver installato il software, dobbiamo creare prima di tutto la chiave privata per l' inizializzazione del tunnel.<<BR>> <<BR>> |
Linea 27: | Linea 19: |
[[BR]] Una volta creata la chiave segreta e posizionata dentro {{{ /etc/openvpn/ }}}, (occhio la dobbiamo mettere in entrambe le macchine la chiave privata) dobbiamo creare il file di configurazione per il server ( {{{ /etc/openvpn/nomefantasia.conf }}} ).[[BR]] [[BR]] |
<<BR>> Una volta creata la chiave segreta e posizionata dentro {{{ /etc/openvpn/ }}}, (occhio la dobbiamo mettere in entrambe le macchine la chiave privata) dobbiamo creare il file di configurazione per il server ( {{{ /etc/openvpn/nomefantasia.conf }}} ).<<BR>> <<BR>> |
Linea 39: | Linea 30: |
[[BR]] La configurazione del gateway VPN (client) è identica a quella vista precedentemente. Ovviamente dobbiamo copiare la chiave segreta e posizionarla nella directory {{{ /etc/openvpn/ }}} e creare il file di configurazione ( {{{ /etc/openvpn/nomefantasia2.conf }}}), che deve essere di questo tipo:[[BR]] [[BR]] |
<<BR>> La configurazione del gateway VPN (client) è identica a quella vista precedentemente. Ovviamente dobbiamo copiare la chiave segreta e posizionarla nella directory {{{ /etc/openvpn/ }}} e creare il file di configurazione ( {{{ /etc/openvpn/nomefantasia2.conf }}}), che deve essere di questo tipo:<<BR>> <<BR>> |
Linea 52: | Linea 42: |
[[BR]] Non ha nessuna importanza chi fa il client e chi fa il server.[[BR]] Ovviamente nel caso che solo una delle 2 macchine dispone di IP pubblico sarà quella che deve fare il server. La macchina server deve ascoltare sulla porta 5002 UDP, od un'altra porta udp che basta cambiare nei files di configurazione che sono stati mostrati prima. A questo punto il tunnel gia funziona, ed ubuntu vi fornisce gia anche lo script[[BR]] {{{ /etc/init.d/openvpn }}} per farlo partire, fermarlo, o riavviarlo.[[BR]] [[BR]] Ora esiste il tunnel, ma per far si che sia utile ai computers in rete dobbiamo far si che si conoscano le rotte. Ammettiamo che i nostri endpoints del tunnel siano anche i GW delle 2 reti che abbiamo collegato (se non è cosi dovete attivare RIP anche sui GW, molti router modem ADSL hanno questa possibilità!)[[BR]] [[BR]] Installiamo il software quagga[[BR]] [[BR]] |
<<BR>> Non ha nessuna importanza chi fa il client e chi fa il server.<<BR>> Ovviamente nel caso che solo una delle 2 macchine dispone di IP pubblico sarà quella che deve fare il server. La macchina server deve ascoltare sulla porta 5002 UDP, od un'altra porta udp che basta cambiare nei files di configurazione che sono stati mostrati prima. A questo punto il tunnel gia funziona, ed ubuntu vi fornisce gia anche lo script<<BR>> {{{ /etc/init.d/openvpn }}} per farlo partire, fermarlo, o riavviarlo.<<BR>> <<BR>> Ora esiste il tunnel, ma per far si che sia utile ai computers in rete dobbiamo far si che si conoscano le rotte. Ammettiamo che i nostri endpoints del tunnel siano anche i GW delle 2 reti che abbiamo collegato (se non è cosi dovete attivare RIP anche sui GW, molti router modem ADSL hanno questa possibilità!)<<BR>> <<BR>> Installiamo il software quagga<<BR>> <<BR>> |
Linea 68: | Linea 47: |
(Per altre distribuzioni linux cercare la documentazione relativa)[[BR]] [[BR]] Adesso andiamo in {{{ /etc/quagga }}}}che è l’unica directory dove dobbiamo lavorare per far funzionare tutto. Editiamo il file daemons e passiamo da “no” a “yes” i demoni zebra e ripd Poi dobbiamo creare in {{{ /etc/quagga }}} i files zebra.conf e ripd.conf e dare i permessi proprio come scritto nei commenti all’interno del file daemons, ecco la sequenza di cose da fare:[[BR]] [[BR]] |
(Per altre distribuzioni linux cercare la documentazione relativa)<<BR>> <<BR>> Adesso andiamo in {{{ /etc/quagga }}}}che è l’unica directory dove dobbiamo lavorare per far funzionare tutto. Editiamo il file daemons e passiamo da “no” a “yes” i demoni zebra e ripd Poi dobbiamo creare in {{{ /etc/quagga }}} i files zebra.conf e ripd.conf e dare i permessi proprio come scritto nei commenti all’interno del file daemons, ecco la sequenza di cose da fare:<<BR>> <<BR>> |
Linea 75: | Linea 50: |
touch zebra.conf touch ripd.conf chown quagga zebra.conf chown quagga ripd.conf chgrp quaggavty zebra.conf chgrp quaggavty ripd.conf chmod 660 zebra.conf |
touch zebra.conf touch ripd.conf chown quagga zebra.conf chown quagga ripd.conf chgrp quaggavty zebra.conf chgrp quaggavty ripd.conf chmod 660 zebra.conf |
Linea 84: | Linea 59: |
[[BR]] Lasciamo il file {{{zebra.conf}}} vuoto, mentre dentro a {{{ripd.conf}}} scriviamo:[[BR]] [[BR]] |
<<BR>> Lasciamo il file {{{zebra.conf}}} vuoto, mentre dentro a {{{ripd.conf}}} scriviamo:<<BR>> <<BR>> |
Linea 88: | Linea 62: |
router rip network eth0 network tap0 |
router rip network eth0 network tap0 |
Linea 92: | Linea 66: |
[[BR]] dove dobbiamo aggiungere una riga “network” per ogni interfaccia di rete del nostro serve dove vogliamo che venga utilizzato il protocollo rip.[[BR]] Con questa semplice configurazione il server impara tutto quello che arriva, e insegna tutto quello che sa! Per iniziare il tutto su entrambe le macchine facciamo {{{ /etc/init.d/quagga restart }}}.[[BR]] [[BR]] [[BR]] Questo documento è ancora molto grossolano perché il tutto è stato fatto ieri e ci sono molte cose che devo capire meglio a fondo anche io. A tutti quelli che si metteranno a smanettare su queste cose, li prego tanto di scrivere un paio di paginette come ho fatto io in modo che il lavoro non vada perduto !!!! Bella! Saverio |
<<BR>> dove dobbiamo aggiungere una riga “network” per ogni interfaccia di rete del nostro serve dove vogliamo che venga utilizzato il protocollo rip.<<BR>> Con questa semplice configurazione il server impara tutto quello che arriva, e insegna tutto quello che sa! Per iniziare il tutto su entrambe le macchine facciamo {{{ /etc/init.d/quagga restart }}}.<<BR>> <<BR>> <<BR>> Questo documento è ancora molto grossolano perché il tutto è stato fatto ieri e ci sono molte cose che devo capire meglio a fondo anche io. A tutti quelli che si metteranno a smanettare su queste cose, li prego tanto di scrivere un paio di paginette come ho fatto io in modo che il lavoro non vada perduto !!!! Bella! Saverio |
Linea 103: | Linea 68: |
== Note sull'uso dei certificati == | == Note su Gentoo Linux == Gli script di init.d per OpenVPN di Gentoo funzionano cosi: mettete i vostri files di configurazione dentro |
Linea 105: | Linea 71: |
'''Questa sezione è ancora incompleta, per ora contiene solo delle note''' | {{{/etc/openvpn}}} (sono i files con estensione .conf) |
Linea 107: | Linea 73: |
Per prima cosa generare la coppia pubblica/privata di chiavi RSA a 2048 bit del nuovo peer | quindi ad esempio vpn1.conf e vpn2.conf ora dovete creare dei symlinks di {{{/etc/init.d/openvpn}}} nel seguente modo: {{{ ln -sf /etc/init.d/openvpn /etc/init.d/openvpn.vpn1 ln -sf /etc/init.d/openvpn /etc/init.d/openvpn.vpn2 }}} In realtà quindi{{{/etc/init.d/openvpn}}} non lo userete mai, ma avete uno script di start stop indipendente per ogni VPN configurata sulla macchina. Per lanciare al boot le vpn quindi: {{{ rc-update add openvpn.vpn1 default rc-update add openvpn.vpn2 default }}} == OpenVPN con uso dei certificati == '''Questa sezione è ancora incompleta, per ora contiene solo delle note''' Per prima cosa generare la coppia pubblica/privata di chiavi RSA a 2048 bit del nuovo peer ''(Questi primi tre steps di solito li esegue chi gestisce il server, contattate ZioProto per collegarsi in VPN con Ninux.org)'' |
Linea 112: | Linea 97: |
Creare ora una richiesta di certificato (CRS) da far firmware alla Certification Authority (CA) | |
Linea 113: | Linea 99: |
Creare ora una richiesta di certificato (CRS) da far firmware alla Certification Authority (CA) | |
Linea 117: | Linea 102: |
Facciamo firmare alla Certification Authority la CRS In questo comando dobbiamo passare il file del certificato della CA ed il file con la chiave privata della CA che usiamo per firmare. | |
Linea 118: | Linea 104: |
Facciamo firmare alla Certification Authority la CRS In questo comando dobbiamo passare il file del certificato della CA ed il file con la chiave privata della CA che usiamo per firmare. |
|
Linea 125: | Linea 108: |
''(da qui andate avanti una volta che avete ricevuto i files da ZioProto)'' | |
Linea 139: | Linea 122: |
ifconfig IP 255.255.255.0 | ifconfig IL_TUO_IP 255.255.255.0 #Vedi nota subito sotto |
Linea 142: | Linea 125: |
Nota: usa la paginaGestioneIndirizzi per prenotare un IP | |
Linea 145: | Linea 129: |
la configurazione del server è di questo tipo: | ''La configurazione del client finisce qui :)'' == OpenVPN tramite server Norimberga == Vediamo come connettersi al server VPN di Ninux per quei collegamenti impossibili da realizzare tramite wireless punto-punto. Una volta che abbiamo ottenuto i certificati da ZioProto passiamo alla configurazione del client VPN: |
Linea 147: | Linea 134: |
tls-server mode server |
vim /etc/openvpn/ninux.vpn }}} e copiamoci queste righe di codice {{{ tls-client |
Linea 150: | Linea 141: |
ca keys/zpslackca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem #client-to-client duplicate-cn #secret /etc/openvpn/zpslack_server_ubuntu_client.key |
ca zpslackca.crt cert nuovopeer.crt key nuovopeer.key remote zioproto.ninux.org |
Linea 160: | Linea 148: |
ifconfig 10.0.1.1 255.255.255.0 lport 5002 |
ifconfig IL_TUO_IP 255.255.255.0 #Per indirizzo IP vedi nota subito sotto rport 5002 }}} Nota: INDIRIZZO IP: Usa la pagina GestioneIndirizzi per prenotare un IP. (dovrà essere nella forma 10.0.1.X) ora possiamo lanciare la vpn facendo{{{ openvpn /etc/openvpn/ninux.vpn }}} se lanciando il comando leggiamo tra le righe: |
Linea 163: | Linea 156: |
{{{ Sat Jan 1 00:02:14 2000 VERIFY ERROR: depth=1, error=certificate is not yet valid |
|
Linea 164: | Linea 159: |
allora vuol dire che dobbiamo rimettere apposto l'orologio del client esempio: {{{ date mese giorno ora minuti anno }}} senza spazi!! Rilanciamo il comando {{{ openvpn /etc/openvpn/ninux.vpn }}} dovrebbe andare tutto a buon fine == Problemi Comuni == Se avete problemi con il dispositivo{{{tun}}} la maggior parte delle volte ve la cavate con {{{ modprobe tun }}} |
OpenVPN (anche con RIP)
Indice
OpenVPN shared key: link punto punto tra 2 reti e scambiarsi le rotte con RIP
Questo documento intende dare una rapida spiegazione a chi gia conosce la teoria dietro le VPN ed il protocollo RIP per implementare praticamente con 2 servers linux un tunnel che attraversa una rete pubblica e collega 2 reti private. In questo howto vedremo come collegare 2 reti creando un link punto punto in vpn tra le due reti usando l’implementazione openvpn, e come successivamente scambiare in modo dinamico le rotte delle due reti usando il protocollo RIP. In questo HOWTO sono stati utilizzati 2 servers ai capi del tunnel VPN con sistema operativo Linux UBUNTU (Debian).
Per prima cosa installiamo OpenVPN
apt-get install openvpn
(Per altre distribuzioni Gnu/Linux cercare la documentazione relativa)
Dopo aver installato il software, dobbiamo creare prima di tutto la chiave privata per l' inizializzazione del tunnel.
openvpn --genkey --secret key.txt
Una volta creata la chiave segreta e posizionata dentro /etc/openvpn/ , (occhio la dobbiamo mettere in entrambe le macchine la chiave privata) dobbiamo creare il file di configurazione per il server ( /etc/openvpn/nomefantasia.conf ).
dev tap secret /etc/openvpn/key.txt ping 10 verb 1 mute 10 ifconfig 10.0.1.1 255.255.255.252 lport 5002
La configurazione del gateway VPN (client) è identica a quella vista precedentemente. Ovviamente dobbiamo copiare la chiave segreta e posizionarla nella directory /etc/openvpn/ e creare il file di configurazione ( /etc/openvpn/nomefantasia2.conf ), che deve essere di questo tipo:
remote ip.pubblico.del.server rport 5002 dev tap ifconfig 10.0.1.2 255.255.255.252 secret /etc/openvpn/key.txt ping 10 verb 1 mute 10
Non ha nessuna importanza chi fa il client e chi fa il server.
Ovviamente nel caso che solo una delle 2 macchine dispone di IP pubblico sarà quella che deve fare il server. La macchina server deve ascoltare sulla porta 5002 UDP, od un'altra porta udp che basta cambiare nei files di configurazione che sono stati mostrati prima. A questo punto il tunnel gia funziona, ed ubuntu vi fornisce gia anche lo script
/etc/init.d/openvpn per farlo partire, fermarlo, o riavviarlo.
Ora esiste il tunnel, ma per far si che sia utile ai computers in rete dobbiamo far si che si conoscano le rotte. Ammettiamo che i nostri endpoints del tunnel siano anche i GW delle 2 reti che abbiamo collegato (se non è cosi dovete attivare RIP anche sui GW, molti router modem ADSL hanno questa possibilità!)
Installiamo il software quagga
apt-get install quagga
(Per altre distribuzioni linux cercare la documentazione relativa)
Adesso andiamo in /etc/quagga }che è l’unica directory dove dobbiamo lavorare per far funzionare tutto. Editiamo il file daemons e passiamo da “no” a “yes” i demoni zebra e ripd Poi dobbiamo creare in /etc/quagga i files zebra.conf e ripd.conf e dare i permessi proprio come scritto nei commenti all’interno del file daemons, ecco la sequenza di cose da fare:
touch zebra.conf touch ripd.conf chown quagga zebra.conf chown quagga ripd.conf chgrp quaggavty zebra.conf chgrp quaggavty ripd.conf chmod 660 zebra.conf chmod 660 ripd.conf
Lasciamo il file zebra.conf vuoto, mentre dentro a ripd.conf scriviamo:
router rip network eth0 network tap0
dove dobbiamo aggiungere una riga “network” per ogni interfaccia di rete del nostro serve dove vogliamo che venga utilizzato il protocollo rip.
Con questa semplice configurazione il server impara tutto quello che arriva, e insegna tutto quello che sa! Per iniziare il tutto su entrambe le macchine facciamo /etc/init.d/quagga restart .
Questo documento è ancora molto grossolano perché il tutto è stato fatto ieri e ci sono molte cose che devo capire meglio a fondo anche io. A tutti quelli che si metteranno a smanettare su queste cose, li prego tanto di scrivere un paio di paginette come ho fatto io in modo che il lavoro non vada perduto !!!! Bella! Saverio
Note su Gentoo Linux
Gli script di init.d per OpenVPN di Gentoo funzionano cosi: mettete i vostri files di configurazione dentro
/etc/openvpn (sono i files con estensione .conf)
quindi ad esempio vpn1.conf e vpn2.conf ora dovete creare dei symlinks di
/etc/init.d/openvpn nel seguente modo:
ln -sf /etc/init.d/openvpn /etc/init.d/openvpn.vpn1 ln -sf /etc/init.d/openvpn /etc/init.d/openvpn.vpn2
In realtà quindi/etc/init.d/openvpn non lo userete mai, ma avete uno script di start stop indipendente per ogni VPN configurata sulla macchina.
Per lanciare al boot le vpn quindi:
rc-update add openvpn.vpn1 default rc-update add openvpn.vpn2 default
OpenVPN con uso dei certificati
Questa sezione è ancora incompleta, per ora contiene solo delle note Per prima cosa generare la coppia pubblica/privata di chiavi RSA a 2048 bit del nuovo peer
(Questi primi tre steps di solito li esegue chi gestisce il server, contattate ZioProto per collegarsi in VPN con Ninux.org)
openssl genrsa -out nuovopeer.key 2048
Creare ora una richiesta di certificato (CRS) da far firmware alla Certification Authority (CA)
openssl req -new -key nuovopeer.key -out nuovopeer.req
Facciamo firmare alla Certification Authority la CRS In questo comando dobbiamo passare il file del certificato della CA ed il file con la chiave privata della CA che usiamo per firmare.
openssl x509 -req -in nuovopeer.req -CA zpslackca.pem -CAkey zpslackca.key -set_serial xx -out nuovopeer.crt -days 365
(da qui andate avanti una volta che avete ricevuto i files da ZioProto)
Finito di generare chiavi e certificati ecco la configurazione di OpenVPN per il nuovo peer
tls-client dev tap ca zpslackca.crt cert nuovopeer.crt key nuovopeer.key remote zioproto.ninux.org ping 10 verb 1 mute 10 ifconfig IL_TUO_IP 255.255.255.0 #Vedi nota subito sotto rport 5002
Nota: usa la paginaGestioneIndirizzi per prenotare un IP
quindi sul nuovo peer servono 3 files: certificato della CA, proprio certificato + chiave
La configurazione del client finisce qui :)
OpenVPN tramite server Norimberga
Vediamo come connettersi al server VPN di Ninux per quei collegamenti impossibili da realizzare tramite wireless punto-punto. Una volta che abbiamo ottenuto i certificati da ZioProto passiamo alla configurazione del client VPN:
vim /etc/openvpn/ninux.vpn
e copiamoci queste righe di codice
tls-client dev tap ca zpslackca.crt cert nuovopeer.crt key nuovopeer.key remote zioproto.ninux.org ping 10 verb 1 mute 10 ifconfig IL_TUO_IP 255.255.255.0 #Per indirizzo IP vedi nota subito sotto rport 5002
Nota: INDIRIZZO IP: Usa la pagina GestioneIndirizzi per prenotare un IP. (dovrà essere nella forma 10.0.1.X) ora possiamo lanciare la vpn facendo
openvpn /etc/openvpn/ninux.vpn
se lanciando il comando leggiamo tra le righe:
Sat Jan 1 00:02:14 2000 VERIFY ERROR: depth=1, error=certificate is not yet valid
allora vuol dire che dobbiamo rimettere apposto l'orologio del client esempio:
date mese giorno ora minuti anno
senza spazi!! Rilanciamo il comando
openvpn /etc/openvpn/ninux.vpn
dovrebbe andare tutto a buon fine
Problemi Comuni
Se avete problemi con il dispositivotun la maggior parte delle volte ve la cavate con
modprobe tun