Los lectores aprenderán a configurar una VPN IPsec de sitio a sitio basada en directivas entre dos EdgeRouter.

Una VPN basada en políticas se caracteriza por la definición de subredes locales y remotas (ID de proxy). Este tipo de VPN difiere de una VPN basada en rutas que se caracteriza por el uso de interfaces de túnel virtual (VTI) y entradas de enrutamiento.

Consulte el artículo VPN Site-to-Site EdgeRouter – IPsec Route-Based (VTI) para obtener información sobre cómo configurar una VPN basada en rutas. Si utiliza una configuración DynDNS con nombres de host, consulte nuestro EdgeRouter – IPsec Dynamic Site-to-Site VPN usando el artículo de los FQDN.

NOTAS Y REQUISITOS:

Aplicable al Firmware de EdgeOS 1.9.7 + en todos los modelos EdgeRouter. Se requiere el conocimiento de la interfaz de línea de comandos (CLI) y conocimientos básicos de redes. Consulte los artículos relacionados a continuación para obtener más información y consulte los archivos adjuntos para las configuraciones utilizadas en este artículo.

Equipo utilizado en este artículo:

  • EdgeRouter-X (ER-X)
  • Probar clientes detrás de los pares (Host1 y Server1).

Tabla de contenido

  1. Diagrama de Red
  2. Pasos: VPN basada en políticas
  3. Pasos: Pruebas y Verificación
  4. Artículos relacionados

Diagrama de Red

Volver arriba

La topología de red se muestra a continuación. Las siguientes interfaces están en uso en EdgeRouters:

ER-Ieft

eth0 (WAN) – 203.0.113.1

eth1 (LAN) – 192.168.1.1/24

ER-Right

eth0 (WAN) – 192.0.2.1

eth1 (LAN) – 172.16.1.1/24

Pasos: VPN basada en políticas

Para el propósito de este artículo, se supone que el enrutamiento y configuración de interfaz ya está en su lugar y que la accesibilidad ha sido probada.

Los puertos UDP y protocolos relevantes para IPsec son:

  • UDP 500 (IKE)
  • ESP (Protocol 50)
  • UDP 4500 (NAT-T)

El tipo de VPN que se creará se llama una VPN basada en políticas que utiliza subredes remotas y locales, también conocidas como identificaciones de proxy. Estos valores deben coincidir exactamente entre los dos pares y necesitan ser imágenes reflejadas entre sí. Sólo los prefijos definidos en los ID de proxy se transportarán por el túnel. En el ejemplo ER-Left tiene el 192.168.1.0/24 presente en el lado LAN, mientras que el ER-Right usa 172.16.1.0/24.

La configuración se centrará principalmente en ER-Izquierda. La configuración de ER-Right será casi idéntica a la excepción de las subredes definidas. Sólo los lugares donde la configuración de ER-Right difiere se incluirán en la salida de abajo.

  1. Defina el par de IPsec y las Asociaciones de Seguridad (SA) en ER-Derecha (reemplace <secreto> con la frase de contraseña deseada).

VPN> IPsec Site-to-Site> + Añadir Peer

Mostrar opciones avanzadas

Abra automáticamente el cortafuegos y excluya de NAT

  • Peer: 192.0.2.1
  • Description: IPsec
  • Local IP: 203.0.113.1
  • Encryption: AES-256
  • Hash: SHA1
  • DH Group: 14
  • Pre-shared Secret: <secret>
  • Local subnet: 192.168.1.0/24
  • Remote subnet: 172.16.1.0/24

Nota: También es posible utilizar una dirección IP no estática para la conexión WAN. En el caso de DHCP, proceda a los pasos de CLI siguientes para cambiar el valor de dirección local (o puede intentar establecer el IP local a 0.0.0.0). Para interfaces PPPoE o escenarios de equilibrio de carga, actualmente se recomienda utilizar 0.0.0.0 en IP local ‘any’.

2. Defina el par de IPsec y las asociaciones de seguridad (SA) en ER-Izquierda (reemplace <secreto> con la frase de contraseña deseada).


 Mostrar opciones avanzadas
 VPN> IPsec Site-to-Site> + Añadir Peer

Desmarque: Abra automáticamente el firewall y excluya de NATr

  • Peer: 203.0.113.1
  • Description: IPsec
  • Local IP: 192.0.2.1
  • Encryption: AES-256
  • Hash: SHA1
  • DH Group: 14
  • Pre-shared Secret: <secret>
  • Local subnet: 172.16.1.0/24
  • Remote subnet: 192.168.1.0/24

Nota: La GUI no muestra todas las opciones de cifrado / cifrado disponibles como SHA256 / 384/512 y las cifras de Galois / Counter Mode (GCM). Si deja la casilla de opciones avanzadas desmarcada, el enrutador usará su configuración predeterminada, que son:

Cifrado: AES-128

Hash: SHA1

DH Grupo: 14

Independientemente de las SA que elija, asegúrese de que los valores coincidan en ambos lados y de que las subredes remotas y locales estén reflejadas en ambos pares.

CLI STEPS (DHCP): Acceda a la interfaz de línea de comandos (CLI). Puede hacerlo utilizando el botón CLI en la GUI o utilizando un programa como PuTTY.

Ingrese al modo de configuración.

configurar

  1. Mostrar la configuración de IPSec VPN actual (sólo se muestra la salida relevante).
show vpn ipsec {    site-to-site {        peer 192.0.2.1 {            local-address 203.0.113.1            } ...

(Opcional) Elimine la dirección local de IPsec.

delete vpn ipsec site-to-site peer 192.0.2.1 local-address

(Opcional) Defina la dirección local de IPsec DHCP para la interfaz WAN.

set vpn ipsec site-to-site peer 192.0.2.1 dhcp-interface eth0

(Opcional) Active la función de descarga IPsec para aumentar el rendimiento ESP (no IKE)

set system offload ipsec enable (this requires a reboot to become active).

6.Confirmar los cambios.

Commit.

  1. Salvar la configuración

Save

Pasos: Pruebas y Verificación

Después de configurar VPN IPsec, verifique la conexión / estado utilizando los siguientes comandos.

  1. Verifique las asociaciones de seguridad (SA) de IPsec y el estado:

mostrar vpn ipsec sa

peer-192.0.2.1-tunnel-1: #1, ESTABLISHED, IKEv1, 184447c009d51f80:14cc0f13aff401c0

local ‘203.0.113.1’ @ 203.0.113.1

remote ‘192.0.2.1’ @ 192.0.2.1

AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048

established 237s ago, reauth in 85347s

peer-192.0.2.1-tunnel-1: #1, INSTALLED, TUNNEL, ESP:AES_CBC-128/HMAC_MD5_96

installed 237 ago, rekeying in 41939s, expires in 42964s

in cb321982, 180 bytes, 3 packets, 231s ago

out 5d4174b1, 180 bytes, 3 packets, 231s ago

local 192.168.1.0/24

remote 172.16.1.0/24

sudo ipsec statusall

Status of IKE charon daemon (strongSwan 5.2.2, Linux 3.10.14-UBNT, mips):

uptime: 10 minutes, since Mar 12 09:05:48 2017

malloc: sbrk 376832, mmap 0, used 269320, free 107512

worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 2

Listening IP addresses:

203.0.113.1

192.168.1.1

Connections:

peer-192.0.2.1-tunnel-1: 203.0.113.1…192.0.2.1 IKEv1

peer-192.0.2.1-tunnel-1: local: [203.0.113.1] uses pre-shared key authentication

peer-192.0.2.1-tunnel-1: remote: [192.0.2.1] uses pre-shared key authentication

peer-192.0.2.1-tunnel-1: child: 192.168.1.0/24 === 172.16.1.0/24 TUNNEL

Routed Connections:

peer-192.0.2.1-tunnel-1{1}: ROUTED, TUNNEL

peer-192.0.2.1-tunnel-1{1}: 192.168.1.0/24 === 172.16.1.0/24

Security Associations (1 up, 0 connecting):

peer-192.0.2.1-tunnel-1[1]: ESTABLISHED 5 minutes ago, 203.0.113.1[203.0.113.1]…192.0.2.1[192.0.2.1]

peer-192.0.2.1-tunnel-1[1]: IKEv1 SPIs: 184447c009d51f80_i* 14cc0f13aff401c0_r, pre-shared key reauthentication in 23 hours

peer-192.0.2.1-tunnel-1[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048

peer-192.0.2.1-tunnel-1{1}: INSTALLED, TUNNEL, ESP SPIs: cb321982_i 5d4174b1_o

peer-192.0.2.1-tunnel-1{1}: AES_CBC_128/HMAC_MD5_96, 180 bytes_i (3 pkts, 324s ago), 180 bytes_o (3 pkts, 324s ago)

peer-192.0.2.1-tunnel-1{1}: 192.168.1.0/24 === 172.16.1.0/24

2.-mostrar vpn ipsec sa

sudo cat /etc/ipsec.conf

# generated by /opt/vyatta/sbin/vpn-config.pl

config setup

conn %default

keyexchange=ikev1

conn peer-192.0.2.1-tunnel-1

left=203.0.113.1

right=192.0.2.1

leftsubnet=192.168.1.0/24

rightsubnet=172.16.1.0/24

ike=aes256-sha256-modp2048!

keyexchange=ikev1

ikelifetime=86400s

esp=aes128-md5!

keylife=43200s

rekeymargin=540s

type=tunnel

compress=no

authby=secret

auto=route

keyingtries=%forever

#conn peer-192.0.2.1-tunnel-1

3.Capture la llegada del tráfico IKE en la interfaz WAN externa:

sudo tcpdump -i eth0 -n udp dst port 500

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

IP 203.0.113.1.500 > 192.0.2.1.500: isakmp: phase 1 I ident

IP 192.0.2.1.500 > 203.0.113.1.500: isakmp: phase 1 R ident

IP 203.0.113.1.500 > 192.0.2.1.500: isakmp: phase 1 I ident[E]

IP 192.0.2.1.500 > 203.0.113.1.500: isakmp: phase 1 R ident[E]

IP 203.0.113.1.500 > 192.0.2.1.500: isakmp: phase 2/others I oakley-quick[E]

IP 192.0.2.1.500 > 203.0.113.1.500: isakmp: phase 2/others R oakley-quick[E]

Nota: Esta es una captura en vivo. Si no hay salida significa que el tráfico no se está generando en el cliente, o hay algo que bloquea el tráfico hacia arriba.

4.Capture los registros IPsec VPN:

sudo swanctl –log

[KNL] creating acquire job for policy 192.168.1.10/32[icmp/8] === 172.16.1.10/32[icmp/8] with reqid {1}

[IKE] initiating Main Mode IKE_SA peer-192.0.2.1-tunnel-1[1] to 192.0.2.1

[ENC] generating ID_PROT request 0 [ SA V V V V ]

[NET] sending packet: from 203.0.113.1[500] to 192.0.2.1[500] (160 bytes)

[NET] received packet: from 192.0.2.1[500] to 203.0.113.1[500] (108 bytes)

[ENC] parsed ID_PROT response 0 [ SA V ]

[IKE] received NAT-T (RFC 3947) vendor ID

[ENC] generating ID_PROT request 0 [ KE No NAT-D NAT-D ]

[ENC] parsed ID_PROT response 0 [ KE No V V V V NAT-D NAT-D ]

[ENC] generating ID_PROT request 0 [ ID HASH N(INITIAL_CONTACT) ]

[ENC] parsed ID_PROT response 0 [ ID HASH ]

[IKE] IKE_SA peer-192.0.2.1-tunnel-1[1] established between 203.0.113.1[203.0.113.1]…192.0.2.1[192.0.2.1]

[ENC] generating QUICK_MODE request 561157166 [ HASH SA No ID ID ]

[ENC] parsed QUICK_MODE response 561157166 [ HASH SA No ID ID N((24576)) ]

[IKE] CHILD_SA peer-192.0.2.1-tunnel-1{1} established with SPIs cb321982_i 5d4174b1_o and TS 192.168.1.0/24 === 172.16.1.0/24

Nota: Esto también es captura en directo. Si no hay salida significa que el tráfico no se está permitiendo a través del firewall. Alternativamente, puede utilizar el show vpn log | no más comando para ver todo el historial de registro IPsec.

5.Enviar tráfico a través del túnel de Server1 a Host1 y viceversa:

ping 192.168.1.10
 PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
 64 bytes from 192.168.1.10: icmp_seq=1 ttl=63 time=45.9 ms
 64 bytes from 192.168.1.10: icmp_seq=2 ttl=63 time=45.2 ms
 64 bytes from 192.168.1.10: icmp_seq=3 ttl=63 time=45.5 ms

ping 172.16.1.10
 PING 172.16.1.10 (172.16.1.10) 56(84) bytes of data.
 64 bytes from 172.16.1.10: icmp_seq=1 ttl=63 time=43.9 ms
 64 bytes from 172.16.1.10: icmp_seq=2 ttl=63 time=44.1 ms
 64 bytes from 172.16.1.10: icmp_seq=3 ttl=63 time=44.4 ms

¿Encontró su respuesta?