Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Configurar una VPN Site-to-Site con IPsec


Por un lado tendremos la Zona Norte que la configuraremos utilizando pfSense para configurar IPsec. Y el otro extremo, tendremos la Zona Sur donde la configuraremos utilizando Strongswan en un Debian 12.

 


 

 

De esta manera veremos como configurar dos extremos usando diferentes tecnologías. Para que se entienda correctamente que configuración de red vamos a utilizar he creado este diagrama de red para que quede claro que redes tiene cada zona.


 

Como podemos observar, en la Zona Norte configuraremos una red WAN que será la IP pública del servidor y luego una LAN que será la red local. Para ello usaremos una red del rango 192.168.1.0/24. Y en la Zona Sur, configuraremos una red WAN que será la IP pública del servidor y la LAN que será del rango 10.20.10.0/24.

Habilitar puertos en el Firewall

Para que este entorno funcione correctamente es necesario habilitar los siguientes puertos:

  • Puerto 500 (TCP/UDP) - IPSec
  • Puerto 4500 (TCP/UDP) - IPSec2
  • Puerto 5500 (TCP/UDP) - IPSec NAT
  • Habilitar ICMP
  • Protocolo 50
  • Protocolo 51

Configuración para pfSense

Lo primero que haremos será acceder a pfSense para configurar la LAN de la Zona Norte. Deberemos de revisar que pfSense tenga configurada tanto la WAN como la LAN, para ello iremos a Interfaces - Assignments y revisaremos que tenemos las dos redes configuradas:

 


Configurar LAN

Para configurar la LAN deberemos de ir a Interfaces - LAN y habilitaremos la interfaz marcando la opción Enable Interface.


 

Luego en la opción IPv4 Configuration Type seleccionaremos la opción Static IPv4 y en el apartado nuevo que aparece para IPv4 Configuration Type y configuramos la IP:

 


Para guardar cambios abajo del todo le damos a Save y luego le damos a Apply Changes

 

Configuración de IPsec

El siguiente paso es configurar el túnel IPSec para configurar la VPN. Primero configuramos la Phase 1 y luego la Phase 2.

Phase 1

Tendremos que ir a VPN - IPsec y hacer clic sobre el botón Add P1.

En las opciones que nos aparece deberemos de añadir lo siguiente. En Remote Gateway deberemos de poner la IP pública de la Zona Sur.

En el apartado Phase 1 Proposal generaremos una Pre-Shared Key haciendo clic sobre el botón amarillo.

 


Luego configuraremos el apartado Encryption Algorithm de la siguiente forma:


 

El Life Time lo configuraremos con 7200 segundos. Añadimos una descripción al principio de todo para identificarla y le damos a Save y luego a Apply Changes.

Phase 2

Ahora que tenemos configurada la Phase 1 configuraremos la segunda fase. Para ello deberemos de hacer clic sobre Show Phase 2 Entries y luego a Add P2.

En Remote Gateway deberemos de poner la IP privada de la Zona Sur. Según nuestro esquema de más arriba la IP Privada es 10.20.10.0/24.


 

En el siguiente apartado, el de cifrado, deberemos de marcar los algoritmos de AES con 265 bits y en Hash Algorithm marcamos la opción SHA1.


 

En Life Time deberemos de configurar 7200 segundos. Para guardar los cambios le damos a Save y luego a Apply Changes.

Comprobación de la conexión

En este tutorial aún tenemos que configurar el otro lado al que hemos llamado como Zona Sur, pero si estuviera configurada correctamente, podemos revisar si las dos fases se han conectado correctamente.

Esto desde pfSense se puede revisar Status - IPsec. En este apartado podremos observar que la Fase I se ha establecido correctamente y vemos que en el apartado de Status aparece un Established en verde. Por otro lado, en la Fase II podemos ver que el Status aparece como Installed.


 

Con las fases de esta forma, podemos decir que la conexión se ha realizado correctamente.

Ya tenemos por un lado configurado correctamente la Zona Sur de nuestra Site To Site, en el siguiente tutorial veremos como configurar la Zona Norte utilizando directamente un Debian y los paquetes correspondientes para IPSec.

En el segunda parte del tutorial vamos a ver como configurar la Zona Sur que se conectará a la Zona Norte. Este procedimiento lo haremos directamente en Debian 12.

Pasos previos

Antes de instalar paquetes y configurar servicios, hay que hacer una pequeña configuración para que funcione correctamente todo.

echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf

 

Comprobamos la configuración:

sysctl -p

 

Salida del comando

vm.swappiness = 0
vm.dirty_ratio = 60
vm.dirty_background_ratio = 20
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
kernel.printk = 3 4 1 3
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.ip_forward = 1

Configuración Firewall

Para que este entorno funcione correctamente es necesario habilitar los siguientes puertos:

  • Puerto 500 (TCP/UDP) - IPSec
  • Puerto 4500 (TCP/UDP) - IPSec2
  • Puerto 5500 (TCP/UDP) - IPSec NAT
  • Habilitar ICMP
  • Protocolo 50
  • Protocolo 51

Instalación de Strongswan

Para configurar IPsec en Debian utilizaremos el paquete de Strongswan que podemos encontrar en los repositorios de Debian.

apt install strongswan 

Una vez hemos instalado el paquete deberemos de editar el fichero /etc/ipsec.conf con la siguiente configuración:

config setup
        charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"

conn %default
        ikelifetime=7200s
        keylife=6480s
        rekeymargin=5m
        keyingtries=3
        keyexchange=ikev2
        authby=secret
        ike=aes256-sha1-modp1024
        esp=aes256-sha1

conn ipsec-vpn-norte
       left=%any
       leftid=%any
       leftsubnet=10.20.10.0/24
       right=[IP_PUBLICA_SERVIDOR]
       rightid=%any
       rightsubnet=192.168.1.0/24
       auto=start

Primero de todo creamos un apartado %default donde habrá configuración común con todas las conexiones que tengamos que crear. En este caso solo habrá una, pero si queremos añadir más conexiones y comparten algunos valores, para no repetir parámetros se puede añadir directamente en este apartado.

Luego tendremos que crear la conexión que hemos llamado ipsec-vpn-norte que es la conexión que establecerá el túnel hacia la Zona Norte.

Es importante siempre rellenar los siguientes datos:

  • left: Dirección IP del servidor de StrongSwan.
  • leftsubnet: Redes del lado del servidor.
  • right: Dirección IP del otro extremo.
  • rightsubnet: Redes del otro extremo.
Las subredes conocidas se pueden añadir en la misma línea separándolas por comas.
 

Configuración de la Clave Precompartida

La clave precompartida o PSK se utiliza para autenticar los dos extremos del túnel, para ello deberemos de editar el fichero /etc/ipsec.secrets y añadir lo siguiente:

: PSK "2fe1b2002ea68450ef87140fb49032cc5f8ae5bc458b6b08d9d60f6b"

 

Si recordáis en la primer parte del tutorial, cuando se configura la primera fase se configura una Pre-Shared Key en pfSense. Debemos de poner el mismo valor para que funcione correctamente.

 Una vez hemos configurado esto, podemos reiniciar IPsec para que se aplique la configuración

ipsec restart

 

Podemos ver el estado del túnel con:

ipsec statusall

Resultado:

Status of IKE charon daemon (strongSwan 5.9.8, Linux 6.1.0-9-amd64, x86_64):
uptime: 3 hours, since Feb 12 21:01:32 2024
malloc: sbrk 1830912, mmap 0, used 1250800, free 580112
worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4
loaded plugins: charon aesni aes rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs12 pgp dnskey sshkey pem openssl pkcs8 fips-prf gmp agent xcbc hmac kdf gcm drbg attr kernel-netlink resolve socket-default connmark stroke updown eap-mschapv2 xauth-generic counters
Listening IP addresses:
XXX,XXX,XXX.70
10.20.10.2
Connections:
ipsec-vpn-nord: %any...XXX,XXX,XXX.70 IKEv2
ipsec-vpn-nord: local: uses pre-shared key authentication
ipsec-vpn-nord: remote: uses pre-shared key authentication
ipsec-vpn-nord: child: 10.20.10.0/24 === 192.168.1.0/24 TUNNEL
Security Associations (1 up, 0 connecting):
ipsec-vpn-nord[5]: ESTABLISHED 74 minutes ago, XXX,XXX,XXX.70[XXX,XXX,XXX.70]...XXX,XXX,XXX.14[XXX,XXX,XXX.14]
ipsec-vpn-nord[5]: IKEv2 SPIs: dbd56a56d268d917_i dfc00a354e1b9c2b_r*, pre-shared key reauthentication in 38 minutes
ipsec-vpn-nord[5]: IKE proposal: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
ipsec-vpn-nord{183}: INSTALLED, TUNNEL, reqid 1, ESP SPIs: c0a7f126_i c7687791_o
ipsec-vpn-nord{183}: AES_CBC_256/HMAC_SHA1_96, 0 bytes_i, 0 bytes_o, rekeying in 27 minutes
ipsec-vpn-nord{183}: 10.20.10.0/24 === 192.168.1.0/24

Ahora que en la salida del comando vemos que se ha establecido correctamente e instalado el túnel, podremos hacer ping a la interfaz privada del pfSense con IP 192.168.1.1:


 # ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.30 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.03 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.916 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.923 ms

 

 

Fuentes:

https://voidnull.es/configurar-una-vpn-site-to-site-con-ipsec/

https://voidnull.es/configurar-una-vpn-site-to-site-con-ipsec-parte-ii/ 


2 comentarios :

Anónimo dijo...

Buen día, tengo una duda, ya tengo toda la configuración tal como me indicas pero la fase 1 me conecta, sin embargo, la fase 2 no me sube, en este caso, a qué se podría deber?

Anónimo dijo...

Este post es una copia de https://voidnull.es/configurar-una-vpn-site-to-site-con-ipsec/

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.