Пытаюсь поднять IPSec туннель (Mikrotik -> Linux openswan) от дома до VPS'ки. Проблема в том, что VPS находится за NATом с полным диапазоном проброшенных портов. То есть выделенный IP как бы есть, но на интерфейсе висит локальный адрес.
Конфиг openswan:
version 2
config setup
nat_traversal=yes
oe=off
protostack=netkey
force_keepalive=yes
keep_alive=60
conn mikrotik-to-linux
authby=secret
auto=start
type=tunnel
left=EXT_VPS
leftid=EXT_VPS
leftsourceip=10.1.166.21
leftsubnet=10.1.166.20/31
right=EXT_HOME
rightsubnet=172.16.16.0/24
rightid=EXT_HOME
pfs=no
forceencaps=yes
ike=aes256-sha1;modp1024
phase2=esp
phase2alg=aes256-sha1
tcpdump'ом на VPS вижу вот такие входящие пакеты (исходящих нет):
14:00:44.543368 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 412)
EXT_HOME.isakmp > 10.1.166.21.isakmp: [udp sum ok] isakmp 1.0 msgid 00000000 cookie 2b615a8167baa98e->0000000000000000: phase 1 I ident:
(sa: doi=ipsec situation=identity
(p: #1 protoid=isakmp transform=2
(t: #1 id=ike (type=lifetype value=sec)(type=lifeduration len=4 value=00015180)(type=enc value=aes)(type=keylen value=0080)(type=auth value=preshared)(type=hash value=sha1)(type=group desc value=modp1024))
(t: #2 id=ike (type=lifetype value=sec)(type=lifeduration len=4 value=00015180)(type=enc value=3des)(type=auth value=preshared)(type=hash value=sha1)(type=group desc value=modp1024))))
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
(vid: len=16)
Микротик спамит ошибку phase1 negotiation failed due to time up
В логах pluto вот такое:
Jul 20 14:07:39 docker pluto[16103]: "mikrotik-to-linux": We cannot identify ourselves with either end of this connection. EXT_VPS or EXT_HOME are not usable
Jul 20 14:07:44 docker pluto[16103]: packet from EXT_HOME:500: initial Main Mode message received on 10.1.166.21:500 but no connection has been authorized with policy PSK+IKEV1_ALLOW
500ый порт nmap'ом пробивал, все открыто в обе стороны (в принципе в файрволе established разрешен и output открыт)
Догадываюсь, что где-то в настройках openswan надо указывать не реальный внешний ip-адрес VPS, а ip на интерфейсе, но варианты, которые пробовал я, не заработали. Подскажите, куда копать (и реально ли вообще с таким NATом запустить ipsec?)