VPN IPSec (site-to-site) между VPNaaS (SIM-Cloud) и роутером MikroTik (remote office)¶
- Описание
- Начальные условия
- Конфигурация Site «A» (VPNaaS)
- Конфигурация Site «B» (MikroTik)
- Проверка работы туннеля
Описание¶
Начальные условия¶
- Оба узла, между которыми строится VPN туннель, имеют реальные IP адреса.
- Site «A» - сервис VPNaaS в облаке SIM-Cloud
- Site «B» - клиентская инфраструктура на основе MikroTik.
- Каждая сторона имеет свою собственную приватную подсеть:
- Site «A» - 10.5.4.0/24
- Site «B» - 192.168.255.0/24
- Версия VPNaaS - v. 12.0.5
- Версия MikroTik - v. 6.45.3
Предупреждение
В зависимости от версии ОС роутера или программного обеспечения, дальнейшая настройка может отличаться.
Примечание
Для установления 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» (MikroTik) | 156.67.53.178 | 192.168.255.0/24 | 192.168.255.23/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-128 |
IKE version | v1 |
Lifetime value for IKE keys | 86400 |
Perfect Forward Secrecy | group5 |
IKE Phase1 negotiation mode | main |
A2. Выполним настройку IPsec Policy. На этом этапе будем использовать следующие параметры:
Name | ipsecpolicy |
Authorization algorithm | sha1 |
Encapsulation mode | tunnel |
Encryption algorithm | aes-128 |
Lifetime value for IKE keys | 3600 |
Perfect Forward Secrecy | group5 |
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.178 |
Peer router identity for authentication (Peer ID) | 156.67.53.178 |
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» (MikroTik)¶
B1. Создадим профиль для «Phase 1»
Name | VPNaaS | |
Hash Algorithms | sha1 | должно совпадать со значением установленным в сервисе VPNaaS |
Encryption Algorithm | aes-128 | должно совпадать со значением установленным в сервисе VPNaaS |
DH Group | modp1536 | должно совпадать со значением установленным в сервисе VPNaaS |
Lifetime | 1d | должно совпадать со значением установленным в сервисе VPNaaS |
/ip ipsec profile
add enc-algorithm=aes-128 hash-algorithm=sha1 dh-group=modp1536 lifetime=1d name=VPNaaS
B2. Создадим «proposal» запись для «Phase 2»
Name | VPNaaS | |
Auth. Algorithms | sha1 | должно совпадать со значением установленным в сервисе VPNaaS |
Encr. Algorithms | aes-128 cbc | должно совпадать со значением установленным в сервисе VPNaaS |
Lifetime | 01:00:00 | должно совпадать со значением установленным в сервисе VPNaaS |
PFS Group | modp1536 | должно совпадать со значением установленным в сервисе VPNaaS |
/ip ipsec proposal
add enc-algorithms=aes-128-cbc auth-algorithms=sha1 pfs-group=modp1536 lifetime=1h name=VPNaaS
B3 Опишем параметры удаленного пира
Name | VPNaaS | |
Address | 156.67.54.218/32 | IP сервиса VPNaaS |
Profile | VPNaaS | созданный ранее профиль |
Exchange Mode | main | должно совпадать со значением установленным в сервисе VPNaaS |
/ip ipsec peer
add address=156.67.54.218/32 exchange-mode=main profile=VPNaaS name=VPNaaS
B4 Укажем механизм идентификации
Peer | VPNaaS | созданный ранее peer |
Auth. Method | pre shared key | |
Secret | Baejii9ahwoo | должно совпадать со значением установленным в сервисе VPNaaS |
/ip ipsec identity
add auth-method=pre-shared-key peer=VPNaaS secret=Baejii9ahwoo
B5 Создадим ipsec правило разрешающее трафик из локальной приватной сети в удалённую локальную сеть через туннель.
Peer | VPNaaS | созданный ранее peer |
Tunnel | checked | включим режим туннелирования |
Src. Address | 192.168.255.0/24 | локальная сеть со стороны MikroTik |
Dst. Address | 10.5.4.0/24 | локальная сеть со стороны сервиса VPNaaS |
Action | encrypt | |
IPsec Protocols | esp | должно совпадать со значением установленным в сервисе VPNaaS |
Proposal | VPNaaS | созданный ранее proposal |
/ip ipsec policy
add src-address=192.168.255.0/24 src-port=any dst-address=10.5.4.0/24 dst-port=any tunnel=yes action=encrypt proposal=VPNaaS ipsec-protocols=esp peer=VPNaaS
B6 На этом этапе, если отправить трафик через туннель IPsec, он не будет работать, пакеты со стороны MikroTik будут потеряны.
Это связано с тем, что маршрутизатор имеет правило NAT (маскарад), которое изменяет адрес источника перед шифрованием пакета. Маршрутизатор не может зашифровать пакет, поскольку адрес источника не совпадает с адресом, указанным в конфигурации политики. Для получения дополнительной информации см. Пример потока пакетов IPsec.
Chain | srcnat | |
Src. Address | 192.168.255.0/24 | локальная сеть со стороны MikroTik |
Dst. Address | 10.5.4.0/24 | локальная сеть со стороны сервиса VPNaaS |
action | accept |
/ip firewall nat
add chain=srcnat action=accept place-before=0 src-address=192.168.255.0/24 dst-address=10.5.4.0/24
Проверка работы туннеля¶
Примечание
Если туннель не поднялся, нужно рестартовать VPN сервис с обоих сторон.
Просмотр статуса туннеля в MikroTik:
Для просмотра через графический веб-интерфейс перейдем в меню «IP:IPsec»
- на вкладке «Installed SAs» должны увидеть две строки с характеристиками соединения между пирами
- на вкладке «Policies» , пункт «PH2 State» должен иметь значение established
Для просмотра через CLI выполним команды/ip ipsec installed-sa print (должны увидеть две строки с характеристиками соединения между пирами) active-peers print (состояние соединения STATE должно иметь значение established)
Cтатус «IPsec site connection» в VPNaaS изменился на «Active».