VPN con OpenVPN y certificados x509 (II)
Warning: This information may be outdated. Please note the date of the post.
Escenario:
Tenemos dos servidores, dos maquinas conectadas a las redes locales diferentes y un cliente. Los servidores están conectados a dos redes la exterior en común y una interna compartida con su respectivo cliente de forma que tenemos el siguiente direccionamiento:
Servidor 1: vpn_server
- Red común 172.22.201.64
- Red 10.0.0.8
- Red1 192.168.100.2
Maquina de la red local 1: lan
- Red1 192.168.100.10
Servidor 2: vpn_server2
- Red común 172.22.201.33
- Red 10.0.0.13
- Red2 192.168.200.8
Maquina de la red local 1: lan2
- Red2 192.168.200.4
Objetivo:
Tras el establecimiento de la VPN, una máquina de cada red detrás de cada servidor VPN debe ser capaz de acceder a una máquina del otro extremo.
Cabe decir que tenemos instalado en las 4 máquinas el paquete openvpn.
Configuración
Servidor 2 (rol de servidor)
sudo nano /etc/openvpn/servidor.conf
# Use a dynamic TUN device
dev tun
# Virtual ip
ifconfig 10.99.99.1 10.99.99.2
# Local subnet
route 192.168.100.0 255.255.255.0
# Enable TLS and assume server role
tls-server
# Diffie-Hellman
dh /etc/openvpn/keys/dh.pem
# Certificado de la CA
ca /etc/openvpn/keys/ca.crt
# Certificado local
cert /etc/openvpn/keys/servidor.crt
# Clave privada
key /etc/openvpn/keys/servidor.key
# Use fast LZO compression
comp-lzo
# Ping remote every 10sg and restart after 60sg passed without sign of file from remote.
keepalive 10 60
# Set output verbosity to normal usage range
verb 3
log /var/log/office1.log
- Vemos que se ha creado el tunel
13: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.99.99.1 peer 10.99.99.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::e63:da50:7b73:26f6/64 scope link stable-privacy
valid_lft forever preferred_lft forever
- Ahora le pasamos los certificados y claves al cliente de sergio
Servidor 1 (rol de cliente)
#### Fichero de sit-to-site vpn ####
#Dispositivo de túnel
dev tun
#IP del servidor
remote 172.22.201.33
#Encaminamiento
ifconfig 10.99.99.2 10.99.99.1
# Subred remota
route 192.168.200.0 255.255.255.0
#Rol de cliente
tls-client
#Certificado de la CA
ca /etc/openvpn/ca_celia.crt
#Certificado cliente
cert /etc/openvpn/cliente_celia.crt
#Clave privada cliente
key /etc/openvpn/cliente_celia.key
#Activar la compresión LZO
comp-lzo
#Detectar caídas de la conexión
keepalive 10 60
#Nivel de la información
verb 3
log /var/log/vpn.log
Funcionamiento:
Podemos comprobar que tenemos comunicación de extremo a extremo. Del cliente 1 al cliente 2 y a ambos servidores estandos en redes locales distintas.
