Пошаговая инструкция по объединению сетей с помощью L2TP и L2TP/IPSec на Mikrotik

Пошаговая инструкция по объединению сетей с помощью L2TP и L2TP/IPSec на Mikrotik

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

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

Задачу можно разделить на две составляющие. Первая – это совместная работа в сети одного провайдера. Такая постановка вопроса существенно облегчает ее решение.

 

Вторая составляющая, наиболее часто встречающаяся, состоит в том, территориальное разделение подразделений организации преимущественно тянет за собой необходимость безопасного объединения информационных потоков в сетях различных, нескольких провайдеров. Для решения этой проблемы применяют технологию создания защищенных информационных туннелей, более известных как VPN-каналы.

 

Существует несколько технологий туннелирования, которые предполагают различные уровни защиты данных. Наиболее известными являются такие протоколы, как PPTP, L2TP, OpenVPN, SSTP, SafeVPN и некоторые другие. Проблема их использования заключается в том, что протокол РРТР на сегодняшний день является устаревшим, а использование OpenVPN, SSTP, SafeVPN и других требует соответствующего оборудования и платформ маршрутизации.

 

Поэтому наиболее оптимальным мы считаем применение технологии L2TP (Layer 2 Tunnel Protocol) – одного из самых популярных протоколов создания туннелей VPN. К его преимуществам можно отнести относительную простоту настройки и универсальность. С ним может работать как простое, недорогое, так и сложное оборудование. Недостатком L2TP можно считать относительную уязвимость в вопросе защиты данных в сравнении с другими протоколами, однако он исправляется применением технологии двойной инкапсуляции IPSec, которая резко повышает устойчивость туннеля к попыткам несанкционированного доступа. Обратная сторона медали такой схемы – дополнительная нагрузка на процессоры и, как следствие, падение скорости передачи данных, однако для небольших систем с невысокими требованиями это обстоятельство не будет критично. Особенно если учесть, что стоимость оборудования для использования шифрования L2TP/ IPSec доступна даже для домашнего использования.

 

Рассмотрим пошаговое применение указанной схемы, где в качестве сервера выступает маршрутизатор RB2011UiAS-RM, а клиента - hAP lite (RB941-2n), оба производства Mikrotik. Продукция компании широко известна во всем мире благодаря высокому качеству, оригинальному программному обеспечению и доступной цене, что как нельзя лучше отвечает условиям поставленной нами задачи.

 

В приведенном примере маршрутизатор RB2011UiAS-RM  Mikrotik будет выдавать IP в подсети 192.168.106.0/24, однако в реальных условиях адрес на интерфейсах, конечно же, будет отличаться.

 

Итак, для создания безопасного канала VPN в сетях разных провайдеров на основе протокола L2TP/IPSec с использованием в качестве провайдера маршрутизатора RB2011UiAS-RM и конечного клиента hAP lite (RB941-2n) производства Mikrotik мы должны сделать следующие шаги:

 

  • Настроить сервер;
  • Создать профили;
  • Создать интерфейс;
  • Настроить файервол;
  • Настроить клиента;
  • Настройки на сервере L2TP/IPSec;
  • Настроить клиента L2TP/IPSec;
  • Проверить производительность L2TP/IPSec.

 

Настройка сервера

 

Важно, чтобы главный сервер имел статический белый внешний IP-адрес, у нас это 192.168.106.246. Он не должен меняться, иначе придётся прибегать к лишним действиям и использовать DNS-имя.

 

Создание профилей

 

  1. В разделе PPP открываем вкладку Profiles и создаем профиль, который будет применяться к VPN-подключениям. Отмечаем опции Change TCP MSS, Use Compression, Use Encryption. По-умолчанию, будет использоваться протокол шифрования MPPE 128 bit.

  1. Переходим на вкладку Interface.

  1. Нажимаем L2TP Server, активируем его галочкой Enabled и выбираем профиль по-умолчанию, который мы создали ранее. Тип аутентификации можно оставить как есть, либо выбрать только MS-CHAP v2.

 

  1. Опцию IPSec пока что оставляем отключенной.

  1. Переходим в Secrets, здесь необходимо создать нового пользователя VPN. В качестве Service указываем L2TP, здесь же указываем используемый профиль.

  1. Локальный адрес устанавливаем 10.50.0.10, удаленный – 10.50.0.11. При необходимости создаём нужно количество пользователей. Локальный IP-адрес каждого пользователя будет одинаковым, удалённый IP нужно увеличить на единицу (т.е. 10.50.0.12, 10.50.0.13 и т.д.). Можно прибегнуть к использованию пула адресов, но со статикой проще писать маршруты.

Создание интерфейса

 

Для каждого пользователя нужно создать свой интерфейс.

Для этого нужно открыть раздел интерфейсов и нажать знак «плюс», в выпадающем меню выбрать L2TP Server Binding, указать отображаемое название и имя пользователя. При подключении пользователя здесь будет отображаться текущая информация о нем.

Настройки файервола

Для работы VPN необходимо открыть UDP-порт 1701 (chain input, protocol 17(udp), dst-port 1701, accept). После этого следует поднять приоритет правила, переместив его выше.

Далее в NAT’е добавить  маскарадинг для VPN (chain srcnat, out interface all ppp, action masquerade), таким образом мы сделаем компьютеры за роутером видимыми друг для друга.

 

Добавление маршрутов

 

Прописываем маршрут в удалённую подсеть, в которой находится удаленный клиент. Конечная подсеть 192.168.2.0/24, в качестве шлюза выступает IP клиента внутри виртуальной сети, в нашем случае это 10.50.0.11, target scope выставляем единицу, Pref. Source – локальный IP сервера внутри виртуальной сети, 10.50.0.10.

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

 

Настройка клиента

 

Для настройки удаленного клиента нужно войти в раздел интерфейсов и добавить новый L2TP Client, указать IP-адрес сервера и свои учётные данные.По-умолчанию выбрать профиль с шифрованием и деактивировать дефолтный маршрут, сняв с него галочку.

Нажимаем «Применить», если мы нигде не сделали ошибку, соединение должно быть установлено.

При попытке пинговать 192.168.1.1… положительного ответа не будет. Для его получения нужно добавить новый статический маршрут – удаленную подсеть 192.168.1.0/24 в качестве шлюза IP-сервера в виртуальной сети, Pref. Source – наш IP-адрес в виртуальной сети. Таким образом, при настройке клиента все адреса проставляются наоборот.

Повторное пингование 192.168.1.1 дает положительный результат.

 

Для того, чтобы компьютеры за роутером увидели удалённую сеть, нужно создать для них маскарадинг, точно так же, как это было сделано на сервере.. В качестве выходного интерфейса указываем созданное VPN-подключение.

 Ping пошел, значит, всё работает.

Таким образом, создан туннель, однако в нем не была применена двойная инкапсуляция IPSec для обеспечения безопасности. Пропускная способностью созданного канала составила около 50 Мбит/сек.

На этом базовая настройка соединения L2TP завершена.

Чтобы добавить новых пользователей, необходимо прописать соответствующие маршруты на устройствах, которые должны видеть друг друга за роутером. При пробросе маршрута между Client1 и Client2 на самом сервере ничего делать не нужно. Достаточно прописать маршруты на клиентах, в качестве шлюза будет выступать IP оппонента в виртуальной сети.

 

Настройка L2TP/ IPSec

 

Иногда на практике нужно обеспечить должный уровень безопасности. При использовании L2TP целесообразно прибегать к использованию IPSec. В качестве примера используется сеть, настроенная по вышеизложенной инструкции. Обратите внимание! IPSec создаётся внутри туннеля L2TP между виртуальными адресами 10.50.0.X. Такая реализация позволяет не зависеть от IP клиента. Если же вы хотите создать IPSec-туннель между WAN сервера и WAN клиента, необходимо, чтобы у клиента был белый внешний IP. Если IP будет динамичным, вам потребуется также использовать разные скрипты для изменения политик IPSec. К тому же, в случае IPSec между внешними IP, необходимость в L2TP вовсе отпадает.

 

Настройка сервера

 

  1. Зайти в NAT и отключить маскарадинг для PPPдля шифрования пакетов данных.
  2. Перезагрузить маршрутизатор.
  3. Зайти в раздел IP – IPSec, открыть вкладку Proposals. Указать тип шифрования и аутентификации. В качестве алгоритма аутентификации выбрать sha1, для шифрования оптимальным будет использовать алгоритм AES 128-бит. При необходимости можно также указать 3DES (Triple DES), он является алгоритмом по-умолчанию для L2TP/IPSec в Windows 7, в то время, как для мобильных ОС целесообразным может быть применение AES 256-бит.
  4. Во вкладке Peers добавить новый пир с адресом 0.0.0.0/0, что разрешит маршрутизатору принимать все подключения. По-умолчанию используется 500-й порт. Выбрать метод аутентификации pre shared key, указав желаемый пароль. Exchange Mode следует указать main l2tp. Отметить опции Send Initial Contact и NAT Traversal. Значение Generate policy выбрать port strict. Остальные опции указаны на рисунке.

  1. Создать политику, открыв вкладку Policies. Политику, установленную по-умолчанию, отключить. Создать новую политику, где указать наши две локальные сети. Src. Adress (source) – наша локальная подсеть 192.168.1.0/24, Dst. Adress (destination) – удаленная подсеть 192.168.2.0/24. В закладке Action необходимо указать применяемое действие: action – encrypt, level – require. В качестве протокола выбрать ESP и поставить галочку Tunnel. SA Src. Adress – наш локальный адрес в виртуальной сети (10.50.0.10), SA Dst. Adress – адрес удаленного клиента в виртуальной сети.

  1.  Зайти в Firewall и добавить правила для используемых портов. Порт UDP 1701 используется для начальной инициализации и конфигурации. UDP 500 используется в L2TP/IPSec для инициализации обмена ключами. Протокол 50 – IPSec ESP, который используется для шифрования данных. Иногда необходимо также открывать порт UDP 4500 для обхода NAT.

 

Настройка клиента

 

В первую очередь, следует добавить правила файервола и отключить маскарадинг для созданного ранее VPN-канала.

В разделе IP – IPSec необходимо настроить Proposal аналогично тому, как это сделано на сервере. В качестве пира будет выступать 10.50.0.10, т.е. адрес сервера в виртуальной сети. Все остальные настройки должны соответствовать тем, которые были при настройке сервера.

При создании политики, все адреса и подсети указываются обратно тому, как они указаны на сервере, т.е. у клиента всё наоборот.

Если нигде не была допущена ошибка, во вкладке Remote Peers отобразится список пиров и используемые порты. Теперь необходимо открыть вкладку Installed SAs и обратить особое внимание на значение Current Bytes – если оно равно нулю, значит, пакеты не шифруются.

В файерволе можно посмотреть движение трафика. При тестировании заметно, что применение двойной инкапсуляции  L2TP/IPSec  снизило скорость в туннеле с 50 Мбит/с до 15-17Мбит/с. В принципе, можно попытаться добиться некоторого увеличения пропускной способности, увеличив количество потоков, однако эта мера вряд ли даст заметный ее прирост. Неизбежное падение скорости при использовании  IPSec – это и есть плата за безопасность, о которой было сказано в начале статьи.

Для создания надежного и производительного VPN-канала можно рассмотреть вариант использования маршрутизатора, собранного на базе персонального компьютера с использованием программного обеспечения Mikrotik – RouterOS. Наличие аппаратного блока шифрования существенно увеличивает производительность туннеля.