Невозможно направить трафик Strongswan VPN через AWS Internet Gateway

Невозможно направить трафик Strongswan VPN через AWS Internet Gateway

Приветствую, я хочу настроить VPN-сервер на экземпляре EC2, чтобы маршрутизировать весь мой частный интернет-трафик, но я не могу заставить его работать. Любая помощь будет оценена по достоинству.

У меня следующая установка:

    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

Маршрутизатор имеет IPSec-подключение к экземпляру Strongswan, работающему на экземпляре EC2. Сетевой интерфейс экземпляра EC2 имеет отключенную проверку источника/назначения. Группа безопасности разрешает входящий весь трафик с источником из PublicLocalIP и из подсети (также пробовал "разрешить все источники") и назначение любое.

VPN-подключение может быть установлено, и я могу пинговать 10.0.1.142 и 10.0.1.1 из моей частной сети. Сам экземпляр EC2 может также пинговать публичные IP-адреса, такие как 8.8.8.8. Но я не могу пинговать 8.8.8.8 или любой другой публичный IP-адрес из моей частной сети, хотя я вижу, что пакеты идут в одном направлении на экземпляре EC2 с помощью tshark:

tshark -f "icmp"

   10 7.320371756 10.0.0.11 → 8.8.8.8 ICMP 98 Эхо-запрос (ping) id=0x0034, seq=1/256, ttl=63
   11 8.332639368 10.0.0.11 → 8.8.8.8 ICMP 98 Эхо-запрос (ping) id=0x0034, seq=2/512, ttl=63
   12 9.356457465 10.0.0.11 → 8.8.8.8 ICMP 98 Эхо-запрос (ping) id=0x0034, seq=3/768, ttl=63
   13 10.380464177 10.0.0.11 → 8.8.8.8 ICMP 98 Эхо-запрос (ping) id=0x0034, seq=4/1024, ttl=63
   14 11.404715789 10.0.0.11 → 8.8.8.8 ICMP 98 Эхо-запрос (ping) id=0x0034, seq=5/1280, ttl=63
   15 12.428989444 10.0.0.11 → 8.8.8.8 ICMP 98 Эхо-запрос (ping) id=0x0034, seq=6/1536, ttl=63

Это EC2 ipsec.conf

настройка конфигурации
конн %по умолчанию
 тип=туннель
 левый=%любой
 leftid=EC2PublicIP
 леваяподсеть=0.0.0.0/0
 авто=добавить
 фрагментация=да
 forceencaps=нет
 мобилайк=да
 leftauth=psk
 rightauth=psk

конн фб
 ike=aes256-sha-modp1024
 esp=aes256-sha1-modp1024
 справа=MyPublicLocalFQ.net
 [email protected]
 праваподсети=10.0.0.0/24
 правыйdns=8.8.8.8,8.8.4.4
 ikelifetime=3600с
 keylife=3600с

Это конфигурация IPSec маршрутизатора Fritzbox.

vpncfg {
  соединения {
    включено = нет;
    редактируемый = да;
    conn_type = conntype_lan;
    имя = "EC2VPN";
    boxuser_id = 0;
    всегда_обновлять = да;
    reject_not_encrypted = нет;
    dont_filter_netbios = да;
    localip = 0.0.0.0;
    local_virtualip = 0.0.0.0;
    удаленныйIP = 0.0.0.0;
    remote_virtualip = 0.0.0.0;
    keepalive_ip = 0.0.0.0;
    локальный идентификатор {
      fqdn = "MyPublicLocalFQ.net";
    }
    удаленный_идентификатор {
      fqdn = "EC2PublicIP";
    }
    режим = phase1_mode_idp;
    phase1ss = "все/все/все";
    тип ключа = connkeytype_pre_shared;
    ключ = "THE_PSK_KEY";
    cert_do_server_auth = нет;
    use_nat_t = да;
    use_xauth = нет;
    use_cfgmode = нет;
    phase2localid {
      ipnet {
        IP-адрес = 10.0.0.0;
        маска = 255.255.255.0;
      }
    }
    phase2remoteid {
      ipnet {
        IP-адрес = 10.0.1.0;
        маска = 255.255.255.0;
      }
    }
    phase2ss = "esp-all-all/ah-none/comp-all/pfs";
    accesslist = "разрешить ip любой любой";
  }
  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";
}

ipsec statusall

Состояние демона IKE charon (strongSwan 5.8.2, Linux 5.4.0-1029-aws, x86_64):
  время работы: 91 секунда, с 13 дек. 01:57:01 2020 г.
  malloc: sbrk 1622016, mmap 0, используется 648096, свободно 973920
  рабочие потоки: 11 из 16 простаивают, 5/0/0/0 работают, очередь заданий: 0/0/0/0, запланировано: 3
  загруженные плагины: charon aesni aes rc2 sha2 sha1 md5 mgf1 случайный случайный номер x509 ограничения отзыва pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp агент xcbc hmac gcm drbg attr kernel-netlink разрешение socket-default connmark stroke updown eap-mschapv2 xauth-generic счетчики
Прослушиваемые IP-адреса:
  10.0.1.193
Соединения:
          fb: %any...MyPublicLocalFQ IKEv1/2
          fb: local: [EC2PublicIP] использует аутентификацию с предварительным общим ключом
          fb: удаленно: [MyPublicLocalFQ] использует аутентификацию с предварительным общим ключом
          fb: child: 0.0.0.0/0 === 10.0.0.0/24 ТУННЕЛЬ
Ассоциации безопасности (1 вверх, 0 подключается):
          fb[2]: УСТАНОВЛЕНО 90 секунд назад, 10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ]
          fb[2]: IKEv1 SPI: c1c1ef074becc316_i 3e3007efcc116605_r*, повторная аутентификация с помощью общего ключа за 43 минуты
          fb[2]: Предложение IKE: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
          fb{1}: УСТАНОВЛЕНО, ТУННЕЛЬ, reqid 1, ESP в UDP SPI: cba035a9_i 4fbe83d8_o
          fb{1}: AES_CBC_256/HMAC_SHA1_96/MODP_1024, 5610 байт_i (83 пакета, 74 с назад), 840 байт_o (10 пакетов, 74 с назад), перекодировка через 43 минуты
          фб{1}: 10.0.1.0/24 === 10.0.0.0/24

iptables-сохранить

# Сгенерировано iptables-save v1.8.4 в воскресенье, 13 декабря 02:30:39 2020 г.
*калечить
:ПРЕДВАРИТЕЛЬНЫЙ МАРШРУТ ПРИНЯТ [214:19671]
:ВВОД ПРИНЯТ [163:15822]
:ПЕРЕДАТЬ ПРИНЯТЬ [0:0]
:ВЫХОД ПРИНЯТ [82:7863]
:ПОСТРАСПИСАНИЕ ПРИНЯТО [82:7863]
-A ПЕРЕНАПРАВИТЬ -s 10.0.0.0/24 -o eth0 -p tcp -m политика --dir в --pol ipsec -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
СОВЕРШИТЬ
# Завершено в воскресенье, 13 декабря 02:30:39 2020 г.
# Сгенерировано iptables-save v1.8.4 в воскресенье, 13 декабря 02:30:39 2020 г.
*нат
:ПРЕДВАРИТЕЛЬНЫЙ МАРШРУТ ПРИНЯТ [51:3849]
:ВВОД ПРИНЯТ [0:0]
:ВЫХОД ПРИНЯТ [4:361]
:ПОСТРАСПИСАНИЕ ПРИНЯТЬ [4:361]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j МАСКАРАД
СОВЕРШИТЬ
# Завершено в воскресенье, 13 декабря 02:30:39 2020 г.
# Сгенерировано iptables-save v1.8.4 в воскресенье, 13 декабря 02:30:39 2020 г.
*фильтр
:ПАДЕНИЕ ВХОДНОГО СИГНАЛА [0:0]
:ПЕРЕДНИЙ ПАДЕНИЕ [0:0]
:ВЫХОД ПРИНЯТЬ [0:0]
:ufw-after-forward - [0:0]
:ufw-после-ввода - [0:0]
:ufw-после-регистрации-вперед - [0:0]
:ufw-после-регистрации-ввода - [0:0]
:ufw-после-регистрации-вывод - [0:0]
:ufw-после-вывода - [0:0]
:ufw-before-forward - [0:0]
:ufw-before-input - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-output - [0:0]
:ufw-logging-allow - [0:0]
:ufw-logging-deny - [0:0]
:ufw-не-локальный - [0:0]
:ufw-отклонить-переслать - [0:0]
:ufw-отклонить-вход - [0:0]
:ufw-отклонить-вывод - [0:0]
:ufw-skip-to-policy-forward - [0:0]
:ufw-skip-to-policy-input - [0:0]
:ufw-skip-to-policy-output - [0:0]
:ufw-track-forward - [0:0]
:ufw-track-input - [0:0]
:ufw-track-вывод - [0:0]
:ufw-пользователь-переслать - [0:0]
:ufw-пользовательский-ввод - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-output - [0:0]
-A ВХОД -j ufw-before-logging-input
-A ВХОД -j ufw-before-input
-A ВХОД -j ufw-после-ввода
-A ВХОД -j ufw-после-регистрации-вход
-A ВХОД -j ufw-отклонить-вход
-A ВХОД -j ufw-track-input
-A ВПЕРЕД -j ufw-before-logging-forward
-A ВПЕРЕД -j ufw-before-forward
-A ВПЕРЁД -j ufw-after-forward
-A ВПЕРЕД -j ufw-после-регистрации-вперед
-A ПЕРЕСЫЛКА -j ufw-отклонить-переслать
-A ВПЕРЕД -j ufw-track-forward
-A ВЫВОД -j ufw-before-logging-output
-A ВЫХОД -j ufw-before-output
-A ВЫВОД -j ufw-after-output
-A ВЫВОД -j ufw-после-регистрации-вывод
-A ВЫХОД -j ufw-отклонить-выход
-A ВЫХОД -j ufw-track-выход
-A ufw-после-ввода -p udp -m udp --dport 137 -j ufw-перейти-к-политике-ввода
-A ufw-после-ввода -p udp -m udp --dport 138 -j ufw-перейти-к-политике-ввода
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-после-ввода -p udp -m udp --dport 67 -j ufw-перейти-к-политике-ввода
-A ufw-после-ввода -p udp -m udp --dport 68 -j ufw-перейти-к-политике-ввода
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-forward -m limit --limit 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 политика --dir in --pol ipsec --proto esp -j ACCEPT
-A ufw-before-forward -d 10.0.0.0/24 -m политика --dir out --pol ipsec --proto esp -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate СВЯЗАННЫЕ, УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ПРИНЯТЬ
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate СВЯЗАННЫЕ, УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ
-A ufw-before-input -m conntrack --ctstate НЕВЕРНО -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate НЕВЕРНЫЙ -j ОТКАЗ
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ПРИНЯТЬ
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ПРИНЯТЬ
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ПРИНЯТЬ
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate СВЯЗАННЫЕ,УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/мин --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate НЕВЕРНО -m limit --limit 3/мин --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/мин --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type ЛОКАЛЬНЫЙ -j ВОЗВРАТ
-A ufw-not-local -m addrtype --dst-type МНОГОАДРЕСНАЯ РАССЫЛКА -j ВОЗВРАТ
-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-not-local -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate НОВЫЙ -j ПРИНЯТЬ
-A ufw-track-output -p udp -m conntrack --ctstate НОВЫЙ -j ПРИНЯТЬ
-A ufw-user-input -p tcp -m tcp --dport 22 -m comment --comment "\'dapp_OpenSSH\'" -j ACCEPT
-A ufw-user-input -p udp -m multiport --dports 500,4500 -j ПРИНЯТЬ
-A ufw-user-limit -m limit --limit 3/мин -j LOG --log-prefix "[БЛОК ЛИМИТА UFW]"
-A ufw-user-limit -j ОТКЛОНИТЬ --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ПРИНЯТЬ
СОВЕРШИТЬ
# Завершено в воскресенье, 13 декабря 02:30:39 2020 г.

IP-маршрут

по умолчанию через 10.0.1.1 dev eth0 proto dhcp src 10.0.1.193 metric 100
10.0.1.0/24 dev eth0 proto ядро ​​область ссылка src 10.0.1.193
10.0.1.1 dev eth0 proto dhcp область ссылка источник 10.0.1.193 метрика 100

EC2 использует образ Ubuntu 20.04.1 LTS.

Я также пробовал добавлять rightsourceip=10.10.10.0/24в ipsec, заменяя pahse2remoteid.ipnet.ipaddr на ipaddr = 10.10.10.0замену всего 10.0.0.0/24в выводе tables-save 10.10.10.0/24и используя tables-restore, но это все равно не сработало. Клиенту не назначаются никакие VirtualIP, даже если пул выделяется:

Состояние демона IKE charon (strongSwan 5.8.2, Linux 5.4.0-1029-aws, x86_64):
  время работы: 32 минуты, с 13 дек. 01:09:10 2020 г.
  malloc: sbrk 1622016, mmap 0, используется 728048, свободно 893968
  рабочие потоки: 11 из 16 простаивают, 5/0/0/0 работают, очередь заданий: 0/0/0/0, запланировано: 3
  загруженные плагины: charon aesni aes rc2 sha2 sha1 md5 mgf1 случайный случайный номер x509 ограничения отзыва pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp агент xcbc hmac gcm drbg attr kernel-netlink разрешение socket-default connmark stroke updown eap-mschapv2 xauth-generic счетчики
Пулы виртуальных IP-адресов (размер/онлайн/офлайн):
  10.10.10.0/24: 254/0/0
Прослушиваемые IP-адреса:
  10.0.1.193
Соединения:
          fb: %any...MyPublicLocalFQ.net IKEv1/2
          fb: local: [EC2PublicIP] использует аутентификацию с предварительным общим ключом
          fb: удаленно: [MyPublicLocalFQ.net] использует аутентификацию с предварительным общим ключом
          fb: child: 0.0.0.0/0 === 10.0.0.0/24 ТУННЕЛЬ
Маршрутизированные соединения:
          fb{1}: МАРШРУТИЗИРОВАНО, ТУННЕЛЬ, требуется 1
          фб{1}: 0.0.0.0/0 === 10.0.0.0/24
Ассоциации безопасности (1 вверх, 0 подключается):
          fb[2]: УСТАНОВЛЕНО 32 минуты назад, 10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ.net]
          fb[2]: IKEv1 SPI: 0da6b7368f560272_i 166b8161eae230c8_r*, повторная аутентификация с помощью общего ключа за 12 минут
          fb[2]: Предложение IKE: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
          fb{2}: УСТАНОВЛЕНО, ТУННЕЛЬ, reqid 2, ESP в UDP SPI: cda4bbc0_i 1ea590b2_o
          fb{2}: AES_CBC_256/HMAC_SHA1_96/MODP_1024, 170072 байта_i (2601 пакетов, 26 с назад), 1344 байта_o (16 пакетов, 26 с назад), перекодировка через 12 минут
          фб{2}: 10.0.1.0/24 === 10.0.0.0/24

Приветствуются любые идеи.

Связанный контент