VPN IPSec (site-to-site) между VPNaaS (SIM-Cloud) и роутером pfSense (remote office)

Описание

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

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

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

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

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

Примечание

Для установления 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» (pfSense) 156.67.53.177 192.168.255.0/24 192.168.255.22/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 3des
IKE version v2
Lifetime value for IKE keys 86400
Perfect Forward Secrecy group5
IKE Phase1 negotiation mode main

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

«IPsec Policy»
Name ipsecpolicy
Authorization algorithm sha1
Encapsulation mode tunnel
Encryption algorithm 3des
Lifetime value for IKE keys 3600
Perfect Forward Secrecy group5
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.177
Peer router identity for authentication (Peer ID) 156.67.53.177
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» (pfSense)

При настройке VPN соединения на ПО pfSense, будем руководствоваться оригинальной статьей от производителя ПО - «Configuring a Site-to-Site IPsec VPN».

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

Перейдем в меню «VPN > IPsec» и на вкладке «Tunnels» нажмём «+ Add P1».
Будем использовать следующие параметры:
General Information
Disabled Unchecked чтобы туннель работал, оставляем неотмеченным
Key Exchange version V2 должно совпадать с версией установленной в VPNaaS
Internet Protocol IPv4  
Interface WAN должен быть выбран интерфейс смотрящий в сеть интернет
Remote gateway 156.67.54.218 в нашем случае, публичный IP адрес VPNaaS
Description VPNaaS описание
Phase 1 Proposal (Authentication)
Authentication method Mutual PSK Используем Pre-shared Key
My identifier My IP address Простая идентификация, если используем фиксированный ip
Peer identifier Peer IP address Простая идентификация, если используем фиксированный ip
Pre-Shared Key Baejii9ahwoo Случайная фраза, должна совпадать с введённой с другой стороны
Phase 1 Proposal (Encryption Algorithm)
Encryption algorithm / Algorithm 3DES должно совпадать с версией установленной в VPNaaS
Encryption algorithm / Hash SHA1 должно совпадать с версией установленной в VPNaaS
Encryption algorithm / DH group 5 должно совпадать с версией установленной в VPNaaS
Lifetime 86400 должно совпадать с версией установленной в VPNaaS
Advanced Options
Disable Rekey Unchecked Перезапросить ключ, когда истекает срок его действия
Disable Reauth Unchecked For IKEv2 only re-authenticate peer on rekeying
Dead Peer Detection Enabled Оставляем настройку по умолчанию

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

B2. Настройка VPN IPsec туннеля. Phase 2

Перейдем в меню «VPN > IPsec» на вкладку «Tunnels». После нажатия кнопки «+ Show Phase-2 entries» откроется пустой список, тут нажмём «+ Add P2», чтобы добавить запись для «Phase 2».
Будем использовать следующие параметры:
General Information
Disabled Unchecked чтобы туннель работал, оставляем неотмеченным
Mode Tunnel IPv4 Выберем Tunnel mode
Local Network / Type LAN subnet Route the local LAN subnet
Remote Network / Type Network Route a remote network
Remote Network / Address 10.5.4.0/24 The remote LAN subnet
Description Локальная сеть в VPNaaS Описание
Phase 2 Proposal (SA/Key Exchange)
Protocol ESP Выберем ESP для шифрования
Encryption algorithms 3DES должно совпадать с версией установленной в VPNaaS
Hash algortihms SHA1 должно совпадать с версией установленной в VPNaaS
PFS Key group 5(1536bits) должно совпадать с версией установленной в VPNaaS
Lifetime 3600 должно совпадать с версией установленной в VPNaaS

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

B3. Активация VPN IPsec туннеля.

Для активации IPsec соединения нужно перейти в меню «VPN > IPsec» на вкладку «Tunnels»
Нажать мышью на пиктограмму перезапуска сервиса «Restart Service»:
../../../_images/vpn_ipsec_restart.png

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

Для этого перейдем в меню «Firewall > Rules» на вкладку «IPsec» и добавим («Add») правило согласно таблице:

«Edit IPsec Firewall rules»
Action Interface Address Family Protocol Source Destination Description
Pass IPsec IPv4 any any LAN net Allow IPsec traffic to LAN net

Сохраним правило нажатием на кнопку «Save» и применим его нажатием на кнопку «Apply changes».

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

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

Примечание

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

  • Для просмотра статуса туннеля в pfSense нужно зайти в меню «Status > IPsec», на вкладку «Overview». Там же можно нажать на кнопку «Show child SA entries», чтобы увидеть детали для «phase 2»
  • Cтатус «IPsec site connection» в VPNaaS изменился на «Active».