En este artículo os vamos a enseñar cómo configurar una VPN site-to-site “Sitio a Sitio” con certificado SSL para la autenticación utilizando pfSense. Esta conexión nos permitirá enlazar 2 ubicaciones y que los dispositivos se puedan ver entre las ubicaciones. Si tienes problemas accediendo a pfSense vía web te recomendamos que revises este artículo sobre reglas de firewall en pfSense.
Habitualmente, la configuración común para autenticar ambas ubicaciones es con una preSharedKey que comparten ambos extremos para poder conectarse. En esta ocasión, sustituiremos la preSharedKey por unos certificados SSL, por lo que lograremos que nuestra VPN aún sea más segura.
Es importante que las LANs (red privada) de las ubicaciones sean rangos diferentes. Aquí os dejamos un esquema de ejemplo, utilizaremos estos datos para nuestro artículo.
En este artículo ambas ubicaciones utilizarán pfSense.
- Fase 1
- Encriptación: AES 128 bits
- Algoritmo: SHA256
- Diffie Hellman Group: 14
- Certificado SSL
- Lifetime: 28800
- Fase 2
- Encriptación: AES 128 bits
- Algoritmo: SHA25
- PFS: Desactivado
- Lifetime: 3600
Configurar LAN
Nuestra imagen de Pfsense viene con la LAN sin configurar, lo primero que haremos es entrar a nuestro pfSense y en el menú superior iremos a Interfaces > Assignments y haremos clic en el botón “+ Add” de vtnet1. Ahora entraremos a Interfaces > LAN y activaremos la casilla “Enable interface“. En la opción “IPv4 Configuration Type” elegiremos Static IPv4 e iremos al siguiente apartado “Static IPv4 Configuration” y rellenaremos la IP 10.20.10.1 en la ubicación 1 y 10.20.11.1 en la ubicación 2.
Ejemplo de la ubicación 1:
Generar los certificados SSL
Antes de configurar IPsec necesitamos generar los certificados SSL en PfSense. Para ello en el pfSense de la ubicación 1 en el menú superior iremos a System > Cert. manager > CAs. Primero deberemos crear una autoridad de certificación haciendo clic en Add. Rellenaremos los datos como a continuación:
Ahora tenemos que crear un certificado SSL para el pfSense de la ubicación 1. Para ello en el pfSense de la ubicación 1 en el menú superior iremos a System > Cert. manager > Certificates y haremos clic en Add/sign. Rellenaremos el certificado como a continuación, teniendo en cuenta que tiene que ser de tipo "Server Certificate" e indicar la IP pública del pfSense de la ubicación 1.
Volvemos a System > Cert. manager > Certificates y hacemos clic de nuevo en Add/sign para crear el certificado SSL del pfSense para la ubicación 2. En este caso deberemos indicar "User Certificate" y la IP pública del pfSense de la ubicación 2.
Ahora tenemos los certificados SSL preparados para poder realizar las configuraciones.
Exportar e Importar CA y certificado SSL para pfSense ubicación 2
En el pfSense de la ubicación 1 en el menú superior iremos a System > Cert. manager > CAs. Para exportar la autoridad de certificación tendremos que hacer clic en los dos iconos del centro de las "Actions" para descargar el CA y la clave privada que deberemos importar en el pfSense de la ubicación 2.
El siguiente paso es exportar el certificado SSL generado para el pfSense de la ubicación 2. En el menú superior iremos a System > Cert. manager > Certificates y exportaremos el certificado haciendo clic en los dos primeros iconos del certificado para la ubicación 2.
Los dos últimos pasos antes de configurar IPsec son importar el CA y el certificado generado en la ubicación 1 en el pfSense de la ubicación 2. Para ello hacemos login en el pfSense de la ubicación 2 y nos dirigimos a System > Cert. manager > CAs y haremos clic en en ADD. Es importante seleccionar la opción "Import an existing certificate authority". Rellenaremos el Certificate data y el Certificate Private Key con los datos de los ficheros del CA descargados del pfSense de la ubicación 1 y haremos clic en Save.
Nos dirigimos a System > Cert. manager > Certificates y haremos clic en Add/Sign. Es importante seleccionar la opción "Import an existing certificate authority". Rellenaremos el Certificate data y el Certificate Private Key con los datos de los ficheros del certificado descargados del pfSense de la ubicación 1 y haremos clic en Save.
Ahora ya tenemos todo el apartado de certificados SSL preparados tanto en el pfSense de la ubicación 1 como en el pfSense de la ubicación 2.
En las siguientes capturas podéis ver cómo debe quedar el pfSense de la ubicación 1:
En las siguientes capturas podéis ver como debe quedar el pfSense de la ubicación 2:
Configurar IPsec
Ahora procederemos a configurar el túnel IPsec en el pfSense de la ubicación 1, para ello en el menú superior iremos a VPN> IPsec y haremos clic en el botón verde “+ Add P1“. En en el formulario rellenaremos “Remote Gateway” con la IP pública de la Ubicación 2, en nuestro caso 161.22.46.187, si queremos podemos añadir una descripción. Acto seguido, indicaremos "Mutual RSA" para autenticarnos con certificado SSL y configuraremos el resto tal y como vemos en las siguientes imágenes. Finalmente, hacemos clic en Save.
Repetimos el mismo paso en el pfSense de la ubicación 2 pero en "Remote Gateway" debemos indicar ahora la IP pública del pfSense de la ubicación 1 y los certificados correspondientes como en las siguientes imágenes. Finalmente, hacemos clic en Save.
Ahora que ya tenemos la Fase 1 configurada procederemos a configurar la Fase 2 en ambas ubicaciones, para ello haremos clic en el botón verde “Add P2“. Aquí rellenaremos “Remote Network” con la LAN de la Ubicación 2 en el caso del pfSense de la ubicación 1 y con la Lan de la ubicación 1 en el caso del pfSense de la ubicación 2, en nuestro ejemplo 10.20.11.0/24 y configuraremos la encriptación, una vez guardado aplicaremos los cambios.
Aquí os dejamos una captura de la configuración Fase 2 en la ubicación 1:
Aquí os dejamos una captura de la configuración Fase 2 en la ubicación 2:
Configurar reglas de Firewall y NAT
Ahora procederemos a configurar el firewall de pfSense para que permita todo el tráfico del túnel IPsec, para ello entraremos en Firewall > Rules > IPsec, una vez dentro haremos clic en el botón verde “↑ Add“, os dejamos una captura de la configuración, una vez guardado aplicaremos los cambios:
Configurar reglas de Firewall Clouding
Para que funcione nuestra VPN crearemos un perfil de firewall con las siguientes reglas:
Conectar VPN
Para conectar la VPN iremos al menú superior VPN > IPsec y haremos clic en "related status".
En esta nueva ventana haremos clic en "Connect VPN".
Finalmente, veremos el estado de la VPN:
¿Lo has probado? ¡Déjanos tus comentarios! 🙂