No se puede enrutar el tráfico VPN de Strongswan a través de AWS Internet Gateway

No se puede enrutar el tráfico VPN de Strongswan a través de AWS Internet Gateway

Saludos, quiero configurar un servidor VPN en una instancia EC2 para enrutar todo mi tráfico privado de Internet, pero no puedo hacerlo funcionar. Cualquier ayuda sería apreciada.

Tengo la siguiente configuración:

    Private Network  10.0.0.0/24    |               Internet              |  AWS VPC / Subnet 10.0.1.0/24
   PC                        Fritzbox Router                             IGW         EC2
 10.0.0.11   ----    10.0.0.1 ------| -- MyPublicLocalIP -- EC2PublicIP --| ------ 10.0.1.193

El enrutador tiene una conexión IPSec a una instancia Strongswan que se ejecuta en la instancia EC2. La interfaz de red de la instancia EC2 tiene la verificación de origen/destino deshabilitada. El grupo de seguridad permite todo el tráfico entrante con origen desde PublicLocalIP y desde la subred (también intenté "permitir todos los orígenes") y destino cualquiera.

Se puede establecer la conexión VPN y puedo hacer ping a 10.0.1.142 y 10.0.1.1 desde mi red privada. La propia instancia EC2 también puede hacer ping a IP públicas como 8.8.8.8. Pero no puedo hacer ping a 8.8.8.8 ni a ninguna otra IP pública desde mi red privada aunque puedo ver los paquetes yendo en una dirección en la instancia EC2 con tshark:

tshark -f "icmp"

   10 7.320371756 10.0.0.11 → 8.8.8.8 ICMP 98 Solicitud de eco (ping) id=0x0034, seq=1/256, ttl=63
   11 8.332639368 10.0.0.11 → 8.8.8.8 ICMP 98 Solicitud de eco (ping) id=0x0034, seq=2/512, ttl=63
   12 9.356457465 10.0.0.11 → 8.8.8.8 ICMP 98 Solicitud de eco (ping) id=0x0034, seq=3/768, ttl=63
   13 10.380464177 10.0.0.11 → 8.8.8.8 ICMP 98 Solicitud de eco (ping) id=0x0034, seq=4/1024, ttl=63
   14 11.404715789 10.0.0.11 → 8.8.8.8 ICMP 98 Solicitud de eco (ping) id=0x0034, seq=5/1280, ttl=63
   15 12.428989444 10.0.0.11 → 8.8.8.8 ICMP 98 Solicitud de eco (ping) id=0x0034, seq=6/1536, ttl=63

Este es el archivo ipsec.conf de EC2

configuración de configuración
conexión %predeterminada
 tipo=túnel
 izquierda=%cualquiera
 leftid=EC2IPPública
 subred izquierda=0.0.0.0/0
 auto=añadir
 fragmentación=si
 tapas forzadas = no
 moto=si
 autenticación izquierda=psk
 derechaauth=psk

conectar fb
 ike=aes256-sha-modp1024
 esp=aes256-sha1-modp1024
 derecha=MiPublicLocalFQ.net
 [correo electrónico protegido]
 subred derecha=10.0.0.0/24
 DNS derecho = 8.8.8.8,8.8.4.4
 ikelifetime=3600s
 vida clave=3600s

Esta es la configuración IPSec del router Fritzbox

vpncfg {
  conexiones {
    habilitado = no;
    editable = sí;
    conn_type = conntype_lan;
    nombre = "EC2VPN";
    boxuser_id = 0;
    siempre_renovar = si;
    rechazar_not_encrypted = no;
    dont_filter_netbios = sí;
    localización = 0.0.0.0;
    local_virtualip = 0.0.0.0;
    IP remota = 0.0.0.0;
    remoto_virtualip = 0.0.0.0;
    keepalive_ip = 0.0.0.0;
    ID local {
      fqdn = "MiPublicLocalFQ.net";
    }
    ID remoto {
      fqdn = "EC2PublicIP";
    }
    modo = fase1_modo_idp;
    fase1ss = "todos/todos/todos";
    tipo de clave = connkeytype_pre_shared;
    clave = "THE_PSK_KEY";
    cert_do_server_auth = no;
    use_nat_t = sí;
    use_xauth = no;
    use_cfgmode = no;
    fase2localid {
      ipnet {
        direcciónip = 10.0.0.0;
        máscara = 255.255.255.0;
      }
    }
    fase2remotoid {
      ipnet {
        direcciónip = 10.0.1.0;
        máscara = 255.255.255.0;
      }
    }
    fase2ss = "esp-todo-todo/ah-ninguno/comp-todo/pfs";
    lista de acceso = "permitir ip cualquiera";
  }
  ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
  "udp 0.0.0.0:4500 0.0.0.0:4500";
}

estado ipsec

Estado del demonio IKE charon (strongSwan 5.8.2, Linux 5.4.0-1029-aws, x86_64):
  tiempo de actividad: 91 segundos, desde el 13 de diciembre 01:57:01 2020
  malloc: sbrk 1622016, mmap 0, usado 648096, gratis 973920
  Subprocesos de trabajo: 11 de 16 inactivos, 5/0/0/0 en funcionamiento, cola de trabajos: 0/0/0/0, programado: 3
  complementos cargados: charon aesni aes rc2 sha2 sha1 md5 mgf1 nonce aleatorio x509 restricciones de revocación pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agente xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark Stroke updown eap-mschapv2 autenticación -contadores genéricos
Direcciones IP de escucha:
  10.0.1.193
Conexiones:
          fb: %cualquiera...MyPublicLocalFQ IKEv1/2
          fb: local: [EC2PublicIP] utiliza autenticación de clave previamente compartida
          fb: remoto: [MyPublicLocalFQ] utiliza autenticación de clave previamente compartida
          fb: niño: 0.0.0.0/0 === 10.0.0.0/24 TÚNEL
Asociaciones de seguridad (1 arriba, 0 conectando):
          fb[2]: ESTABLECIDO hace 90 segundos, 10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ]
          fb[2]: SPI de IKEv1: c1c1ef074becc316_i 3e3007efcc116605_r*, reautenticación de clave previamente compartida en 43 minutos
          fb[2]: Propuesta IKE: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
          fb{1}: INSTALADO, TÚNEL, reqid 1, ESP en UDP SPI: cba035a9_i 4fbe83d8_o
          fb{1}: AES_CBC_256/HMAC_SHA1_96/MODP_1024, 5610 bytes_i (83 paquetes, hace 74 segundos), 840 bytes_o (10 paquetes, hace 74 segundos), reintroducción en 43 minutos
          Facebook{1}: 10.0.1.0/24 === 10.0.0.0/24

iptables-guardar

# Generado por iptables-save v1.8.4 el domingo 13 de diciembre a las 02:30:39 2020
*mutilar
:PRERUTAMIENTO ACEPTAR [214:19671]
:ENTRADA ACEPTAR [163:15822]
:ADELANTE ACEPTAR [0:0]
:SALIDA ACEPTAR [82:7863]
:POSTOUTING ACEPTAR [82:7863]
-A ADELANTE -s 10.0.0.0/24 -o eth0 -p tcp -m política --dir in --pol ipsec -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS--set-mss 1360
COMPROMETERSE
# Completado el domingo 13 de diciembre 02:30:39 2020
# Generado por iptables-save v1.8.4 el domingo 13 de diciembre a las 02:30:39 2020
*nat
:PRERUTAMIENTO ACEPTAR [51:3849]
:ENTRADA ACEPTAR [0:0]
:SALIDA ACEPTAR [4:361]
:POSTRUTAR ACEPTAR [4:361]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -m política --dir out --pol ipsec -j ACEPTAR
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASCARADA
COMPROMETERSE
# Completado el domingo 13 de diciembre 02:30:39 2020
# Generado por iptables-save v1.8.4 el domingo 13 de diciembre a las 02:30:39 2020
*filtrar
:CAÍDA DE ENTRADA [0:0]
:CAÍDA HACIA ADELANTE [0:0]
:SALIDA ACEPTAR [0:0]
:ufw-después-adelante - [0:0]
:ufw-después-de-entrada - [0:0]
:ufw-después-de-registro-adelante - [0:0]
:ufw-después-de-registro-entrada - [0:0]
:ufw-después-de-registro-salida - [0:0]
:ufw-después-de-salida - [0:0]
:ufw-antes-adelante - [0:0]
:ufw-antes-de-entrada - [0:0]
:ufw-antes-de-registro-adelante - [0:0]
:ufw-antes-de-registro-de-entrada - [0:0]
:ufw-antes-de-registro-salida - [0:0]
:ufw-antes-de-salida - [0:0]
:ufw-logging-permitir - [0:0]
:ufw-registro-denegar - [0:0]
:ufw-no-local - [0:0]
:ufw-rechazar-adelante - [0:0]
:ufw-rechazar-entrada - [0:0]
:salida-rechazo-ufw - [0:0]
:ufw-saltar-a-directiva-adelante - [0:0]
:ufw-saltar-a-entrada-de-política - [0:0]
:ufw-saltar-a-salida-de-política - [0:0]
:ufw-pista-adelante - [0:0]
:ufw-pista-entrada - [0:0]
:salida-pista-ufw - [0:0]
:ufw-usuario-adelante - [0:0]
:entrada-de-usuario-ufw - [0:0]
:ufw-límite-de-usuario - [0:0]
:ufw-usuario-límite-aceptar - [0:0]
:ufw-usuario-registro-adelante - [0:0]
:entrada-de-registro-de-usuario-ufw - [0:0]
:salida-de-registro-de-usuario-ufw - [0:0]
:salida-de-usuario-ufw - [0:0]
-A ENTRADA -j ufw-antes-de-registro-entrada
-A ENTRADA -j ufw-antes-de-la-entrada
-A ENTRADA -j ufw-después-de-entrada
-A ENTRADA -j ufw-después-de-registro-entrada
-A ENTRADA -j ufw-rechazar-entrada
-A ENTRADA -j ufw-pista-entrada
-A ADELANTE -j ufw-antes-de-sesionar-adelante
-A ADELANTE -j ufw-antes-adelante
-A ADELANTE -j ufw-después-adelante
-A ADELANTE -j ufw-después-de-sesionar-adelante
-A ADELANTE -j ufw-rechazar-adelante
-A ADELANTE -j ufw-pista-adelante
-A SALIDA -j ufw-antes-de-registro-salida
-A SALIDA -j ufw-antes-de-la-salida
-A SALIDA -j ufw-después-de-salida
-A SALIDA -j ufw-después-de-registro-salida
-A SALIDA -j ufw-rechazo-salida
-A SALIDA -j ufw-pista-salida
-A ufw-después-de-entrada -p udp -m udp --dport 137 -j ufw-saltar-a-entrada-de-política
-A ufw-después-de-entrada -p udp -m udp --dport 138 -j ufw-saltar-a-entrada-de-política
-A ufw-después-de-entrada -p tcp -m tcp --dport 139 -j ufw-saltar-a-entrada-de-política
-A ufw-después-de-entrada -p tcp -m tcp --dport 445 -j ufw-saltar-a-entrada-de-política
-A ufw-después-de-entrada -p udp -m udp --dport 67 -j ufw-saltar-a-entrada-de-política
-A ufw-después-de-entrada -p udp -m udp --dport 68 -j ufw-saltar-a-entrada-de-política
-A ufw-después-de-entrada -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-después-de-registro-adelante -m límite --límite 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -s 10.0.0.0/24 -m política --dir in --pol ipsec --proto esp -j ACEPTAR
-A ufw-before-forward -d 10.0.0.0/24 -m política --dir out --pol ipsec --proto esp -j ACEPTAR
-A ufw-antes-adelante -m conntrack --ctstate RELACIONADO,ESTABLECIDO -j ACEPTAR
-A ufw-antes-de-reenviar -p icmp -m icmp --icmp-tipo 3 -j ACEPTAR
-A ufw-antes-de-reenviar -p icmp -m icmp --icmp-tipo 11 -j ACEPTAR
-A ufw-antes-de-reenviar -p icmp -m icmp --icmp-tipo 12 -j ACEPTAR
-A ufw-antes-de-reenviar -p icmp -m icmp --icmp-tipo 8 -j ACEPTAR
-A ufw-antes-reenviar -j ufw-usuario-reenviar
-A ufw-antes-de-entrada -i lo -j ACEPTAR
-A ufw-antes-de-entrada -m conntrack --ctstate RELACIONADO,ESTABLECIDO -j ACEPTAR
-A ufw-antes-de-entrada -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-antes-de-entrada -m conntrack --ctstate INVALID -j DROP
-A ufw-antes-de-entrada -p icmp -m icmp --icmp-tipo 3 -j ACEPTAR
-A ufw-antes-de-entrada -p icmp -m icmp --icmp-tipo 11 -j ACEPTAR
-A ufw-antes-de-entrada -p icmp -m icmp --icmp-tipo 12 -j ACEPTAR
-A ufw-antes-de-entrada -p icmp -m icmp --icmp-tipo 8 -j ACEPTAR
-A ufw-antes-de-entrada -p udp -m udp --sport 67 --dport 68 -j ACEPTAR
-A ufw-antes-de-entrada -j ufw-no-local
-A ufw-antes-de-entrada -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACEPTAR
-A ufw-antes-de-entrada -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACEPTAR
-A ufw-antes-de-entrada -j ufw-entrada-de-usuario
-A ufw-antes-de-salida -o lo -j ACEPTAR
-A ufw-antes-de-salida -m conntrack --ctstate RELACIONADO,ESTABLECIDO -j ACEPTAR
-A ufw-antes-de-salida -j ufw-salida-de-usuario
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-no-local -j DROP
-A ufw-saltar-a-la-política-adelante -j DROP
-A ufw-saltar-a-entrada-de-política -j DROP
-A ufw-saltar-a-la-salida-de-política -j ACEPTAR
-A salida-pista-ufw -p tcp -m conntrack --ctstate NUEVO -j ACEPTAR
-A salida-pista-ufw -p udp -m conntrack --ctstate NUEVO -j ACEPTAR
-A entrada de usuario ufw -p tcp -m tcp --dport 22 -m comentario --comentario "\'dapp_OpenSSH\'" -j ACEPTAR
-A entrada-de-usuario-ufw -p udp -m multipuerto --dports 500,4500 -j ACEPTAR
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-inalcanzable
-A ufw-límite-de-usuario-aceptar -j ACEPTAR
COMPROMETERSE
# Completado el domingo 13 de diciembre 02:30:39 2020

ruta IP

predeterminado a través de 10.0.1.1 dev eth0 proto dhcp src 10.0.1.193 métrica 100
10.0.1.0/24 dev eth0 proto kernel alcance enlace src 10.0.1.193
10.0.1.1 dev eth0 proto dhcp alcance enlace src 10.0.1.193 métrica 100

El EC2 utiliza una imagen Ubuntu 20.04.1 LTS.

También intenté agregar rightsourceip=10.10.10.0/24a ipsec, reemplazando pahse2remoteid.ipnet.ipaddr ipaddr = 10.10.10.0reemplazando todo 10.0.0.0/24en la salida de tablas-guardar 10.10.10.0/24y usando tablas-restaurar, pero todavía no funcionó. Al Cliente no se le asigna ninguna IP virtual, incluso aunque se asigne el grupo:

Estado del demonio IKE charon (strongSwan 5.8.2, Linux 5.4.0-1029-aws, x86_64):
  tiempo de actividad: 32 minutos, desde el 13 de diciembre 01:09:10 2020
  malloc: sbrk 1622016, mmap 0, usado 728048, gratis 893968
  Subprocesos de trabajo: 11 de 16 inactivos, 5/0/0/0 en funcionamiento, cola de trabajos: 0/0/0/0, programado: 3
  complementos cargados: charon aesni aes rc2 sha2 sha1 md5 mgf1 nonce aleatorio x509 restricciones de revocación pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agente xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark Stroke updown eap-mschapv2 autenticación -contadores genéricos
Grupos de IP virtuales (tamaño/en línea/fuera de línea):
  10.10.10.0/24: 254/0/0
Direcciones IP de escucha:
  10.0.1.193
Conexiones:
          fb: %cualquiera...MyPublicLocalFQ.net IKEv1/2
          fb: local: [EC2PublicIP] utiliza autenticación de clave previamente compartida
          fb: remoto: [MyPublicLocalFQ.net] utiliza autenticación de clave previamente compartida
          fb: niño: 0.0.0.0/0 === 10.0.0.0/24 TÚNEL
Conexiones enrutadas:
          fb{1}: ENRUTADO, TÚNEL, reqid 1
          fb{1}: 0.0.0.0/0 === 10.0.0.0/24
Asociaciones de seguridad (1 arriba, 0 conectando):
          fb[2]: ESTABLECIDO hace 32 minutos, 10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ.net]
          fb[2]: SPI de IKEv1: 0da6b7368f560272_i 166b8161eae230c8_r*, reautenticación de clave previamente compartida en 12 minutos
          fb[2]: Propuesta IKE: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
          fb{2}: INSTALADO, TÚNEL, reqid 2, ESP en UDP SPI: cda4bbc0_i 1ea590b2_o
          fb{2}: AES_CBC_256/HMAC_SHA1_96/MODP_1024, 170072 bytes_i (2601 paquetes, hace 26 segundos), 1344 bytes_o (16 paquetes, hace 26 segundos), recodificación en 12 minutos
          Facebook{2}: 10.0.1.0/24 === 10.0.0.0/24

Cualquier idea es bienvenida.

información relacionada