Configurazione di un link fra due reti con chiave preshared
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.
Su una delle due macchine, creare la pre-shared key con openvpn --genkey --secret <nome del file della chiave>
- Creare un file di configurazione minimale come questo:
# 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
- Copiare tutto sulla macchina remota, ed editare il file sulla macchina remota per ribaltare local con remote, modificare il routing per indicare la rete remota.
Lanciare openvpn su tutte due le macchine con /etc/init.d/openvpn start
Keepalive per link rognosi
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
Link fra due ip dinamici con dns dinamico
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).