Newsgroup: it.comp.os.linux.iniziare
Titolo: [OPENVPN-LINUX]

Sto provando a configurare una vpn tra due linuxbox, ma ho dei problemi,
spero che qualcuno possa darmi una mano.
La situazione e' questa:
SEDE A  SERVER                                   SEDE B CLIENT
ROUTER  192.168.0.1                              ROUTER   192.168.0.1
PC      192.168.0.20                             PC       192.168.0.2
Per tirare su questa benedetta VPN mi sono riferito a questa guida:
http://www.linuxguide.it/docs.php?Networking:VPN:OpenVPN
Usando Ubuntu Gutsy come distribuzione ho installato OpenVpn dai suoi
repository, ho creato le chiavi etc. etc.
Questo il file server.conf
 ##### OpenVPN Server #####
# il punto e virgola(;) serve per commentare/disabilitare la direttiva
# Avvio del servizio in modalità daemon
daemon
# Porta d'ascolta per il servizio 1194 di default
port 1194
# Protocollo di trasporto TCP, potete utilizzare anche UDP.
proto tcp
# Il device 'tun' crea tunnel IP routed, mentre 'tap' crea un tunnel
ethernet bridged
dev tun
# Certificati digitali
# Certificate Authority o root  certificate
ca /etc/openvpn/keys/ca.crt
# Certificato server
cert /etc/openvpn/keys/server.crt
# Chiave server
key /etc/openvpn/keys/server.key
# Diffie hellman parameters
dh /etc/openvpn/keys/dh1024.pem
# range VPN, assicuratevi che la rete 
10.8.0.0/24
 non sia già una rete
# utilizzata all'interno della vostra organizzazione.
server 10.8.0.0 255.255.255.0
# La direttiva push route abilita i clients a raggiungere la rete dichiarata
# Supponiamo di voler permettere ai clients vpn di comunicare con le
reti "
192.168.10.0/24
"
push "route 192.168.10.0 255.255.255.0"
# O utilizzate push route OPPURE push redirect-gateway
# push redirect-gateway, configura sui clients vpn, questo server, come
Default
# Gateway, abilitando i clients a raggiungere tutte le reti visibili dal
server!
# Sia che utilizziate la direttiva push route o gateway, ricordatevi
sempre di
# modificare le tabelle di routing sul vostro default gateway,
aggiungendo il
# range della vpn per consentire che le altre reti la possano raggiungere.
# Se non volete mettere le mani sui vostri default gateway(routers o altro)
# potete sceglire in alternativa di implementare il NAT su questo server
in
# maniera tale che tutti i clients vengano mascherati dall'ip address di
questo server.
# Per la configurazione del NAT, vai alla sezione Networking > NAT di
linuxguide.it
# push "redirect-gateway" è commentato dal punto e virgola, pertanto non
attivo.
;push "redirect-gateway"
# La seguente direttiva cominica ai clients vpn I server dns e wins
disponibili
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"
# La seguente direttiva abilita i clients a vedere ogni altro. Di
default il client vede soltanto il server. Decommentare, per attivare la
direttiva.
client-to-client
# Keepalive, esegue un ping ogni 10 secondi e se nell'intervallo di 120
secondi
# il peer remoto non risponde si presume che il peer è down.
keepalive 10 120
#HMAC firewall, blocca eventuali attacchi DoS/UDP port flooding
tls-auth /etc/openvpn/keys/ta.key 0 # l'ultimo parametro dovrebbe essere
1 sui client 0             sui server
# Algoritmi di crittografia, client e server devono utilizzare lo stesso
algoritmo
cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
cipher DES-EDE3-CBC  # Triple-DES
# Compressione dati sul link VPN. Se attivato qui attiarlo anche sul client.
comp-lzo
# Numero max di connessioni
;max-clients 100
# Prova a riservare alcuni stati nelle fasi di restart
persist-key
persist-tun
# File di log in /var/log
status openvpn-status.log
log         openvpn.log
;log-append  openvpn.log  # scrive i logs in append
verb 3      # livello di verbosità dei logs
------------------------------------------------------------------------
Questo il client.conf
##### OpenVPN Linux Client #####
# il punto e virgola(;) serve per commentare/disabilitare la direttiva
# Avvia l'applicazione come client vpn
client
# Protocollo di trasporto TCP, potete utilizzare anche UDP.
proto tcp
# Il device 'tun' crea tunnel IP routed, mentre 'tap' crea un tunnel
ethernet bridged
# I clients Windows vogliono il device Tap
;dev tup    # se il client è windows
dev tun     # se il client è linux
# IP address/hostname e numero di porta del Server
remote 192.168.0.20 1194
#
resolv-retry infinite
nobind
# Le direttive user e group vanno dichiarate soltanto per i clients linux
user nobody
group nobody
# Certificati digitali
# Certificate Authority o root  certificate
ca /etc/openvpn/keys/ca.crt
# Certificato client
cert /etc/openvpn/keys/client.crt
# Chiave client
key /etc/openvpn/keys/client.key
#HMAC firewall, blocca eventuali attacchi DoS/UDP port flooding
tls-auth /etc/openvpn/keys/ta.key 1   #l'ultimo parametro dovrebbe
essere 1 sui client 0 sui server
# Algoritmi di crittografia, client e server devono utilizzare lo stesso
algoritmo
cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
# Compressione dati sul link VPN. Se attivato qui attiarlo anche sul client
comp-lzo
# Prova a riservare alcuni stati nelle fasi di restart
persist-key
persist-tun
verb 3      # livello di verbosità dei logs
-------------------------------------------------------------------------
Questo il risultato del comando:
/etc/openvpn$ sudo openvpn --config client.conf
Tue Jul  8 22:44:17 2008 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO]
[EPOLL] built on Jun 11 2008
Tue Jul  8 22:44:17 2008 IMPORTANT: OpenVPN's default port number is now
1194, based on an official port number assignment by IANA.  OpenVPN
2.0-beta16 and earlier used 5000 as the default port.
Tue Jul  8 22:44:17 2008 WARNING: No server certificate verification
method has been enabled.  See 
http://openvpn.net/howto.html#mitm
 for
more info.
Tue Jul  8 22:44:17 2008 WARNING: file '/etc/openvpn/keys/client.key' is
group or others accessible
Tue Jul  8 22:44:17 2008 /usr/bin/openssl-vulnkey -q -b 1024 -m <modulus
omitted>
Tue Jul  8 22:44:17 2008 Control Channel Authentication: using
'/etc/openvpn/keys/ta.key' as a OpenVPN static key file
Tue Jul  8 22:44:17 2008 Outgoing Control Channel Authentication: Using
160 bit message hash 'SHA1' for HMAC authentication
Tue Jul  8 22:44:17 2008 Incoming Control Channel Authentication: Using
160 bit message hash 'SHA1' for HMAC authentication
Tue Jul  8 22:44:17 2008 LZO compression initialized
Tue Jul  8 22:44:17 2008 Control Channel MTU parms [ L:1544 D:168 EF:68
EB:0 ET:0 EL:0 ]
Tue Jul  8 22:44:17 2008 Data Channel MTU parms [ L:1544 D:1450 EF:44
EB:135 ET:0 EL:0 AF:3/1 ]
Tue Jul  8 22:44:17 2008 Local Options hash (VER=V4): '2dcdad92'
Tue Jul  8 22:44:17 2008 Expected Remote Options hash (VER=V4): '7c7a0a5e'
Tue Jul  8 22:44:17 2008 Attempting to establish TCP connection with
192.168.0.20:1194
Tue Jul  8 22:44:20 2008 TCP: connect to 
192.168.0.20:1194
 failed, will
try again in 5 seconds: No route to host (errno=113)
Chi mi aiuta ad impostare le route? oramai sono in confusione e sto
caldo non aiuta.
Grazie a tutti quelli che risponderanno!

 Grazie a tutti quelli che risponderanno!
Fatto.
-- 
<<L'età della pietra non è finita perché sono finite le pietre>>.

 
desktop:~$ dig 
google.it
; <<>> DiG 9.4.1-P1 <<>> 
google.it
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 1603
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;
google.it
.                     IN      A
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul  8 23:15:29 2008
;; MSG SIZE  rcvd: 27
http://it.wikipedia.org/wiki/Virtual_Private_Network

 desktop:~$ dig 
google.it
Arabo.


 will try again in 5 seconds: No route to host (errno=113)
Il client (B) cerca l'ip 192,168.0.20 nella rete locale, come fa a
sapere che deve andare sulla sede "A" ?
Le due sedi sono collegate ? Hanno due ip pubblici ? IP fissi ?
Connessione ?
Credo che tu debba aggiustare la configurazione del client passandogli
l'ip "raggiungibile"..
Ciao.
-- 
*** Linux user # 198661 ---_ ICQ 33500725 ***
    ***  Home  
http://www.kailed.net
  ***
        ***  Powered by openSUSE  ***

Gianfausto Garbin ha scritto:

Forse ti conviene, visto che comunque lo hai fatto su ubuntu, chiedere 
anche su it.comp.os.linux.debian. Li' spesso ci sono dd in ascolto...
Paride

 Grazie a tutti quelli che risponderanno!
Prova anche a vedere questo: 
http://www.sistemistiindipendenti.org/modules/news/article.php?storyid=44
Paride

Paride Desimone ha scritto:

Ah, dimenticavo...
una volta risolto poi facci sapere come hai fatto :-) E' sempre utile 
avere un riferimento su San google :-)
Paride

 
http://www.sistemistiindipendenti.org/modules/news/article.php?storyid=44
grazie ci do un occhiata

 avere un riferimento su San google :-)
OK!
tranquillo appena riesco posto la soluzione
Ciao!


remote è l'indirizzo ip pubblico del server a cui ti colleghi, non può 
essere 192.168.0.20 che è la rete privata in cui vuoi entrare (credo)
Da alcune vecchie prove....
Il server aveva il suo ip pubblico 79.xxx.xxx.xxx e privato 
192.168.1.100, assegnava ai client collegati un pool di indirizzi 
192.168.178.10/20
 su di un'altra sottorete; ovviamente devi impostare 
sul server il forward con :
echo 1 > /proc/sys/net/ipv4/ip_forward
------------------------------------------
client.conf
remote 79.xxx.xxx.xxx					#IP pubblico del server
dev tap
rport 443
tls-client
proto tcp-client
key "/etc/openvpn/certificati/ca.key"
ca "/etc/openvpn/certificati/ca.crt"
cert "/etc/openvpn/certificati/ca.crt"
pull
comp-lzo
verb 4
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
------------------------------------------
server.conf
dev tap
proto tcp-server
ifconfig 192.168.178.1 255.255.255.0
tls-server
key "/etc/openvpn/certificati/ca.key"
dh "/etc/openvpn/certificati/dh.pem"
cert "/etc/openvpn/certificati/ca.crt"
ca "/etc/openvpn/certificati/ca.crt"
local 192.168.1.100					# IP privato del server nella lan
lport 443
verb 4
mode server
duplicate-cn
ifconfig-pool 192.168.178.10 192.168.178.30
mssfix 1450
push "ping 10"
push "ping-restart 60"
ping 10
ping-restart 120
push "route-gateway 192.168.178.1"
push redirect-gateway
push "dhcp-option DNS 192.168.1.1"
comp-lzo
------------------------------
Spero ti sia utile

Gianfausto Garbin ha scritto:

Vedi un po' se ti torna utile questo :-)
http://rapidshare.com/files/128344631/ovpn.pdf.tar.bz2.html
Ciao.

 avere un riferimento su San google :-)
Rieccomi scusate ma ho avuto un po da fare :-)
Ho finalmente risolto il problema, allora la situazione e' questa:
Indirizzamento interno delle lan
ufficio A -> 
192.168.1.0/24
ufficio B -> 
192.168.0.0/24
Indirizzi privati delle linux box dentro la lan
ufficio A -> 192.168.1.2
ufficio B -> 192.168.0.2
Indirizzi pubblici delle linux box su internet
ufficio A -> 151.XXX.XXX.XXX
ufficio B -> 79.XXX.XXX.XXX
Indirizzi delle schede tun
ufficio A -> 10.0.0.1
ufficio B -> 10.0.0.2
openvpn –genkey –secret key.txt
i comandi da dare in ufficio A sono:
lancio openvpn:
openvpn –remote 79.XXX.XXX.XXX --dev tun1 --ifconfig 10.0.0.1 10.0.0.2 
--verb 3 --persist-tun --cipher DES-EDE3-CBC --secret 
/etc/openvpn/key.txt --float --port 3002
aggiungo la regola di routing per arrivare alla lan remota in ufficio B
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.1
i comandi da dare in ufficio B sono:
lancio openvpn:
openvpn –remote 151.XXX.XXX.XXX --dev tun1 --ifconfig 10.0.0.2 10.0.0.1 
--verb 3 --persist-tun --cipher DES-EDE3-CBC --secret 
/etc/openvpn/key.txt --float --port 3002
aggiungo la regola di routing per arrivare alla lan remota in ufficio A
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2
l’ip forwarding DEVE essere abilitato su tutti e due i PC
disabilitato per default, si attiva con un:
echo 1 > /proc/sys/net/ipv4/ip_forward
da fare eseguire da uno scrit ad ogni boot delle macchine
Aggiungete queste regole al FIREWALL
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A OUTOUT -i tun+ -j ACCEPT
ringrazio l'autore di questo articolo:
http://www.x-privat.org/link/746700748.html
da cui ho preso praticamente spunto
saluti GGF

Gianfausto Garbin ha scritto:
<CUTTONE>
Adesso pero' ho ancora un problemino :-)
quando mi collego alla VPN, dall'altra parte devono accettare la mia 
connessione, come posso risolvere ?
Grazie per la pazienza ;-)