Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

OpenVPN

OpenVPN è un programma VPN (che strano con un nome simile…), in buona sostanza serve a creare tunnel crittografati punto-punto.
L’utilizzo di un simile tunnel è di una comodità che solo chi ha provato può appieno capire, un esempio banale ma che e’ successo non molti giorni fa è questo, ero a casa di Amici e si parlava diuna cena avvenuta qualche mese prima e delle persone che erano presenti, uno di qesti Amici mi dice peccato non avere le foto mi sarebbe piaciuto tenerle.
Detto e fatto  ho acceso il portatile, via VPN mi sono collegato al mio PC di casa, mi sono copiato in locale le foto della cena e le ho messe su una sua chiave USB, tempo dell’operazione grossomodo 5 minuti.
Inutile dire quanto possa essere comodo per una persona che lavora spesso fuori ufficio per accedere a documenti sul server aziendale, al gestionale per prendere dati, si può persino stampare da remoto (non vedo l’utilità di questa cosa onestamente ma qualcuno lo fa).
OpenVPN è multipiattaforma e questa cosa è davvero utile, molto utile per i “roadwarriors” (utenti mobili) nello specifico perchè i nostri server sono Debian e tutti client sono Microsoft Windows XP Pro o 7.
Intuitivamente la connessione è client/server e come detto precedentemente entrambi gli attori possono essere  con lo stesso SO oppure come accennato sopra di diversa natura, ma questo è del tutto ininfluente comunque si parlano senza problemi.
Per quanto riguarda la configurazione Server non ho mai avuto per le mani macchine Microsoft ma solo Linux, è pur vero che la configurazione differisce  se il client e’ linux o windows  quindi le presenterò  entrambe, come  per i client sia Linux che Windows e porterò  gli esempi che sono tutti per OpenVPN 2.1.x e superiori.

Server Linux-Linux

Server Linux-Windows

Client Linux-Linux

Client Windows-linux

Rendere statico l’IP di un client

OpenVpn su ipad2

Ultima nota il firewall, ovviamente il bastion host impedisce qualsiasi conenssione non espressamente autorizzata, quindi ho aggiunto queste regole di iptables sulla macchina a presidio del perimetro.

$IPT -A INPUT -i $EXTIF -m state –state NEW,ESTABLISHED,RELATED \
-p udp –dport 7207 -j ACCEPT
$IPT -t nat -A PREROUTING -p udp -i $EXTIF -d $EXTIP –dport 7207 -j DNAT –to-destination $VPNHOST:7207
$IPT -A FORWARD -i $EXTIF -p udp –dport 7207 -o $INTIF -j ACCEPT