Назад | Перейти на главную страницу

Возникли проблемы при настройке VPN-туннеля

Я хочу настроить VPN-туннель между хостами, чтобы их подсети могли соединяться друг с другом. Пример: -

DummyNetwork ---> PC1 (HOST A) ------------- PC2 (HOST B) ------> DummyNetwork

IP-адрес ПК1: 192.168.32.109 Эквивалентная сеть ПК1: 10.10.10.0/24

IP-адрес ПК2: 192.168.32.110 фиктивная сеть ПК2: 20.20.20.0/24

ПК 1

sudo modprobe dummy

sudo ip link set name eth10 dev dummy0

sudo ip addr add 10.10.10.1/24 brd + dev eth10 label eth10:0

sudo sysctl -w net.ipv4.ip_forward=1

sudo route add -net 20.20.20.0 netmask 255.255.255.0 gw 192.168.32.110 dev eno1

ПК 2

sudo modprobe dummy

sudo ip link set name eth10 dev dummy0

sudo ip addr add 20.20.20.1/24 brd + dev eth10 label eth10:0

sudo sysctl -w net.ipv4.ip_forward=1

sudo route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.32.109 dev eno1

After this run ping 10.10.10.1 from PC1 and ping 20.20.20.1 from PC2. ping runs fine here.

Настройка VPN

Поскольку я работал над ubuntu 16.04, то есть я использовал strongswan для настройки туннеля vpn

Установите strongswan на оба хоста, то есть A и B

Sudo apt-get install ipsec-tools strongswan-starter

ПК1

Sudo gedit edit /etc/ipsec.conf

And copy below text in it.

conn red-to-blue

authby=secret

auto=route

keyexchange=ike

left=192.168.32.109

right=192.168.32.110

type=tunnel

esp=aes128gcm16!

sudo gedit /etc/ipsec.secrets

And copy below code in it.

192.168.32.109 192.168.32.110 : PSK "pass”

Sudo ipsec restart

ПК2

sudo gedit /etc/ipsec.conf

And copy below text in it.

conn blue-to-red

authby=secret

auto=route

keyexchange=ike

left=192.168.32.109

right=192.168.32.110

type=tunnel

esp=aes128gcm16!

sudo gedit /etc/ipsec.secrets

And copy below code in it.

192.168.32.110 192.168.32.109 : PSK "pass”

Sudo ipsec restart

Testing our Tunnel

С ПК1

ping 192.168.32.109

С ПК2

tcpdump esp

Здесь я могу захватывать esp-пакеты. Но бег ping 20.20.20.1 с ПК1, не получайте пакеты ant esp на ПК2. В чем может быть проблема?

Нет политики IPsec, которая покрывает трафик между подсетями. 10.10.10.0/24 и 20.20.20.0/24. С текущей конфигурацией вы покрываете трафик только между фактическими IP-адресами этих хостов (слева | справа). Вы должны определить подсети, с которыми вы хотите туннелировать left | rightubnet. Условно осталосьзнак равноместный предполагается, поэтому на ПК1:

leftsubnet=10.10.10.0/24
rightsubnet=20.20.20.0/24

Если вы хотите включить физические IP-адреса хостов, вы можете включить их (или ключевое слово % динамический) в этих списках подсетей (через запятую).

Также нет необходимости в фиктивных интерфейсах (просто установите виртуальный IP-адрес на существующий интерфейс). И маршруты устанавливаются strongSwan автоматически в таблице маршрутизации 220 (проверьте с помощью ip route list table 220). Установка ipsec-инструменты также не требуется использовать strongSwan.

Попробуйте перевернуть записи left = и right = на ПК2

left=192.168.32.110
right=192.168.32.109