Questa e` la configurazione piu` semplice del mondo, non la piu` sicura. Tuttavia è comoda da realizzare, e non è meno sicura del 99% delle connessioni ipsec che vedo in giro dai clienti con i loro firewall commerciali da 10.000 euro, una chiave preshared e algoritmi obsoleti. Questa configurazione crea un tunnel, non un bridge. In altri termini fa routing a layer 3 e non bridging a layer 2.
openvpn --genkey --secret <nome del file della chiave>
# device per il tunnel dev tun0 # indirizzi ip pubblici locale e remoto remote 62.123.191.1 local 82.88.19.1 # porta udp esterna (se non uso il default) port 4242 # indirizzi ip privati locale e remoto (uso quelli delle eth locali, ma # potrei anche usarne altri due a caso non usati nelle reti) ifconfig 192.168.1.254 192.168.2.1 # routing (indico che la rete remota va routata per la vpn) # qui metto indirizzo e netmask della rete REMOTA. route 192.168.2.0 255.255.255.0 # pre shared key secret <nome del file della chiave> # dropppo i privilegi user nobody group nogroup # log level 3 verb 3
/etc/init.d/openvpn start
Se ci sono dei nat in mezzo, e il link non resta su quando non c'e` traffico, si possono aggiungere nei file di configurazione di tutti e due gli endpoint un paio di righe per il keepalive.
# Ogni 60 secondi manda un keepalive, e se non hai risposta in 120 secondi, resetta il link keepalive 60 120 # Quanto sopra vale SOLO quando sei in connessione stabilita ping-timer-rem # tieni "buono" il tunnel anche se ci sono interruzioni sull' UDP persist-tun # se devi resettare il tunnel, non rileggere la chiave ma usa quella che hai in ram persist-key
Per una vpn fra due endpoint (non in stile client/server) con ip e dns dinamico, si puo` cercare di ovviare ai problemi di cambio di indirizzo ip di uno dei due endpoint (anche di tutti e due, nel caso) cosi`:
ping 60 ping-restart 300 # 5 minutes resolv-retry 300 # 5 minutes persist-tun persist-key replay-persist replay-persist-file
In questo modo se uno dei due endpoint cambia indirizzo, dopo 300 secondi di disconnessione (causata dal cambio di indirizzo) openvpn riavvia l'handshake provvedendo anche a ri-risolvere dal dns l'ip del remoto (resolv-retry).