VPN IPSec (site-to-site) между «SIM-Cloud» VPNaaS (with Endpoint Groups) и «remote office» роутером OPNsense (v.more than 23.1, IPSec-Connections)¶
- Описание
- Начальные условия
- Конфигурация Site «A» (VPNaaS)
- Конфигурация Site «B» (OPNsense)
- Проверка работы туннеля
Описание¶
Начальные условия¶
- Оба узла, между которыми строится 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. На этом этапе будем использовать следующие параметры:
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. На этом этапе будем использовать следующие параметры:
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. На этом этапе будем использовать следующие параметры:
Name | VPNservice |
Router | выберем из списка роутер облачного проекта |
A4. Выполним настройку 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. На этом этапе будем использовать следующие параметры:
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» и создадим правила согласно таблице:
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
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
Connection | Автоматически подставится информация из „Connection-General settings-Description“ | |
Authentication | Pre-Shared Key | |
Id | 156.67.53.137 | Адрес из „Connection-General settings-Local addresses“ |
Сохраним изменения для «Local Authentication» нажатием на кнопку «Save»
Connection | Автоматически подставится информация из „Connection-General settings-Description“ | |
Authentication | Pre-Shared Key | |
Id | 156.67.54.218 | Адрес из „Connection-General settings-Remote addresses“ |
Сохраним изменения для «Remote Authentication» нажатием на кнопку «Save»
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
Local Identifier | 156.67.54.218 | Адрес из „Connection-General settings-Remote addresses“ |
Pre-Shared Key | Baejii9ahwoo | должен совпадать с указааным в поле «Pre-Shared Key (PSK) string» VPNaaS |
Type | PSK |
B4. Включение VPN IPsec туннеля.
B5. Добавим правила в firewall, чтобы разрешить прохождение трафика через IPsec туннель в нашу локальную сеть.
Для этого перейдем в меню «Firewall ‣ Rules ‣ IPsec» и добавим правило согласно таблице:
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 сервис с обоих сторон.
- Для просмотра статуса туннеля в OPNsense нужно зайти в меню «VPN ‣ IPsec ‣ Status Overview».
- Cтатус «IPsec site connection» в VPNaaS изменился на «Connected».