VPN IPSec (site-to-site) между «SIM-Cloud» VPNaaS (with Endpoint Groups) и «remote office» роутером OPNsense (v.more than 23.1, IPSec-Connections)

Описание

Рассмотрим настройку VPN соединения IPSec «site-to-site» между сервисом VPNaaS со стороны облачной инфраструктуры и роутером на основе OPNsense со стороны удалённого офиса.
Оба роутера имеют реальные IP адреса на WAN интерфейсах, т.е. не используют NAT.
Статья содержит примеры конфигурации через графический интерфейс управления (GUI)

Начальные условия

  • Оба узла, между которыми строится VPN туннель, имеют реальные IP адреса.
  • Site «A» - сервис VPNaaS в облаке SIM-Cloud
  • Site «B» - клиентская инфраструктура на основе OPNsense.
  • Каждая сторона имеет свою собственную приватную подсеть:
    • Site «A» - 10.5.4.0/24
    • Site «B» - 192.168.255.0/24
  • Версия VPNaaS - v.18.0.1
  • Версия OPNsense - v.25.7

Предупреждение

В зависимости от версии ОС роутера или программного обеспечения, дальнейшая настройка может отличаться.

Примечание

Для установления VPN-соединения необходимо обеспечить выполнения обязательных условий:

  • Сетевая доступность между маршрутизаторами:

    • Protocol: UDP, port 500 (for IKE, to manage encryption keys).
    • Protocol: UDP, port 4500 (for IPSEC NAT-Traversal mode).
    • Protocol: ESP, value 50 (for IPSEC).
    • Protocol: AH, value 51 (for IPSEC).
  • Правила фаерволов не должны блокировать сетевой трафик между маршрутизаторами и приватными подсетями.

  • Приватные подсети, которые будут соединяться средствами IPSec, должны быть разными, а также не включать в себя друг друга.

«Сводная таблица»
VPN Router VPN Peer IP Private Network Private Network GW IP Private Network Host IP
Site «A» (VPNaaS) 156.67.54.218 10.5.4.0/24 10.5.4.1/32 10.5.4.7
Site «B» (OPNsense) 156.67.53.137 192.168.255.0/24 192.168.255.21/32 192.168.255.29

В данном примере будет выполнена первоначальная настройка защищенного VPN соединения IPSec «site-to-site». Тем самым мы соединим приватные сети 10.5.4.0/24 и 192.168.255.0/24, которые находятся за маршрутизаторами.

Конфигурация Site «A» (VPNaaS)

Сервис VPNaaS настраиваем согласно имеющейся в документации инструкции:

A1. Выполним настройку IKE Policy. На этом этапе будем использовать следующие параметры:

«IKE Policy»
Name ikepolicy
Authorization algorithm sha1
Encryption algorithm aes-256
IKE version v2
Lifetime value for IKE keys 86400
Perfect Forward Secrecy group14
IKE Phase1 negotiation mode main

A2. Выполним настройку IPsec Policy. На этом этапе будем использовать следующие параметры:

«IPsec Policy»
Name ipsecpolicy
Authorization algorithm sha1
Encapsulation mode tunnel
Encryption algorithm aes-256
Lifetime value for IKE keys 3600
Perfect Forward Secrecy group14
Transform Protocol esp

A3. Выполним настройку VPN service. На этом этапе будем использовать следующие параметры:

«VPN service»
Name VPNservice
Router выберем из списка роутер облачного проекта

A4. Выполним настройку Endpoint Groups. На этом этапе будем использовать следующие параметры:

«Endpoint Groups»
Endpoint group name Type Value
local_epg SUBNET 10.5.4.0/24
remote_epg CIDR 192.168.255.0/24

A5. Выполним настройку IPsec site connection. На этом этапе будем использовать следующие параметры:

«IPsec site connection»
Name ipsecsiteconn
VPN service associated with this connection VPNservice
Endpoint group for local subnet(s) local_epg
IKE policy associated with this connection ikepolicy
IPsec policy associated with this connection ipsecpolicy
Peer gateway public IPv4/IPv6 Address or FQDN 156.67.53.137
Peer router identity for authentication (Peer ID) 156.67.53.137
Endpoint group for remote peer CIDR(s) remote_epg
Pre-Shared Key (PSK) string Baejii9ahwoo
MTU 1500

A6. После всех проведённых манипуляций видим, что «IPsec site connection» успешно создался и имеет статус - «Down». Когда туннель будет настроен с другой стороны и успешно поднимется, статус изменится на «Active».

Конфигурация Site «B» (OPNsense)

При настройке VPN соединения на ПО OPNsense, будем руководствоваться оригинальными статьями от производителя ПО:
B0-1. Перед непосредственной настройкой VPN туннеля, необходимо разрешить маршрутизацию трафика с приватных сетей (определённых в RFC1918) через WAN интерфейс.
Для этого перейдём в меню «Interfaces ‣ [WAN]» и снимем отметку с пункта «Block private networks».
Сохраним изменения нажатием на кнопку «Save» и применим их нажатием на кнопку «Apply changes».
B0-2. Чтобы разрешить соединения IPSec туннелей, настроим в firewall правила для протоколов:
  • Protocol ESP
  • UDP Traffic on Port 500 (ISAKMP)
  • UDP Traffic on Port 4500 (NAT-T)

Для этого перейдем в меню «Firewall ‣ Rules ‣ WAN» и создадим правила согласно таблице:

«Edit WAN Firewall rules»
Action Interface TCP/IP Version Protocol Destination Destination port range Description
Pass WAN IPv4 ESP WAN address Any IPsec ESP
Pass WAN IPv4 TCP/UDP WAN address ISAKMP IPsec ISAKMP
Pass WAN IPv4 TCP/UDP WAN address IPsec NAT-T IPsec NAT-T

Примечание

Для дополнительной безопасности, в поле «Source» правил можно указать IP адрес VPNaaS маршрутизатора (в данном примере это 156.67.54.218)

После создания правил применим изменения нажатием на кнопку «Apply changes»

B1. Настройка VPN IPsec туннеля - Connections

Перейдем в меню «VPN ‣ IPsec ‣ Connections» и нажмём «+».
Будем использовать следующие параметры:
General settings
Proposals aes-256-sha1-modp2048[DH14]  
Version IKEv2 должно совпадать с версией установленной в VPNaaS
Local addresses 156.67.53.137 должен быть указан IP адрес интерфейса смотрящего в сторону VPNaaS
Remote addresses 156.67.54.218 в нашем случае, публичный IP адрес VPNaaS
Description VPNaaS обязательное поле, будет использоваться для привязки настроек следующих этапов к этому „connection“

Сохраним изменения нажатием на кнопку «Save»

B2. Настройка VPN IPsec туннеля - Local Authentication, Remote Authentication, Children

Добавим «Local Authentication» для настраиваемого соединения
Будем использовать следующие параметры:
Edit Local
Connection Автоматически подставится информация из „Connection-General settings-Description“  
Authentication Pre-Shared Key  
Id 156.67.53.137 Адрес из „Connection-General settings-Local addresses“

Сохраним изменения для «Local Authentication» нажатием на кнопку «Save»

Добавим «Remote Authentication» для настраиваемого соединения
Будем использовать следующие параметры:
Edit Remote
Connection Автоматически подставится информация из „Connection-General settings-Description“  
Authentication Pre-Shared Key  
Id 156.67.54.218 Адрес из „Connection-General settings-Remote addresses“

Сохраним изменения для «Remote Authentication» нажатием на кнопку «Save»

Добавим «Children» для настраиваемого соединения
Будем использовать следующие параметры:
Edit Child
Connection Автоматически подставится информация из „Connection-General settings-Description“  
Mode Tunnel  
ESP proposals aes256-sha1-modp2048 [DH14]  
Local 192.168.255.0/24 Локальная сеть в OPNsense, The local LAN subnet
Remote 10.5.4.0/24 Локальная сеть в VPNaaS, The remote LAN subnet

Сохраним изменения для «Children» нажатием на кнопку «Save»

Сохраним все изменения для «Connection» нажатием на кнопку «Save» и применим их нажатием на кнопку «Apply changes».

B3. Настройка VPN IPsec туннеля - Pre-Shared Keys

Добавим «Pre-Shared Keys» для настраиваемого соединения
Перейдем в меню «VPN ‣ IPsec ‣ Pre-Shared Keys» и нажмём «+».
Будем использовать следующие параметры:
Edit pre-shared-key
Local Identifier 156.67.54.218 Адрес из „Connection-General settings-Remote addresses“
Pre-Shared Key Baejii9ahwoo должен совпадать с указааным в поле «Pre-Shared Key (PSK) string» VPNaaS
Type PSK  
Сохраним изменения нажатием на кнопку «Save»
Применим изменения нажатием на кнопку «Apply»

B4. Включение VPN IPsec туннеля.

Перейдем в меню «VPN ‣ IPsec ‣ Connections» и поставим отметку в пункте «Enable IPsec».
Применим изменения нажатием на кнопку «Apply»

B5. Добавим правила в firewall, чтобы разрешить прохождение трафика через IPsec туннель в нашу локальную сеть.

Для этого перейдем в меню «Firewall ‣ Rules ‣ IPsec» и добавим правило согласно таблице:

«Edit IPsec Firewall rules»
Action Interface TCP/IP Version Protocol Destination Destination port range Description
Pass IPsec IPv4 any LAN net any Allow IPsec traffic to LAN net

Сохраним изменения нажатием на кнопку «Save» и применим нажатием на кнопку «Apply changes»

Проверка работы туннеля

После проведённых манипуляций VPN туннель должен поднятся и через него должен ходить трафик между локальными сетями.
Это можно проверить с помощью команды ping между хостами в противоположных локальных сетях.

Примечание

Если туннель не поднялся, нужно рестартовать VPN сервис с обоих сторон.

  • Для просмотра статуса туннеля в OPNsense нужно зайти в меню «VPN ‣ IPsec ‣ Status Overview».
  • Cтатус «IPsec site connection» в VPNaaS изменился на «Connected».