Mikrotik firewall ipsec policy

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

Технический блог специалистов ООО»Интерфейс»

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

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

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

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

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

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

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

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

Читайте также:  Подключение вай фай роутер на ноутбуке виндовс 7

Например, это позволяет установить 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).

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

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

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

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

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

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

В терминале:

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

Читайте также:  Роутер wifi внутренняя антенна

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

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

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

В терминале:

На втором узле следует выполнить аналогичные настройки, только в качестве адреса в 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 — разрешить.

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

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

Читайте также:  Сброс настроек тп линк tl wr841n

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

Опция 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.

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

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

Заключение

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

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

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

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

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

Mikrotik

The Dude

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

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

Источник

Adblock
detector