Pfs group mikrotik что это
Перейти к содержимому

Pfs group mikrotik что это

  • автор:

Что такое dh group и PFS

Настройка серверов windows и linux

Что такое dh group и PFS

Добрый день! Много уважаемые читатели, компьютерного блога Pyatilistnik.org. В прошлый раз мы с вами разобрали подробную инструкцию, в которой описывался процесс настройки двух этапного VPN канала IP Sec на оборудовании Juniper. Где мы повстречались с таким понятием, как DH Group. Сегодня я бы хотел сделать небольшую заметку, больше всего для себя, дающую определение и расшифровку данного понятия.

Perfect Forward Secrecy

Perfect Forward Secrecy позволяет удостовериться, что ключи, которые используются на второй фазе (то есть, для защиты данных), не были получены из ключей на первой фазе. При включенном PFS во время второй фазы выполняется генерация нового ключа с помощью алгоритма DH. PFS DH Group — длина ключа PFS.

Название групп и соответствующая им длина ключа:

  • DH Group 1: 768-bit group — 768 битный модульный экспоненциальный (MODP) алгоритм
  • DH Group 2: 1024-bit group — 1024-бит MODP-алгоритм
  • DH Group 5: 1536-bit group — 1536-бит MODP-алгоритм
  • DH Group 14: 2048-bit group — 2048-бит MODP-группа
  • DH Group 15: 3072-bit group
  • DH Group 19: 256-bit elliptic curve group — 256-битные случайные эллиптические кривые группы по модулю алгоритма Prime (ECP groups)
  • DH Group 20: 384-bit elliptic curve group — 384-бит алгоритм случайных ECP-групп

выбор dh group

Популярные Похожие записи:
  • Ошибка the property session directory location is configured by using group policyОшибка the property session directory location is configured by using group policy
  • Как переместить диск кворума в Failover clusterКак переместить диск кворума в Failover cluster
  • Проверка доступности порта в ZabbixПроверка доступности порта в Zabbix
  • Get-ADGroup: Управление группами Active DirectoryGet-ADGroup: Управление группами Active Directory
  • Не открывается объект групповой политики gpedit.mscНе открывается объект групповой политики gpedit.msc
  • Автоматическое наполнение группы AD через PowerShellАвтоматическое наполнение группы AD через PowerShell

VPN IPSec (site-to-site) между виртуальными роутерами Mikrotik за NAT Traversal (NAT-T)¶

Рассмотрим настройку, VPN соединение «site-to-site» как показано ниже. Два удаленных виртуальных маршрутизатора Mikrotik подключены к публичной сети Интернет, через промежуточный сетевой узел — роутер провайдера. Таким образом оба роутера Mikrotik находятся за NAT-T. Статья содержит примеры конфигурации оборудования через консоль, а также через графический интерфейс управления (GUI) (winbox ).

Рабочие станции, а также существующая инфраструктура также находятся за NAT. Каждая сторона Site «A» и Site «B» имеет свою собственную приватную подсеть:

  • 10.10.10.0/24 для Site «A»
  • 10.5.4.0/24 для Site «B»
  • Версия маршрутизаторов Mikrotik: RouterOS 6.41.2 stable (CHR).
  • Версия WinBox: 3.18.

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

Для установления 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).
Client vRouter Floating IP VPC-Network IP Private Network IP
Site «A» Mikrotik #1 156.67.54.238/32 172.16.0.12/32 10.10.10.1/32
Site «B» Mikrotik #2 156.67.54.143/32 172.16.0.15/32 10.5.4.11/32

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

../../../_images/IPSec_Mikrotik.png

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

1-A. Выполняем настройку IPsec peer. На этом этапе необходимо настроить параметры:

  • address (адрес удаленного пира — роутера),
  • auth-method (метод аутентификации),
  • secret (секретное слово),
  • my-id (мой идетнитфикатор).

Остальные параметры оставляем по умолчанию, без изменений. Рассмотрим, как выполнить эту настроку из консоли:

/ip ipsec peer add address=156.67.54.143/32 my-id=address:172.16.0.12 auth-method=pre-shared-key secret="123456" 

Проверяем внесенные изменения:

[admin@Site "A"] > ip ipsec peer print Flags: X - disabled, D - dynamic, R - responder 0 address=156.67.54.143/32 auth-method=pre-shared-key secret="123456" generate-policy=no policy-template-group=default exchange-mode=main send-initial-contact=yes nat-traversal=yes my-id=address:172.16.0.12 proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256,aes-128 dh-group=modp1024 lifetime=1d dpd-interval=2m dpd-maximum-failures=5 

Как видно из вывода команды «ip ipsec peer print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:

../../../_images/site_a_peers.png ../../../_images/site_a_peers_general.png ../../../_images/site_a_peers_advanced.png ../../../_images/site_a_peers_encryption.png

2-A. Для следующих шагов важно, чтобы предложенные алгоритмы аутентификации и шифрования совпадали на обоих маршрутизаторах. В этом примере мы будем использовать настройки параметров «по умолчанию». Чтобы просмотреть и проверить настройки параметра «proposal» выполняем команду «ip ipsec proposal print»:

[admin@Site "A"] > ip ipsec proposal print Flags: X - disabled, * - default 0 * name="default" auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp1024 

3-A. Задаем policy (полтитики) для IPSec:

/ip ipsec policy add src-address=10.10.10.0/24 src-port=any dst-address=10.5.4.0/24 dst-port=any \ sa-src-address=172.16.0.12 sa-dst-address=156.67.54.143 \ tunnel=yes action=encrypt proposal=default 

Проверяем внесенные изменения в параметры «policy»:

[admin@Site "A"] > ip ipsec policy print Flags: T - template, X - disabled, D - dynamic, I - invalid, A - active, * - default 0 T * group=default src-address=::/0 dst-address=::/0 protocol=all proposal=default template=yes 1 A src-address=10.10.10.0/24 src-port=any dst-address=10.5.4.0/24 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=172.16.0.12 sa-dst-address=156.67.54.143 proposal=default ph2-count=1 

Как видно из вывода команды «ip ipsec policy print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:

../../../_images/site_a_policies.png ../../../_images/site_a_policy_general.png ../../../_images/site_a_policy_action.png ../../../_images/site_a_policy_status.png

После того как мы выполнили предыдущие 3 шага по настройке маршрутизатора на стороне «A», переходим к настройке роутера на стороне «B».

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

1-B. Настройка параметров «IPsec peer» для Site «B» практически идентична конфигурации Site «A», отличаются только два параметра: IP-адрес удаленного пира — «address» и свой идентификатор — «my-id».

Выполнить эту настроку из консоли:

/ip ipsec peer add address=156.67.54.238/32 my-id=address:172.16.0.15 auth-method=pre-shared-key secret="123456" 

Проверяем внесенные изменения:

[admin@Site "B"] > ip ipsec peer print Flags: X - disabled, D - dynamic, R - responder 0 address=156.67.54.238/32 auth-method=pre-shared-key secret="123456" generate-policy=no policy-template-group=default exchange-mode=main send-initial-contact=yes nat-traversal=yes my-id=address:172.16.0.15 proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256,aes-128 dh-group=modp1024 lifetime=1d dpd-interval=2m dpd-maximum-failures=5 

Как видно из вывода команды «ip ipsec peer print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:

../../../_images/site_b_peers.png ../../../_images/site_b_peers_general.png ../../../_images/site_b_peers_advanced.png ../../../_images/site_b_peers_encryption.png

2-B. Проверяем, что параметры «proposal» созданы по умолчанию и совпадают параметрами роутера на стороне «A»:

[admin@Site "B"] > ip ipsec proposal print Flags: X - disabled, * - default 0 * name="default" auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp1024 

Рузультаты вывода команд «ip ipsec proposal print» совпадают на обоих роутерах, между которыми будет создан туннель.

3-B. Cоздадим политики IPsec на стороне «B»:

/ip ipsec policy add src-address=10.1.101.0/24 src-port=any dst-address=10.1.202.0/24 dst-port=any \ sa-src-address=192.168.80.1 sa-dst-address=192.168.90.1 \ tunnel=yes action=encrypt proposal=default 

Проверяем внесенные изменения в параметры «policy»:

[admin@Site "B"] > ip ipsec policy print Flags: T - template, X - disabled, D - dynamic, I - invalid, A - active, * - default 0 T * group=default src-address=::/0 dst-address=::/0 protocol=all proposal=default template=yes 1 A src-address=10.5.4.0/24 src-port=any dst-address=10.10.10.0/24 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=172.16.0.15 sa-dst-address=156.67.54.238 proposal=default ph2-count=1 

Как видно из вывода команды «ip ipsec policy print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:

../../../_images/site_b_policies.png ../../../_images/site_b_policy_general.png ../../../_images/site_b_policy_action.png ../../../_images/site_b_policy_status.png

После того, как будут корректно выполнены шаги «1-A»-«3-A» и «1-B»-«3-B», туннель должен установиться и на обоих маршрутизаторах должны быть созданы две ассоциации безопасности .

Для проверки установления VPN-соединения на обоих маршрутизаторах необходимо поочередно выполнить команды «ip ipsec remote-peers print» и «ip ipsec installed-sa print».

[admin@Site "A"] > ip ipsec remote-peers print Flags: R - responder, N - natt-peer # ID STATE REMOTE-ADDRESS DYNAMIC-ADDRESS UPTIME 0 RN established 156.67.54.143 7h55m41s [admin@Site "B"] > ip ipsec remote-peers print Flags: R - responder, N - natt-peer # ID STATE REMOTE-ADDRESS DYNAMIC-ADDRESS UPTIME 0 N established 156.67.54.238 7h58m45s 

Из результата вывода выполнения команды «ip ipsec remote-peers print» видно, что соединение установилось (STATE — established). При этом флаг «N» показывает, что удаленный пир находится за NAT.

[admin@Site "A"] > ip ipsec installed-sa print Flags: H - hw-aead, A - AH, E - ESP 0 E spi=0xBDAD9B src-address=156.67.54.143:4500 dst-address=172.16.0.12:4500 state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size=256 auth-key="b09b24558822f70d618f86479ff06c948da2c3d8" enc-key="9d41abb6e038fead6b2943251e9a18589cbf96a1b21c9424d62c0d26d8cf3d08" add-lifetime=24m/30m replay=128 1 E spi=0xE4C9D3 src-address=172.16.0.12:4500 dst-address=156.67.54.143:4500 state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size=256 auth-key="55971cf3d89e5377d1191ed7f9ba4253f1b6fe05" enc-key="0415a2ad4d141fd10642bf3c8e99f24e2d424295ac2b0f84d10c351972359706" add-lifetime=24m/30m replay=128 [admin@Site "B"] > ip ipsec installed-sa print Flags: H - hw-aead, A - AH, E - ESP 0 E spi=0xE4C9D3 src-address=156.67.54.238:4500 dst-address=172.16.0.15: state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size= auth-key="55971cf3d89e5377d1191ed7f9ba4253f1b6fe05" enc-key="0415a2ad4d141fd10642bf3c8e99f24e2d424295ac2b0f84d10c3519723 add-lifetime=24m/30m replay=128 1 E spi=0xBDAD9B src-address=172.16.0.15:4500 dst-address=156.67.54.238: state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size= auth-key="b09b24558822f70d618f86479ff06c948da2c3d8" enc-key="9d41abb6e038fead6b2943251e9a18589cbf96a1b21c9424d62c0d26d8c add-lifetime=24m/30m replay=128 

Правила «обхода» NAT

На этом этапе, если отправить трафик через туннель IPsec, он не будет работать, пакеты будут потеряны. Это связано с тем, что оба маршрутизатора имеют правила NAT (маскарад), которые изменяют адрес источника перед шифрованием пакета. Маршрутизатор не может зашифровать пакет, поскольку адрес источника не совпадает с адресом, указанным в конфигурации политики. Для получения дополнительной информации см. Пример потока пакетов IPsec.

Чтобы это исправить, необходимо настроить правило обхода NAT.

Маршрутизатор Site «A»

/ip firewall nat add chain=srcnat action=accept place-before=0 \ src-address=10.10.10.0/24 dst-address=10.5.4.0/24 
[admin@Site "A"] > ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=accept src-address=10.10.10.0/24 dst-address=10.5.4.0/24 log=no log-prefix="" 1 chain=srcnat action=masquerade out-interface=WAN log=no log-prefix="" 

../../../_images/site_a_firewall_nat.png

Маршрутизатор Site «B»

/ip firewall nat add chain=srcnat action=accept place-before=0 \ src-address=10.5.4.0/24 dst-address=10.10.10.0/24 
[admin@Site "B"] > ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=accept src-address=10.5.4.0/24 dst-address=10.10.10.0/24 log=no log-prefix="" 1 chain=srcnat action=masquerade out-interface=WAN log=no log-prefix="" 

../../../_images/site_b_firewall_nat.png

Если вы ранее пытались установить IP-соединение до того, как было добавлено правило обхода NAT, вы должны очистить таблицу соединений от существующего соединения или перезапустить оба маршрутизатора.

Очень важно, чтобы правило обхода было в верхней части всех других правил NAT.

© Copyright 2016-2023, SIM-Cloud. Обновлено: апр. 21, 2023.

Language: English / Русский / Deutsch

Этот сайт использует cookie.
Оставаясь на сайте, Вы соглашаетесь с размещением файлов cookie и даете согласие на хранение и обработку ваших персональных данных. Подробнее.

CISCO – Mikrotik — FLEXVPN

В данной документации рассматривается пример рабочей конфигурации соединения роутера CISCO с роутером Mikrotik через GRE туннель с IPSec шифрованием в транспортном режиме. В построении IPsec будет использоваться IKEv2 и аутентификация по PSK. Внутри туннеля будет поднят протокол динамической маршрутизации OSPF для обмена маршрутами о сетях, которые находятся за пирами.

Оборудование и исходные данные:

  1. Mikrotik hEX, RouterOS — 7.1beta5
  2. Cisco ISR 4331 – IOS 16.9.6

Предполагаем, что уже между маршрутизаторами есть L3 связанность.

Конфигурация Mikrotik

Несмотря на то, что у mikrotik есть свой собственный CLI, мы будем настраивать через GUI используя “Winbox”. В приложении к документации будет приложен CLI-конфиг mikrotik.

1. Создание GRE туннеля

Открываем Winbox->interfaces -> GRE tunnel -> new

Обязательно указываем имя и tunnel destination (Remote Address) GRE туннеля. Поскольку предполагается, что IP адрес на внешний интерфейс Mikrotik будет получаться по DHCP, то в поле Local Address, мы либо ничего не указываем либо вводим “0.0.0.0”

2. Назначение IP адреса на GRE туннель.

IP -> Address -> new

В данном меню вводим IP адрес GRE туннеля обязательно с маской не ниже 31 (это нужно для дальнейшей корректной работы OSPF) и выбираем GRE интерфейс по имени, которому хотим назначить IP address (имя задаётся в пункте №1)

3. Переходим непосредственно к настройке самого IPsec. Первым делом, нужно создать IKEv2 профиль. Переходим IP -> IPsec -> Profiles -> new. Тут указываем имя профиля, алгоритмы хэширования и шифрования, DH Group, Lifitime IKEv2 SA, параметры работы DPD.

4. Создаём новый IPsec Peer. Переходим IP -> IPsec -> Peer -> new. Даём имя пиру, указываем его IP address, в поле Local Address ничего не указываем или указываем «0.0.0.0», как в настройка GRE интерфейса, поскольку IP адрес нашему Mikrotik выдается по DHCP. Выбираем профиль, созданный в предыдущем пункте и версию IKE.

5. Нужно настроить аутентификацию по сертификатам между пирами. Переходим IP -> IPsec -> Identities -> new. Тут мы выбираем peer, созданный в предыдущем пункте, выбираем Auth. Method – pre-shared key и вводим PSK в поле Secret. Все остальные настройке можно посмотреть на картинке ниже.

6. Создаём IPsec Proposal, даём ему имя, указываем алгоритмы шифрования и хэширования, время жизни IPsec SA. PFS Group в нашем случае не используется.

7. Теперь осталось в настройках IPsec создать политику шифрования, в которой первым делом указываем какой трафик шифровать, в нашем случае это GRE. Идём в IP -> IPsec -> Policies -> new -> General. Тут выбираем снова Peer, созданного в пункте №6, обращаем внимание на то, чтобы галочка рядом с Tunnel не стояла, так как нам надо использовать Transport mode. Если используются Transport mode, то Src и Dst Address указывать не надо, они подставятся автоматически при нажатии кнопки Apply. Если мы хотим внести изменения в Src и Dst адреса, то это надо делать в настройках Peer (пункт №6). Поскольку между пирами нам надо зашифровать GRE трафик, то в поле “Protocol” указываем 47 – это номер протокола GRE

Далее переходим на вкладку Action. Тут проверяем, чтобы в поле “Action” стоял “encrypt”, в “IPsec Protocols” выбираем “esp” и поле “Proposal” выбираем Proposal, созданный в пункте №6.

Чтобы посмотреть статус туннеля на Mikrotik нужно перейти IP -> IPsec -> Active Peers. Если туннель успешно поднялся, то State туннеля должен быть “Established” и счётчики Tx/Rx packets должны расти.

Но счётчики начнут расти после того как внутри туннеля пойдёт трафик, а этого не будет, пока не будут подняты с обеих сторон протоколы динамической маршрутизации в нашем случаем OSPF. Настройки OSPF расписаны в следующих пунктах.

8. Настройка OSPF начинается с создания нового OSPF-Instance. Routing -> OSPF -> Instances -> new. Вводим имя Instance, все остальное указываем как на картинке ниже.

9. Создаём OSPF Area. Routing -> OSPF -> Areas -> new. Даём ей имя, связываем её с нашим OSPF Instance, созданном в пункте №10, в нашем случае мы используем backbone area, поэтому Area ID у неё – 0.0.0.0.

10. Надо включить OSPF на интерфейсах, первым делом на GRE. Routing -> OSPF -> Interface Templates -> new. Выбираем интерфейс, на котором включаем OSPF, Area, созданную в пункте № 9, выбираем сеть, которая настроена на GRE интерфейсе. В пункте№ 2 было описано, что сеть должна быть обязательно с маской не ниже 31, если будет указана маска 32, то OSPF соседство с cisco не поднимется. В “Network type” выбираем “ptp unnumbered”, так как на cisco туннель приземляется на virtual-template. Проверяем OSPF Hello Interval.

Если на противоположной стороне всё настроено, то должно подняться OSPF соседство, и счётчики Tx/Rx пакетов должны начти расти (пункт №9). Проверить ospf соседство можно в Routing -> OSPF -> Neighbors, State должен быть “Full”.

Маршруты, пришедшие по OSPF, можно посмотреть в IP -> Routes. Маршруты, пришедшие по OSPF, имеют флаг Dao. В колонке “Gateway” указан интерфейс, через который пойдёт трафик в сторону сети.

На этом конфигурация Mikrotik завершена, нужно еще проверить Firewall, чтобы не был заблокирован легитимный трафик.

В данном примере, разрешен весь трафик. Настраивается тут IP -> Firewall -> Filter rules.

И настроен dynamic Pat. Настраивается тут IP -> Firewall -> NAT.

Конфигурация CISCO

Маршрутизатор Cisco ISR 4331 мы будем настраивать через CLI.

1. Нам надо убедиться, что в конфиге нет строчки crypto ikev2 fragmentation mtu <>

Если данная строчка присутствует, ее надо обязательно убрать. Cisco в 4 пакете построения IKEv2 посылает данный параметр в качестве payload, но Mikrotik его не понимает и не поднимает туннель.

2. Создаём ikev2 proposal даём ему имя PROP-1, указываем алгоритмы шифрования и хеширования, и diffie hellman group.

crypto ikev2 proposal PROP-1 encryption aes-cbc-256 //алгоритм шифрования aes-cbc-256 integrity sha256 //алгоритм хэширования sha256 group 5 //diffie hellman group - 5

Связываем Ikev2 proposal с ikev2 policy.

crypto ikev2 policy IKEV2_POLICY proposal PROP-1

3. Создаём KEYRING, в котором прописываем PSK, для удалённых пиров

crypto ikev2 keyring KEYRING peer ALL address 0.0.0.0 0.0.0.0 //данный Keyring подходит для всех пиров pre-shared-key local cisco123 pre-shared-key remote cisco123

4. Создаём ikev2 profile.

 crypto ikev2 profile VTI_PROFILE_MIKR authentication remote pre-share //используем аутентификацию по PSK для удалённого пира authentication local pre-share //используем аутентификацию по PSK для локального пира keyring local KEYRING// привязываем KEYRING, в котором находится PSK ключи. dpd 10 3 periodic // настраиваем DPD virtual-template 2 mode auto // Связываем profile с virtual-template

5. Создаём ipsec transform-set. Даём ему имя (TSET), указываем алгоритмы шифрования, хэширования и задаём транспортный режим.

crypto ipsec transform-set TSET esp-aes 256 esp-sha512-hmac mode transport

6. Создаём ipsec profile, даём ему имя “IPSEC_PROFILE_MIKR” и связываем его с transform-set, созданного в пункте № 5, и с ikev2 profile, созданного в пункте № 4.

crypto ipsec profile IPSEC_PROFILE_MIKR set transform-set TSET set ikev2-profile VTI_PROFILE_MIKR

7. Создаём loopback интерфейс и даём ему IP адрес, данный IP адрес будет назначаться на интерфейс virtual-template. IP адрес должен быть обязательно с 32 маской — это нужно для корректной работы ospf.

interface Loopback1 ip address 172.16.10.1 255.255.255.255

8. Создаём virtual-template, даём ему номер.

interface Virtual-Template2 type tunnel ip unnumbered Loopback1 // IP адрес будет браться с loopback1 интерфейса ip ospf dead-interval 40 // обозначаем ospf dead интервал. ip ospf mtu-ignore // ospf игнорирует значение mtu tunnel source GigabitEthernet0/0 // указываем физический интерфейс, с которого будет строиться туннель. tunnel protection ipsec profile IPSEC_PROFILE_MIKR // указываем ipsec profile

9. Поднимаем ospf

router ospf 1 network 172.16.10.1 0.0.0.0 area 0 // включаем ospf на интерфейсе Virtual-Template2.

Чтобы проверить поднялся туннель или нет нужно ввести команду:

show crypto ipsec sa peer
interface: Virtual-Access1 Crypto map tag: Virtual-Access1-head-0, local addr 10.0.174.253 protected vrf: (none) local ident (addr/mask/prot/port): (10.0.174.253/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (10.0.200.54/255.255.255.255/47/0) current_peer 10.0.200.54 port 4500 PERMIT, flags= #pkts encaps: 68, #pkts encrypt: 68, #pkts digest: 68 // данный счётчики должны расти #pkts decaps: 66, #pkts decrypt: 66, #pkts verify: 66 // данный счётчики должны расти #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 10.0.174.253, remote crypto endpt.: 10.0.200.54 plaintext mtu 1442, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0/0 current outbound spi: 0x3F86120(66609440) PFS (Y/N): N, DH group: none inbound esp sas: spi: 0xBD3CDFCA(3174883274) transform: esp-256-aes esp-sha512-hmac , in use settings = conn id: 2499, flow_id: ESG:499, sibling_flags FFFFFFFF80000008, crypto map: Virtual-Access1-head-0 sa timing: remaining key lifetime (k/sec): (4607991/2947) IV size: 16 bytes replay detection support: Y Status: ACTIVE(ACTIVE) inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x3F86120(66609440) transform: esp-256-aes esp-sha512-hmac , in use settings = conn id: 2500, flow_id: ESG:500, sibling_flags FFFFFFFF80000008, crypto map: Virtual-Access1-head-0 sa timing: remaining key lifetime (k/sec): (4607993/2947) IV size: 16 bytes replay detection support: Y Status: ACTIVE(ACTIVE) outbound ah sas: outbound pcp sas:

Проверить ospf соседство можно командой show ip ospf neighbor

show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface 172.16.10.4 0 FULL/ - 00:00:32 172.16.10.5 Virtual-Access1

State должен быть в “FULL”, и в поле “интерфейс” у нас значение — “Virtual-Access1”. Это значит, что соседство установлено через Virtual-Access1 интерфейс.

Данной командой смотрим маршруты, пришедшие по ospf.

show ip route ospf
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is 10.0.131.1 to network 0.0.0.0 10.0.0.0/8 is variably subnetted, 10 subnets, 3 masks O 10.0.145.0/24 [110/1001] via 172.16.10.5, 11:11:06, Virtual-Access1

В примере выше трафик в сеть назначения 10.0.145.0/24 пойдёт через Virtual-Access1 интерфейс.

Записки IT специалиста

Настраиваем IPsec-туннель между офисами на оборудовании Mikrotik

  • Автор: Уваров А.С.
  • 15.01.2022

Задача объединения нескольких сетей в разных офисах одна из наиболее часто встречающихся у системных администраторов. Для ее решения могут использоваться различные виды VPN и туннельных соединений, выбор которых может зависеть от множества требований и условий. Одной из альтернатив туннелям и VPN может служить «чистое» IPsec-соединение, которое имеет как свои достоинства, так и недостатки. В данном материале мы рассмотрим реализацию подобного соединения между сетями офисов (site-to-site) c использованием оборудования Mikrotik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

IPsec — набор протоколов для обеспечения защиты данных, передаваемых в сетях по протоколу IP. Основным преимуществом IPsec является высокий уровень безопасности, на сегодняшний день он является лучшим протоколом для защиты передаваемых данных. Также следует отметить высокий уровень производительности, при условии достаточного количества вычислительных ресурсов для работы с криптографией. Применительно к устройствам Mikrotik IPsec позволяет получить одни из самых высоких результатов, особенно на устройствах с аппаратной поддержкой шифрования.

Но есть и недостатки, они тоже достаточно существенны. IPsec сложен, как в настройке, так в понимании его работы, это требует от администратора более глубокого уровня знаний и может вызвать серьезные затруднения при отладке и диагностике неисправностей. Также IPsec не использует интерфейсы, а обрабатывает трафик на основании собственных политик, это также приводит к ряду затруднений, начиная от прохождения трафика через брандмауэр и заканчивая невозможностью применения маршрутизации для таких соединений. Часть сетевых конфигураций легко реализуемых при помощи VPN и туннелей построить при помощи IPsec в принципе невозможно.

Далее мы рассмотрим объединение двух офисных сетей по представленной ниже схеме:

Mikrotik-IPsec-site-to-site-001.png

Где LAN 1 с диапазоном 192.168.111.0/24 и LAN 2 — 192.168.186.0/24 — это сети двух офисов, которые мы будем объединять, а 192.168.3.107 и 192.168.3.111 — выполняют роль внешних белых адресов в сети интернет. Наша задача обеспечить прозрачный доступ устройств одной сети в другую через защищенный канал связи.

Настройка IPsec соединения

Соединение IPsec имеет отличия как от предусматривающего клиент-серверную схему VPN, так и от stateless туннелей. В отличие от последних мы всегда можем проверить состояние соединения, но понятие клиента и сервера здесь отсутствует, в IPsec одно из устройств выступает в качестве инициатора (initiator), а второе в качестве ответчика (responder). Эти роли не являются жестко закрепленными и могут меняться между устройствами, хотя при необходимости мы можем закрепить за определенным устройством постоянную роль.

Например, это позволяет установить IPsec соединение, когда один из узлов не имеет выделенного IP-адреса, в этом случае ему следует настроить роль инициатора, а второму узлу роль ответчика. В нашем случае подразумевается наличие выделенных адресов с обоих сторон и каждое из устройств может выступать в любой роли.

Настройку начнем с определения алгоритмов шифрования для каждой фазы соединения. Так как мы соединяем два собственных устройства, то можем не оглядываться на требования совместимости и настроить параметры шифрования на собственное усмотрение. Но без фанатизма, не забываем, что многие устройства Mikrotik достаточно слабые и не имеют аппаратной поддержки шифрования, а те, которые имеют, поддерживают различный набор протоколов.

Так популярный RB750Gr3 (hEX) поддерживает аппаратное ускорение только SHA1/SHA256 — AES-CBC, а более новый RB3011 уже поддерживает SHA1/SHA256 — AES-CBC и SHA1/SHA256 — AES-CTR. Желание использовать сильные шифры безусловно похвально, но оно не должно опережать возможности имеющегося оборудования.

Первая фаза — обмен ключами и взаимная идентификация устройств, за ее настройки отвечает раздел IP — IPsec — Profiles, перейдем в него и создадим новый профиль. Для него укажем: Hash Algorithms — sha1, Encryption Algorithm — aes-256, DH Group — ecp384. В поле Name укажем имя профиля, в нашем случае ipsec-sts (site-to-site).

Mikrotik-IPsec-site-to-site-002.png

В терминале для выполнения этого же действия выполните:

/ip ipsec profile
add dh-group=ecp384 enc-algorithm=aes-256 name=ipsec-sts

Это достаточно сильные настройки шифров, для устройств без аппаратного ускорения мы бы посоветовали ограничиться aes-128 и modp1024, хотя никто не мешает протестировать желаемые варианты и остановиться на наиболее оптимальном.

Вторая фаза — установление защищённого соединения и передача данных, настройки шифров для нее задаются в IP — IPsec — Proposal, перейдем в данный раздел и создадим новое предложение. Укажем Auth. Algorithms — sha1, Encr. Algorithms — aes-256-cbc, PFS Group — ecp384.

Mikrotik-IPsec-site-to-site-003.png

Это же действие в терминале:

/ip ipsec proposal
add enc-algorithms=aes-256-cbc name=ipsec-sts pfs-group=ecp384

В данном примере мы использовали не самые сильные шифры, так режим шифрования CBC является наиболее слабым и при наличии аппаратной поддержки стоит использовать CTR или GCM. Но не забывайте о достаточной разумности, если нагрузка на устройство велика — понижайте уровень шифрования.

Теперь перейдем в IP — IPsec — Peer и создадим новое подключение. В поле Address указываем внешний адрес второго роутера, в Profile выбираем созданный нами на предыдущем этапе профиль, в нашем случае ipsec-sts, а в поле Exchange Mode указываем IKE2.

Mikrotik-IPsec-site-to-site-004.png

В терминале:

/ip ipsec peer
add address=192.168.3.111/32 exchange-mode=ike2 name=sts-peer profile=ipsec-sts

В целом того, что мы уже настроили достаточно для установления защищенного соединения, но IPsec не VPN и работает по-другому. Для того, чтобы трафик начал шифроваться он должен соответствовать одной из политик IPsec, поэтому перейдем в IP — IPsec — Policies и создадим новую политику. В поле Peer укажем созданное ранее соединение, ниже установим флаг Tunnel для работы соединения в туннельном режиме, в поле Src. Address укажем диапазон собственной сети — 192.168.111.0/24, а в поле Dst. Address — диапазон удаленной сети — 192.168.186.0/24.

Mikrotik-IPsec-site-to-site-005.png

Затем на закладке Action установите Proposal — ipsec-sts, предложение которое мы создали ранее.

Mikrotik-IPsec-site-to-site-006.png

Для терминала используйте следующие команды:

/ip ipsec policy
add dst-address=192.168.186.0/24 peer=sts-peer proposal=ipsec-sts src-address=192.168.111.0/24 tunnel=yes

Ну и осталось совсем немного — научить узлы идентифицировать друг друга, так как оба роутера контролируются администратором и настроены принимать подключения только от другого узла, то мы будем использовать аутентификацию по предварительному ключу. Перейдем в IP — IPsec — Identities и создадим новую настройку идентификации. Здесь нам нужно заполнить поля: Peer — указываем созданное нами соединение, в нашем случае ipsec-sts, Auth. Method — pre shared key, Secret — предварительный ключ. В качестве предварительного ключа рекомендуется использовать строку с использованием цифр, букв в разных регистрах и специальных символов, сформированных в случайном порядке и с длинной не менее 16-32 символов. Не следует использовать в качестве ключа словарные слова и фразы. Предупреждения внизу окна можно проигнорировать.

Mikrotik-IPsec-site-to-site-007.png

В терминале:

/ip ipsec identity
add peer=sts-peer secret="2KuSY2%QKt\$\$gs8V9nrERD@V8zAuh\$3S"

На втором узле следует выполнить аналогичные настройки, только в качестве адреса в Peer указав внешний адрес первого роутера, а в Policy поменяв местами сеть источника и сеть назначения.

Настройка брандмауэра

Будем считать, что вы используете нормально закрытый брандмауэр настроенный в соответствии с нашими рекомендациями. Для того, чтобы разрешить входящее IPsec-соединение перейдем в IP — Firewall — Filter Rules и добавим следующие правила. Первое из них разрешает работу протокола обмена ключами IKE: Chain — input, Protocol — udp, Dst. Port — 500,4500, In. Interface — внешний интерфейс, в нашем случае ether1.

Mikrotik-IPsec-site-to-site-008.png

Второе правило разрешает протокол шифрования полезной нагрузки Encapsulating Security Payload (ESP): Chain — input, Protocol — 50 (ipsec-esp), In. Interface — внешний интерфейс — ether1.

Mikrotik-IPsec-site-to-site-009.png

Обратите внимание, что мы нигде не указываем действие, потому что по умолчанию все правила имеют в качестве действия accept — разрешить.

Эти же действия можно быстро выполнить в терминале:

/ip firewall filter
add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp
add action=accept chain=input in-interface=ether1 protocol=ipsec-esp

Для того, чтобы пакеты из одной сети могли попасть в другую, следует разрешить их транзит. Создадим еще одно правило: Chain — forward, In. Interface — внешний интерфейс — ether1, затем на закладке Advanced укажем IPsec Policy — in:ipsec. Это разрешит транзит любых входящих пакетов, которые попадают под любую установленную политику IPsec.

Mikrotik-IPsec-site-to-site-010.png

В терминале:

/ip firewall filter
add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec

Аналогичные настройки следует выполнить на втором узле.

Обход NAT и Fasttrack

Как мы уже говорили, IPsec не использует интерфейсы, а следовательно, обрабатываемый им трафик, хоть и уходит в защищенный туннель, но продолжает использовать в качестве исходящего внешний интерфейс, что может привести к ряду коллизий. Прежде всего нужно исключить обработку такого трафика правилами snat или masquerade. Для этого перейдем в IP — Firewall — NAT и создадим новое правило: Chain — srcnat, Src. Address — 192.168.111.0/24 — диапазон локальной сети, Dst. Address — 192.168.186.0/24 — диапазон удаленной сети, так как действие по умолчанию accept, то явно его не указываем. Данное правило поднимаем в самый верх, одно должно быть первым в цепочке srcnat.

Mikrotik-IPsec-site-to-site-011.png

Через терминал добавить его можно следующей командой:

/ip firewall nat
add action=accept chain=srcnat dst-address=192.168.186.0/24 src-address=192.168.111.0/24 place-before=0

Опция place-before=0 позволяет поставить правило в самое начало цепочки.

Если вы используете Fasttrack, то также следует исключить обработку проходящего через IPsec трафика этим механизмом, для этого следует добавить два правила. Первое для трафика из локальной сети в удаленную: Chain — forward, Src. Address — 192.168.111.0/24 — диапазон локальной сети, Dst. Address — 192.168.186.0/24 — диапазон удаленной сети, Сonnection State — established, related.

Mikrotik-IPsec-site-to-site-012.png

Второе правило для трафика из удаленной сети в локальную, оно полностью повторяет первое, только меняем местами сеть источника (Src. Address) и сеть назначения (Dst. Address).

/ip firewall filter
add chain=forward action=accept place-before=0 src-address=192.168.111.0/24 dst-address=192.168.186.0/24 connection-state=established,related
add chain=forward action=accept place-before=0 src-address=192.168.186.0/24 dst-address=192.168.111.0/24 connection-state=established,related

Аналогичные настройки, с учетом адресов, следует выполнить и на втором узле.

Заключение

После того, как мы завершили процесс настройки перейдем в IP — IPsec — Active Peers и убедимся, что соединение между двумя узлами установлено. Если это не так — еще раз проверяем все настройки и изучаем файл лога, скорее всего у вас не совпадают параметры шифрования или идентификации.

Mikrotik-IPsec-site-to-site-013.png

Теперь откроем IP — IPsec — Installed SAs. В терминах IPsec — SA (Security Association) — ассоциация безопасности, обозначает установленное защищенное соединение. Для каждого соединения создается отдельная пара SA, так как каждая SA — это однонаправленное соединение, а данные нужно передавать по двум направлениям. Если запустить обмен данными между сетями, скажем пропинговать с узла одной сети узел другой сети, то мы увидим, что данные счетчика Current Bytes начинают меняться, а следовательно, шифрование работает и данные передаются внутри защищенного соединения.

Mikrotik-IPsec-site-to-site-014.png

Как видим, если хотя бы на базовом уровне понимать принципы действия IPsec, то настроить туннель между двумя сетями относительно несложно. Надеемся, что данный материал будет вам полезен.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:

Mikrotik
  1. Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
  2. Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
  3. Базовая настройка роутера MikroTik
  4. Расширенная настройка DNS и DHCP в роутерах Mikrotik
  5. Автоматическое резервное копирование настроек Mikrotik на FTP
  6. Проброс портов и Hairpin NAT в роутерах Mikrotik
  7. Настройка IPTV в роутерах Mikrotik на примере Ростелеком
  8. Настройка VPN-подключения в роутерах Mikrotik
  9. Настройка черного и белого списков в роутерах Mikrotik
  10. Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
  11. Настройка OpenVPN-сервера на роутерах Mikrotik
  12. Безопасный режим в Mikrotik или как всегда оставаться на связи
  13. Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
  14. Настраиваем Port Knocking в Mikrotik
  15. Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
  16. Настраиваем родительский контроль на роутерах Mikrotik
  17. Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
  18. Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
  19. Mikrotik CHR — виртуальный облачный роутер
  20. Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
  21. Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
  22. Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
  23. Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
  24. Установка Mikrotik CHR на виртуальную машину Proxmox
  25. Защита RDP от перебора паролей при помощи оборудования Mikrotik
  26. Настройка SSTP VPN-сервера на роутерах Mikrotik
  27. Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
  28. Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
  29. Настройка туннелей GRE и IPIP на роутерах Mikrotik
  30. Правильное использование Fast Path и FastTrack в Mikrotik
  31. DHCP Snooping — настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
  32. Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
  33. Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik
The Dude
  1. The Dude. Установка и быстрое начало работы
  2. Централизованное управление обновлением RouterOS при помощи The Dude
  3. Централизованный сбор логов Mikrotik на сервер The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *