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

Задача: Объединить два офиса и обеспечить безопасный доступ между ними.

Представьте, что у вас есть два офиса, каждый со своей внутренней сетью:

  • Офис 1 (LAN 1): В этом офисе устройства имеют адреса из диапазона 192.168.5.0/24. Это как бы “домашний” адрес для всех компьютеров, принтеров и других устройств в этом офисе.
  • Офис 2 (LAN 2): Аналогично, в этом офисе устройства используют адреса из диапазона 192.168.0.0/24.

Кроме того, у вас есть два “внешних” адреса в интернете: 46.160.XX.XX и 77.150.XX.XX. Эти адреса видны всем в интернете и используются для связи ваших офисов с внешним миром.

Что нужно сделать:

Ваша главная цель – сделать так, чтобы устройства из Офиса 1 могли без проблем “видеть” и общаться с устройствами из Офиса 2, и наоборот. При этом вся эта связь должна быть защищенной, то есть никто посторонний не должен иметь доступа к этой информации.

Простыми словами:

Мы хотим построить “секретный туннель” между двумя вашими офисами. Через этот туннель устройства из одного офиса смогут безопасно отправлять и получать данные от устройств из другого офиса, как будто они находятся в одной большой сети. При этом, когда данные выходят в интернет или приходят из него, они будут использовать ваши “белые” адреса (46.160.XX.XX и 77.150.XX.XX).

Ключевые моменты:

  • Прозрачный доступ: Устройства в офисах не должны чувствовать, что они работают через какую-то сложную систему. Для них это должно выглядеть как обычное сетевое взаимодействие.
  • Защищенный канал связи: Это означает, что данные, передаваемые между офисами, будут зашифрованы, чтобы их не могли прочитать посторонние.

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

Для консоли

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

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

Для консоли

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

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

Для консоли

/ip ipsec peer
add address=46.160.XX.XX/32 exchange-mode=ike2 name=sts-peer profile=ipsec-sts

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

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

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

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

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

Для терминала:

/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.

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

Обратите внимание, что мы нигде не указываем действие, потому что по умолчанию все правила имеют в качестве действия 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.

Для терминала:

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

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

Обход NAT

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

Для терминала:

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

Заключение

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

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

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

Micro
Author: Micro

///

Поделиться в социальных сетях
0 0 голоса
Рейтинг статьи
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии