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
Diagrama de Red
Pasos: VPN basada en políticas
Pasos: Pruebas y Verificación
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.
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
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.
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.
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