IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Servidor OpenVPN

Els passos a seguir són:

  • Obtenir els certificats SSL necessaris per a la infraestructura de clau pública (PKI)
  • Configurar un pool d'adreces IP per als clients OpenVPN.
  • Configuració del firewall i del NAT (opcional)
  • Configuració del servidor OpenVPN
  • Configuració dels usuaris

TODO: Esquema amb les IPs i les xarxes utilitzades!

Obtenir un certificat SSL

Consulteu OpenVPN#Creaci.C3.B3_de_certificats_SSL per veure com podeu crear la PKI. Un cop tingueu els certificats els heu de copiar als encaminadors microtik via FTP o scp. Per exemple:

$ scp ca.crt ovpn-server.crt ovpn-server.key admin@{IP_of_Router}:.

NOTA: TODO: Comprovar si cal? És molt possible que haguiu de passar els certificats format PEM:

$ openssl rsa -in keys/ovpn-server.key -out keys/ovpn-server.pem

Ara cal importar els certificats:

/certificate import file-name=ca.crt
/certificate import file-name=ovpn-server.crt
/certificate import file-name=ovpn-server.key

NOTA: Les antigues comandes eren: antigues

Els certificats seran anomenats cert1 i cert2. Pot ser una bona idea canviar el nom per a que siguin més fàcils d'identificar.

Als clients cal copiar els certicats:

ca.crt, clientX.crt and clientX.key

IMPORTANT: No cal i NO COPIEU MAI (per a més seguretat) el fitxer ca.key ni als clients ni als servidors. No cal i és la part més delicada de la infrestructura PKI. Si es veu compromès aquest fitxer tota la infraestructura es veu compromesa.

Recursos:

Creació del pool d'adreces IP

A l'hora de definir el pool cal tenir en compte el següent:

  • Quin nombre de clients es preveu tenir?
  • Els clients tindran adreces públiques d'Internet o adreces privades? En el cas de tenir adreces privades si es vol donar accés a Internet als clients caldrà fer NAT
  • Com s'assignaran les IPs als clients? Sovint els més habitual és que un client concret tingui una IP fixa.

Per la interfície gràfica cal anar a l'apartat IP i al subapartat Pool:

MicrotikOpenVPNPool.png

Per definir un pool per la línia d'ordres de routerOS:

/ip pool add name=ovpn-pool ranges=10.15.32.34-10.15.32.38

Configuració del firewall i del NAT (opcional)

Cal tenir en compte que OpenVPN utilitza el port TCP 1194. Si teniu un firewall amb una configuració restrictiva, aleshores haureu de crear normes per a permetre les connexions a aquest port:

/ip firewall filter add action=accept chain=input disabled=no protocol=tcp dst-port=1194

A més, si els clients OpenVPN tenen IPs privades, també us caldrà configurar NAT per tal que els clients es puguin connectar a Internet.

/ip firewall nat add action=masquerade chain=src-nat out-interface=INTERFICIE_AMB_ACCES_A_INTERNET

NOTA: Sembla ser que el OpenVPN de routerOS no suporta connexions al servidor OpenVPN per UDP

Configuració del servidor OpenVPN i PPP (Point To Point)

Cal seguir els següents passos:

  • Configurar un perfil (profile) ppp
  • Cal afegir una interfície OpenVPN
  • Crear les paraules de pas de cada usuari/client OpenVPN i si cal assignar-li una IP

Perfil PPP

I aleshores es pot utilitzar al profile PPP (Point To Point) com a remote-address:

/ppp profile 
add change-tcp-mss=default comment="" local-address=10.15.32.33 \
name="your_profile" only-one=default remote-address=ovpn-pool \
use-compression=default use-encryption=required use-vj-compression=default
MicrotikOpenVPNPerfilPPP.png

Interfície VPN:

/interface ovpn-server server set auth=sha1,md5 certificate=server-cert \
cipher=blowfish128,aes128,aes192,aes256 default-profile=openvpn-in \
enabled=yes keepalive-timeout=disabled max-mtu=1500 mode=ip netmask=24 \
port=1194 require-client-certificate=no



Usuaris/clients OpenVPN

Un usuari sense Ip estàtica (l'agafa del pool)

/ppp secret add disabled=no name="client1" password="password1"

NOTA: client1 ha de ser el common name del certificat relacionat amb aquest usuari

Amb IP estàtica (client2):

/ppp secret add disabled=no name="client2" password="password2" remote-address=10.1.0.101

Recursos:

Client VPN

Hi ha dos formes de configurar els clients:

Els passos són els següents:

  • Instal·lar el certificat de client (pas opcional si utilitzeu l'opció sense certificat SSL)

Instal·lar el certificat de client

El primer que cal fer és copiar el certificat del client al router del client conjuntament amb el certificat del CA i la clau privada del certificat. Els podeu copiar als encaminadors microtik via FTP o scp.

Per exemple:

$ scp ca.crt clientX.crt and clientX.key admin@{IP_of_Router}:.

On heu de posar la IP del router que us pertoqui i els fitxers clientX.crt/key són els parells de claus públiques de cada client.

Ara cal importar els certificats:

/certificate import=ca.crt
/certificate import=clientX.crt
/certificate import=clientX.key

IMPORTANT: Els certificats seran anomenats cert1 i cert2. Pot ser una bona idea canviar el nom per a que siguin més fàcils d'identificar dins del winbox.

Configuració de la xarxa

  • Cal assignar una IP i una màscara el client. El client pot ser perfectament un dispositiu que està en una xarxa privada amb IPs privades, l'important és que tingui una forma d'accedir al servidor openVPN (poder-li fer un ping
  • En el cas de guifi cal tenir en compte el següent:
  • Per accedir a la xarxa guifi.net (10.0.0.0/8) podeu fer-ho posant com a gateway ([[ruta per defecte]) l'antena. Compte però que si, el que voleu és configurar el client per tenir accés a Internet directament per la VPN i marqueu al client l'opció d'afegir la ruta per defecte tindreu dos rutes per defecte i per tant un conflicte. Potser una millor opció configurar una ruta estàtica per accedir a Guifi i deixar la ruta per defecte per a la VPN.

Comproveu la connectivitat al servidor OpenVPN primer amb un ping:

$ ping 10.139.221.97

I després comproveu que el port està obert (1194):

$ nmap 10.139.221.97 -p 1194

Starting Nmap 5.21 ( http://nmap.org ) at 2012-01-14 18:45 CET
Nmap scan report for 10.139.221.97
Host is up (0.0029s latency).
PORT     STATE SERVICE
1194/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Definir les qüestions de seguretat: aunteticació i xifratge

TODO


Creació del pèrfil PPP

Ara cal crear el perfil PPP:

/ppp profile
add change-tcp-mss=default comment="" name=openvpn-out only-one=default \
use-compression=default use-encryption=default use-vj-compression=default

Ara cal crear la interfície openvpn.

/interface ovpn-client
add add-default-route=no auth=sha1 certificate=client1 cipher=aes128 \
comment="" connect-to= disabled=no mode=ip name=OVPN-Client \
user=client1 password=password1 port=1194 profile=openvpn-out

NOTA: Cal fer coincidir el certificat amb el del client que pertoqui i també l'usuari i paraula de pas que li vau assignar al servidor.

Finalment canvieu:

add-default-route=no

a

add-default-route=yes

Si voleu afegir la ruta per defecte cada cop que es faci la connexió openVPN.

Recursos:

Exemple

Esquema de xarxa de l'exemple

Exemple 2

Xarxa guifi

  • Servidor VPN: 10.139.221.97 Port

Log

Resol·lució de problemes. Troubleshooting

El primer que cal fer es observar sempre el Log de routerOS a l'apartat Logooo

El client no connecta. Could ot add address

Mireu que no tingueu la IP ja assignada a la l'apartat IP > addresses. Si és així assigneu-vos una altre IP per tal de no tenir conflicte.

Vegeu també

Enllaços externs