[ Introducció ] [ Cas-Estudi ] [ Instal·lació ] [ Configuració base ] [ Àlies ] [ NAT ] [ Regles ] [ DNS ] [ DHCP ] [ Cabal ] [ OpenVPN ] [ Portal ]
[ OpenVPN sens DHCP ] [ spamd ]

OpenVPN (Virtual Private Network)

pfSense incorpora el paquet OpenVPN que permet crear xarxes privades virtuals (VPN).

Amb OpenVPN podrem extendre doncs la nostra xarxa a qualsevol lloc del món, fent que la identificació i la comunicació siguin segures.

Abans de tenir pfSense l'administrador de la xarxa es connectava a l'escriptori d'un dels servidors Windows de la xarxa per RDP, des d'una IP fixa. En usar una IP fixa es podia controlar amb les regles d'un dels routers ADSL l'accés a aquest servei.

Ara, amb OpenVPN l'administrador entra directament a la xarxa local, sense necessitat de que cap ordinador li faci de pont. I ho fa des d'una IP dinàmica, autentificant-se en base a certificats SSL.


Instal·lació d'OpenVPN a Windows XP  

Generació de les claus i certificats (entitat certificadora, servidor i client)
 
Instal·lació de la clau i dels certificats en el client Windows XP
 

Configuració d'OpenVPN a pfSense
 
Connectant ...
 
Connexió automàtica

OpenVPN sense DHCP

Problemes d'estabilitat


Instal·lació d'OpenVPN a Windows XP

L'OpenVPN per a Windows és incompatible amb la majoria de tallafocs de tercers per a Windows XP SP2. Per a més informació mireu la plana openvpn.se/xpsp2_problem.html. Si feu servir Panda Antivirus, haureu d'instal·lar la versió sense tallafocs i, en tot cas, deixar activat el tallafocs propi de Windows XP. Feu aquests canvis abans de fer la instal·lació d'OpenVPN per a Windows.

Baixeu-vos de openvpn.se la darrera versió d'OpenVPN per a Windows (és de codi lliure) amb el driver TAP de tarja de xarxa virtual inclòs:

http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe

Instal·leu l'aplicació amb les seves opcions per defecte.

Aneu ara a les vostres connexions de xarxa, on trobareu una nova tarja de xarxa:

Canvieu-li el nom que té per defecte, pel de TUN (podeu aprofitar també per posar-li, a la tarja real, el nom de LAN):

Aneu a la carpeta C:\Archivos de programa\OpenVPN\config i creeu un arxiu de text que es digui domini.exemple.ovpn amb el següent contingut (essent RRR.RRR.RRR.RRR la IP pública del lloc al qual us voleu connectar):

float
port 1194
dev tun
dev-node TAP
proto tcp-client
remote RRR.RRR.RRR.RRR 1194
ping 10
persist-tun
persist-key
tls-client
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
#comp-lzo
pull
verb 4

La línia comp-lzo està comentada (símbol #) per poder fer les primeres proves sense compressió a les comunicacions.

Ara, per poder-vos connectar només us queda la generació dels certificats i claus SSL.

Generació de claus i certificats (entitat certificadora, servidor i client)

En un ordinador  Windows que tingueu muntat OpenVPN i que sigui d'accés segur ...

Obriu una finestra de comandes MS-DOS ([Inicia] [Executa ...] cmd) i feu:

cd "c:\Archivos de programa\OpenVPN\easy-rsa"
init-config
edit vars.bat

Editeu doncs vars.bat, posant les vostres dades a les darreres línies:

set KEY_COUNTRY=ES
set KEY_PROVINCE=Catalunya
set KEY_CITY=Poblacio
set KEY_ORG=El nom de la vostra organitzacio
set KEY_EMAIL=administrador@domini.exemple

De nou a l'intèrpret de comandes MS-DOS, feu:

vars
clean-all
build-ca

S'us presentaran les dades per defecte, les quals només heu de confirmar. En el nom del servidor heu de posar domini.exemple ja que aquest procés el que fa és generar  ca.key (clau privada de l'entitat certificadora, per al servidor) i ca.crt (certificat-arrel de l'entitat certificadora,  per al servidor i per a tots els clients):

build-key-server server

Aquest procés genera la clau privada i el certificat (server.key i server.crt) per a un servidor OpenVPN. Aquí haureu d'indicar tallafocs.domini.exemple com a nom de la vostra màquina:

A les dues preguntes finals de confirmació només heu de contestar per y (yes).

build-key client

Aquest procés genera la clau privada i el certificat (client.key i client.crt) per a un client OpenVPN. Indiqueu com a nom de màquina client.domini.exemple:

A les dues preguntes finals de confirmació només heu de contestar per y (yes).

En cas de connectar més d'un client cadascun d'ells ha de tenir la seva pròpia clau i certificat de client. A més, els certificats de client poden ser revocats i d'aquesta manera un client deixa d'estar autoritzat per connectar-se.

build-dh

Com a pas final heu de generar els paràmetres Diffie Helman per al vostre servidor OpenVPN, la qual cosa requereix una mica d'estona de màquina:

Obtindreu amb això un arxiu per al servidor anomenat dh1024.pem.


Instal·lació de la clau i dels certificats en el client Windows XP

Copieu els arxius ca.crt, client.key i client.crt que teniu a c:\Archivos de programa\OpenVPN\easy-rsa\keys (generats a l'apartat anterior) a c:\Archivos de programa\OpenVPN\config de l'ordinador client.


Configuració d'OpenVPN a pfSense

Aneu a [VPN] [OpenVPN] [Servers] i afegiu un servidor VPN ...

A Address pool hi haureu de posar una xarxa que no coincideixi cap de les que teniu (AAA, BBB, CCC, XXX, YYY, ZZZ).

Es recomana que primer proveu la connexió sense compressió LZO (LZO compression) i després l'activeu, tant a nivell client com a nivell servidor.


Connectant ...

Ja està tot a punt per a la primera connexió. A la barra de tasques tenim dues noves icones, la d'OpenVPN GUI (interfície gràfica) i la de TAP, que ens diu que està desconnectada:

Si fem doble clic sobre la icona d'OpenVPN GUI veurem una finestra com la següent:

on se'ns informa dels passos que fa la connexió. Si tot ha anat bé, aquesta finestra es tancarà i veurem que la icona de TAP canvia:

Amb això esteu dins de la vostra xarxa gestionada per pfSense com una màquina més ... Proveu si podeu accedir doncs a recursos que estiguin a les xarxes 192.168.XXX.0, 192.168.YYY.0 i 192.168.ZZZ.0. Per exemple, a la pròpia administració web de pfSense.

Recordeu que si heu fet les primeres proves sense compressió LZO cal que l'activeu, tant a la banda del servidor com del client (ja comentat més amunt).


Connexió automàtica

Si desitgeu que quan s'engegui el vostre client Windows es faci de forma automàtica la connexió heu de seguir els següents passos:

Elimineu del registre de Windows l'arrencada d'OpenVPN GUI

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"openvpn-gui"="C:\\Archivos de programa\\OpenVPN\\bin\\openvpn-gui.exe"

Aneu a [Tauler de Control] [Eines Administratives] [Serveis] i cerqueu OpenVPN Service.  Veureu que està en mode manual. Poseu-lo a Automàtic i amb OpenVPN GUI ja aturat, engegueu-lo.

Veureu com al cap d'uns segons TAP ja té connexió.


OpenVPN sense DHCP

Al cap d'un mes de funcionar, la connexió va començar a fallar ocasionalment, sense motiu aparent. A vegades reiniciant l'ordinador es solventava l'error de connexió. Finalment es va treure la connexió automàtica, tornant a OpenVPN GUI, fins que van tornar a aparèixer falles. Al final semblà que el problema era la velocitat de connexió entre les dues ADSL, pel que s'ha passat a configurar OpenVPN sense assignació automàtica d'adreces IP (DHCP).

Per això s'ha fet una plana específica (en aquest tutorial) sobre com configurar [ OpenVPN sense DHCP ] ...


Problemes d'estabilitat

Malgrat haver deixat OpenVPN sense DHCP (vegi's l'anterior apartat), vaig seguir tenint problemes amb la connexió. Els desenvolupadors de pfSense em van recomanar migrar a la darrera versió apedaçada de pfSense. El 25-abril-2007  vaig migrar el tallafocs a la versió 1.2 BETA de pfSense i des de llavors funciona sense problemes. 

 

Autor: Josep Pujadas i Jubany
© 2006-2007. Tots els drets reservats