Я пытаюсь установить ipsec VPN с маршрутизатора Draytek на границе нашей корпоративной сети на VPS в Digital Ocean. Я настроил VPN на VPS, используя этот сценарий на машине Ubuntu 14.04. Я считаю, что сценарий загружает и устанавливает libreswan и предлагает несколько вопросов по базовой конфигурации и т. Д. Я внес несколько изменений в ipsec.conf, который создает сценарий. Моя проблема в том, что я могу пинговать с маршрутизатора на VPS, и я вижу, что пакеты, поступающие на VPS, отображаются как исходящие с частного IP-адреса маршрутизатора, но ничто из того, что я пробовал, не позволило мне направить пакеты обратно по туннель к роутеру. Таким образом, с точки зрения маршрутизатора кажется, что время ожидания эхо-запросов истекает.
Маршрутизатор напрямую подключен к Интернету через один из его интерфейсов и настроен с использованием локального IP-адреса 10.111.1.1. VPS имеет единый интерфейс, подключенный непосредственно к Интернету.
Когда VPN установлен, это таблица маршрутизации на VPS:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 178.62.64.1 0.0.0.0 UG 0 0 0 eth0
10.111.1.1 * 255.255.255.255 UH 0 0 0 eth0
178.62.64.0 * 255.255.192.0 U 0 0 0 eth0
Обратите внимание, что вторая запись создается при установке VPN.
Если я попробую пинговать 10.111.1.1, я получаю
PING 10.111.1.1 (10.111.1.1) 56(84) bytes of data.
From <public IP address - eth0> icmp_seq=1 Destination Host Unreachable
Вот результат проверки ipsec:
Verifying installed system and configuration files
Version check and ipsec on-path [OK]
Libreswan 3.10 (netkey) on 3.13.0-37-generic
Checking for IPsec support in kernel [OK]
NETKEY: Testing XFRM related proc values
ICMP default/send_redirects [OK]
ICMP default/accept_redirects [OK]
XFRM larval drop [OK]
Pluto ipsec.conf syntax [OK]
Hardware random device [N/A]
Two or more interfaces found, checking IP forwarding [OK]
Checking rp_filter [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for IKE/NAT-T on udp 4500 [OK]
Pluto ipsec.secret syntax [OK]
Checking 'ip' command [OK]
Checking 'iptables' command [OK]
Checking 'prelink' command does not interfere with FIPSChecking for obsolete ipsec.conf options [OK]
Opportunistic Encryption [DISABLED]
и вот содержимое /etc/ipsec.conf (закомментированные строки являются результатами предыдущих экспериментов с теми же результатами):
version 2.0
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.42.0/24
oe=off
protostack=netkey
nhelpers=0
interfaces=%defaultroute
conn vpnpsk
connaddrfamily=ipv4
auto=add
left=178.62.73.215
# leftid=178.62.73.215
# leftsubnet=178.62.73.215/32
leftsubnet=10.10.10.0/24
# leftnexthop=%defaultroute
leftnexthop=%direct
leftprotoport=17/1701
rightprotoport=17/%any
# right=%any
right=10.111.1.0/24
rightsourceip=10.111.1.1
leftsourceip=10.10.10.1
# rightsubnetwithin=0.0.0.0/0
forceencaps=yes
authby=secret
pfs=no
type=transport
auth=esp
ike=3des-sha1,aes-sha1
phase2alg=3des-sha1,aes-sha1
rekey=no
keyingtries=5
dpddelay=30
dpdtimeout=120
dpdaction=clear
Это соответствующая часть таблицы маршрутизации от роутера:
Key: C - connected, S - static, R - RIP, * - default, ~ - private
* 0.0.0.0/ 0.0.0.0 via <public IP address> WAN2
S~ 10.10.10.0/ 255.255.255.0 via 178.62.73.215 VPN-10
C~ 10.111.1.0/ 255.255.255.0 directly connected LAN
C <public IP address>/ 255.255.255.224 directly connected WAN2
Был бы признателен, если бы кто-то указал, что я делаю неправильно.
Спасибо.
Хорошо, я наткнулся на решение, удалив строки leftprotoport = 17/1701 и rightprotoport = 17 /% any. Не уверен, почему это сработало, эй-хо! Теперь я могу пинговать с сервера на маршрутизатор и могу пинговать устройства, висящие на маршрутизаторе. У меня сейчас другая проблема, но я отправлю другой вопрос по этому поводу. Спасибо всем.