Я пытаюсь настроить VPN-туннель между Cisco ASA 5520 и сервером Openswan, работающим на Ubuntu 14.04 на экземпляре Amazon VPC. У меня нет доступа к ASA, и с этой стороны мне были даны следующие требования к подключению:
AES-SHA, без PFS и наша внутренняя подсеть (это 10.0.0.0/24) должны быть представлены стороне Cisco как другой диапазон, 192.168.200.0/24.
Это общие конфигурации, которые у меня есть -
Публичный ASA - 1.2.3.4
Внутренняя сеть ASA - 192.168.50.0/24
Openswan EIP - 5.6.7.8
Внутренний IP-адрес Openswan - 10.0.0.10
Внутренняя сеть Openswan - 10.0.0.0/24
Содержание /etc/ipsec.conf -
version 2.0
# basic configuration
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:192.168.50.0/24
oe=off
protostack=netkey
include /etc/ipsec.d/vpntunnel.conf
Содержимое /etc/ipsec.d/vpntunnel.conf
conn vpntunnel
type= tunnel
authby= secret
left= 10.0.0.10
leftsubnet= 10.0.0.0/24
right= 1.2.3.4
rightsubnet= 192.168.50.0/24
ike= aes-sha
pfs= no
auto= start
salifetime= 24h
ikelifetime= 480m
Содержание /etc/ipsec.secrets
10.0.0.10 1.2.3.4 : PSK "mysharedkey"
Туннель подходит, насколько я могу судить -
000 #137: "vpntunnel":4500 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 83824s; newest IPSEC; eroute owner; isakmp#136; idle; import:not set
000 #137: "vpntunnel" esp.80e09ea@1.2.3.4 esp.cb17c5db@10.0.0.10 tun.0@1.2.3.4 tun.0@10.0.0.10 ref=0 refhim=4294901761
000 #136: "vpntunnel":4500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 26216s; newest ISAKMP; lastdpd=3s(seq in:0 out:0); idle; import:not set
Я пытаюсь выполнить туннель с одного конкретного сервера на стороне Openswan на сторону ASA, IP-адрес 10.0.0.11.
На сервере 10.0.0.11 я добавил следующий маршрут -
ip route add 192.168.50.0/24 via 10.0.0.10
Проблема, с которой я столкнулся, заключается в том, чтобы трафик от 10.0.0.0/24 отображался на стороне ASA туннеля как 192.168.200.0/24.
Насколько я могу судить, я смогу использовать следующее:
iptables -t nat -A PREROUTING -d 192.168.200.0/24 -s 192.168.50.0/24 -j NETMAP --to 10.0.0.0/24
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d 192.168.50.0/24 -j NETMAP --to 192.168.200.0/24
Однако через туннель нет трафика. Поскольку трафик, проходящий через туннель, предназначен только для 1 сервера, я бы согласился с конкретным IP-NAT вместо NETMAP, но эти правила, похоже, тоже не работали.
iptables -t nat -A PREROUTING -d 192.168.50.0/24 -i eth0 -j DNAT --to-destination 10.0.0.11
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to-source 192.168.50.11
Я попытался также использовать KLIPS, чтобы использовать отдельный адаптер ipsec0, но не смог правильно его скомпилировать.
На данный момент мои iptables пусты, когда я запускаю следующую команду -
iptables -t nat -nvL
Кто-нибудь может сказать мне, что мне не хватает?