OpenVPN Routing

scritto da admin il 28 Ottobre 2008

Tempo fa ho voluto testare la config di OpenVpn in router mode, prima di continuare vediamo le differenze tra i due modi:

La modalità bridging ha i seguenti Vantaggi:

* Propaga il traffico trasmesso via Broadcast attraverso la VPN.

* Semplifica la configurazione giacché non è necessario avere alcuna conoscenza sui principi di routing e rotte varie.

* Lavora molto bene con protocolli diversi dal TCP/IP come per esempio IPX/SPX, AppleTalk etc.

Svantaggi:

* Consuma molta banda è quindi poco adatta a reti poco veloci o a consumo.

* Bisogna per forza fare un bridge dell’interfaccia fisica con quella virtuale.

La routing ha i seguenti Vantaggi:

* Sostanzialmente permette un’ottimizzazione del traffico attraverso internet.

* Fornisce una maggior capacità di controllare selettivamente i diritti di accesso sulla base dello specifico utente.

Svantaggi:

* Nel caso di una connessione LAN to LAN i client remoti devono necessariamente impostare l’utilizzo di un server WINS per riuscire a fare un browser della rete.

* Devono essere configurate tutte le rotte di comunicazione necessarie.

* Non sono instradate le comunicazioni broadcast.

Ecco un esempio del server in modalità routing:

port 1194

dev tun0

proto udp

ca ca.crt

cert server.crt

key server.key

dh dh1024.pem

client-to-client (Qui permette il dialogo tra i client)

server 192.168.10.0 255.255.255.0 (Qui indica il pool d’indirizzi assegnato ai client)

push “route 192.168.1.0 255.255.255.0″ (Qui fa passare la classe ip dietro la vpn nel tunnell istaurato dai client.)

user nobody

group nogroup

comp-lzo

keepalive 15 45

ping-timer-rem

persist-key

persist-tun

status /var/log/openvpn-status.log

verb 3

Sul server bisogna abilitare l’ip-forwarding e l’ ip-masquerading :

vim /etc/network/interface

Aggiungiamo

up echo “1″ > /proc/sys/net/ipv4/ip_forward
up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Qui invece la parte client:

client

dev tun

proto udp

remote 88.xx.xx 1194

resolv-retry infinite

nobind

ca ca.crt

cert client1.crt

key client1.key

comp-lzo

route-delay

ping 15

ping-restart 45

ping-timer-rem

persist-tun

persist-key

mute-replay-warnings

verb 3

La procedura per generare le chiavi è identica a quella descritta nel mio precedente post.

Salutoni

Frank

OpenVPN Bridging

scritto da admin il 7 Ottobre 2008

Tempo fa mi è capitato di dover configurare openvpn in bridge mode, questo modo.
a differenza della classica assegna ai client lo stesso indirizzo ip della rete locale.
È utilizzata per configurazioni particolari, dove il modo routing ha dato qualche problema.

Procediamo con l’installazione:
apt-get install openvpn bridge-utils iproute

Configuriamo il bridge tra la scheda di rete virtuale (tap0) e quella vera (eth0):
vi /etc/network/interfaces
auto br0
iface br0 inet static
address 192.168.10.2
netmask 255.255.255.0
gateway 192.168.10.254
pre-up /usr/sbin/openvpn –mktun –dev tap0
pre-up /sbin/ip link set tap0 up
pre-up /sbin/ip link set eth0 up
pre-up /usr/sbin/brctl addbr br0
pre-up /usr/sbin/brctl addif br0 eth0
pre-up /usr/sbin/brctl addif br0 tap0
post-up /etc/init.d/openvpn start
pre-down /etc/init.d/openvpn stop
pre-down /usr/sbin/brctl delif br0 eth0
pre-down /sbin/ip link set eth0 down
pre-down /usr/sbin/brctl delif br0 tap0
pre-down /sbin/ip link set tap0 down
post-down /usr/sbin/brctl delbr br0
post-down /usr/sbin/openvpn –rmtun –dev tap0

Generiamo le chiavi rsa:
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0

Modifichiamo il file vars mettendo i dati che servono.
export KEY_COUNTRY=IT
export KEY_PROVINCE=CZ
export KEY_CITY=Lamezia Terme
export KEY_ORG=Catanzaro
export KEY_EMAIL=francesco.gabriele@

Creiamo la sottodirectory keys se non esiste.
Mkdir key

Iniziamo con le chiavi del server.
. ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn –genkey –secret ta.key

Copiamo le chiavi generate nel path corretto.
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys
cp ca.crt /etc/openvpn
cp server.crt /etc/openvpn
cp server.key /etc/openvpn
cp dh1024.pem /etc/openvpn
cd ..
cp ta.key /etc/openvpn

Ora generiamo quelle del primo client.
Mkdir /etc/openvpn/client1
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
./build-key client1
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys
cp ca.crt /etc/openvpn/client1
cp client1.crt /etc/openvpn/client1
cp client1.key /etc/openvpn/client1
cd ..
cp ta.key /etc/openvpn/client1

Queste chiavi vanno copiate sul client

Creiamo il file di configurazione del Server.
vi /etc/openvpn/server.conf
port 1194
proto tcp
dev tap0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
client-to-client
local 192.168.10.254
server-bridge 192.168.10.254 255.255.255.0 192.168.10.16 192.168.10.19
comp-lzo
keepalive 15 45
ping-timer-rem
persist-tun
persist-key
status openvpn-status.log
verb 3

Ora creiamo quello del Client.
client
dev tap
proto tcp
remote 87.53.101.XX 1194
resolv-retry infinite
nobind
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
ping 15
ping-restart 45
ping-timer-rem
persist-tun
persist-key
mute-replay-warnings
route-method exe
route-delay 2
verb 3

Per qualsiasi problema potete consultare la guida ufficiale http://www.openvpn.net/index.php/documentation/howto.html

Frank :-)