[gl-como] OpenVPN

Riccardo Penco r.penco@scasinet.com
Gio 9 Apr 2009 13:35:51 CEST


> Hola GL-Como :)
>
> Ogni tanto mi rifaccio vivo con qualche strana richiesta/domanda,
> spero che anche questa volta riusciate a colmare i miei dubbi ^_^
> Allora, ecco la situazione: sto facendo esperimenti con openvpn perchè
> io (che ho una connessione alice) vorrei poter accedere/vedere al/la
> server/lan di un amico che però ha fastweb( ip privato).
> Sto facendo dei test a casa mia usando 2 macchine virtuali fedora core
> 10 virtualizzate in vmware server 2.0 chiamate rispettivamente mx01
> (ip: 192.168.1.50) e mx02 (ip: 192.168.1.51): mx01 è il server (io),
> mx02 è il client (il mio amico). Quello che vorrei fare è:
> - attivare la vpn sul server usando una interfaccia TUN, dare a tale
> interfaccia ip 10.0.0.1 (o un altro ip che sia cmq .1)
> - attivare la vpn sul client usando (ovviamente) un'altra interfaccia
> TUN,  dare a tale interfaccia ip 10.0.0.2 (o un altro che sia cmq .2)
> - [successivamente] riuscire a pingare/vedere gli host della sua
> sottorete (192.168.0.0/24) dagli host della mia sottorete
> (192.168.1.0/24)

non sono fresco di configurazioni di openvpn, ti riferisco quanto
mi ricordo.
Devi lavorare sulle tabelle di routing.
supponiamo che tu abbia rete 192.168.11.0/24 e il client abbia rete
192.168.33.0/24
devi aggiungere la direttiva

route 192.168.33.0 255.255.255.0 10.0.0.1

(l'ultimo è l'indirizzo del server) nel file di configurazione
del server e le direttive

iroute 192.168.33.0 255.255.255.0
push "route 192.168.11.0 255.255.255.0"

nel file personalizzato per il cliente (CN=c1, vedi dopo)

> - fare si che la configurazione lato server sia compatibile per
> espansioni future ovvero che permetta ad una terza/quarta/quinta
> persona di potersi collegare e vedere le altre sottoreti associando al
> suo client openvpn rispettivamente ip .3, .4 ecc a mi scelta (voglio
> essere io a dire che nodo ha un certo ip: no dhcp per intenderci)

non ci sono problemi, prova a dare una occhiata alla direttiva

client-config-dir /path/to/dir

ti permette di avere file con opzioni personalizzate per ciascun client
che si connette (il nome del file nella directory lo sceglie in base al
cn del certificato)
in particolare l'indirizzo ip lo passi con
ifconfig-push

>
> Al momento il file di configurazione sul server è questo:
[...]
>
> Pls help.
>
> Inc0

ti allego un estratto di una configurazione funzionante _ma_senza_
l'opzione client-to-client (mai utilizzata)
Da quanto ricordo la differenza è che con il client-to-client la
netmask dei client è /24 (può assegnare un indirizzo a ciascun
client => ~250 clienti possibili) mentre senza la netmask è /30
(fa un subclassing e 'spreca' 4 indirizzi per ciascun client
=> molti meno clienti possibili)

<disclaimer>
ogni cazzata che ho scritto la attribuisco allo stato mentale
dovuto alle ore di sonno perse ma soprattutto alla fame immonda
che ho in questo momento (ora vado a mangiare!!!)
</discalimer>

ecco gli estratti:

######### server.conf #########
local a.b.c.d
port 1194
management localhost 1195
proto udp
dev tun0

ca rsa/keys/ca.crt
cert rsa/keys/gw.crt
key rsa/keys/gw.key             # This file should be kept secret

tls-auth rsa/keys/ta.key 0      # This file is secret

dh rsa/keys/dh2048.pem

server 10.10.10.0 255.255.255.0

# route per le reti dei client che si connettono
# c1
route 192.168.33.0 255.255.255.0 10.10.10.1

# configurazioni personalizzate in base al cn del certificato
client-config-dir /etc/openvpn/ccd

keepalive 10 120
comp-lzo

user nobody
group nobody

persist-key
persist-tun

;status openvpn-status.log

verb 3

mute 20
######### end #########


File con le impostazioni per il client con CN=c1
######### ccd/c1 #########
push-reset

# if the client is Windows:
ifconfig-push 10.10.10.254 10.10.10.253
push "route 10.10.10.0 255.255.255.0"
# if the client is Linux it is possible to:
#ifconfig-push 10.10.10.254 10.10.10.1

iroute 192.168.33.0 255.255.255.0

push "route 192.168.11.0 255.255.255.0"

push "ping 10"
push "ping-restart 40"
######### end #########



Maggiori informazioni sulla lista gl-como