Mikrotik: Настройка IPsec & L2TP-сервера – Sysadmin`s way

Mikrotik: Настройка IPsec & L2TP-сервера - Sysadmin`s way Сертификаты
Содержание
  1. Обоснование выбора
  2. Введение
  3. PPP – Secrets
  4. PPP – Interface – клик на L2TP Server
  5. IP – IPSec – Groups
  6. Firewall
  7. L2tp/ipsec
  8. Генерация сертификатов сервера
  9. Дополнение
  10. Зачем
  11. Настраиваем соединение с vpn сервером
  12. Настройка firewall
  13. Настройка ipsec
  14. Настройка l2tp
  15. Настройка nat
  16. Настройка vpn ikev2 туннеля для mikrotik клиента
  17. Загрузка ssl сертификата для vpn ikev2 клиента
  18. Импорт ssl сертификата
  19. Создание ipsec profile, phase-1
  20. Добавление peer, узел-сервер
  21. Определение методов авторизации для vpn клиента
  22. Создание ipsec proposal, phase-2
  23. Добавление ipsec policy для vpn клиента
  24. Настройка vpn ikev2 туннеля для mikrotik сервера
  25. Создание ipsec profile, phase-1
  26. Добавление peer, узел-клиент
  27. Определение методов авторизации
  28. Создание ipsec proposal, phase-2
  29. Добавление ipsec policy
  30. Настройка vpn туннеля ikev2 между двумя mikrotik
  31. Настройка vpn-сервера
  32. Настройка клиента под windows
  33. Настройка туннелирования (l2tp)
  34. Настройка шифрования данных в “туннеле” (ipsec)
  35. Настройка шифрования данных в “туннеле” (ipsec)
  36. Подключение удаленного клиента
  37. Проблемы при работе vpn ikev2
  38. Создание ipsec peer
  39. Создание ppp-профиля
  40. Создание proposal
  41. Создание группы
  42. Создание пользователя
  43. Создание пула ip-адресов
  44. Создание шаблона политик ipsec
  45. Тестирование скорости vpn туннелей ikev2 и ipsec
  46. Bandwidth test ikev2
  47. Bandwidth test ipsec
  48. Чем отличается ikev2 от ipsec
  49. Шаг 2. профиль для vpn-подключения
  50. Шаг 3. секреты
  51. Шаг 4. запускаем сервер l2tp
  52. Шаг 5. тюним ipsec
  53. Шаг 6. файрволл
  54. Шаг 7. настраиваем клиента windows
  55. Заключение

Обоснование выбора

Речь пойдет про L2TP, как уже понятно из названия статьи. L2TP изначально предоставляет услугу PPP (на канальном уровне модели OSI) с последующей инкапсуляцией, что позволяет работать поверх IP.

Выбор его обусловлен тем, что:

  • данный протокол поддерживается почти всеми популярными ОС из коробки (Win, Android, iOS), т.е. ничего не нужно дополнительно устанавливать, как в случае с OpenVPN;
  • L2TP можно применять, когда клиент имеет динамический IP-адрес (или находится NAT).

Если бы и сервер и клиент имели статические внешние IP-адреса, то вполне можно было бы использовать чистый IPsec или же IPIP, GRE и EoIP over IPsec. Но чаще всего только с одной стороны имеется белый IP-адрес (например, в одном офисе), А потому все удаленные клиенты могут свободно подключаться через L2TP, будь это пользователи или же удалённые офисы.

Казалось бы, всё хорошо и замечательно с L2TP, но есть и главный его недостаток – отсутствие шифрования. Поэтому для решения этой проблемы и используется IPsec, который работает на сетевом уровне модели OSI и позволяет установить сначала IPsec-соединение, которое будет защищённым, а уже потом внутри него устанавливать L2TP-соединение.

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

Введение

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

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

PPP – Secrets

/ Готовим пользователя VPN

PPP – Interface – клик на L2TP Server

/ Включаем сервер L2TP

IP – IPSec – Groups

Т.к. велика вероятность появления ошибки соединения с сервером из-за дефолтной группы, просто удалим и тут же создадим ее. Например, с именем “policy_group1”. Также можно просто удалить эту группу, но через веб-интерфейс будут показываться ошибки.

Firewall


Давайте уж к консоли, что-ли для разнообразия:

/ip firewall filteradd chain=input action=accept protocol=udp port=1701,500,4500add chain=input action=accept protocol=ipsec-esp

Если у вас по-умолчанию политика forward установлена в drop (последнее правило для forward “chain=forward action=drop”), вам может быть необходимым разрешить forward с ip-адресов vpn_pool в локальную сеть:

add chain=forward action=accept src-address=192.168.112.0/24 in-interface=!ether1 out-interface=bridge-local comment=”allow vpn to lan” log=no log-prefix=””


Вот теперь с сервером все.

L2tp/ipsec

Как и PPTP, протоколы L2TP/IPsec поддерживаются большим количеством операционных систем. Более того, используемый в IPsec алгоритм шифрования AES на данный момент не имеет серьезных уязвимостей, что гарантирует относительную безопасность и конфиденциальность при использовании L2TP/IPsec.

Настройка L2TP/IPsec VPN-сервера похожа на настройку PPTP-сервера:

/interface l2tp-server server set enabled=yes default-profile=vpn-profile authentication=mschap2 use-ipsec=required ipsec-secret=super-secret

Генерация сертификатов сервера

Если вы планируете использовать OpenVPN или SSTP, то со стороны сервера требуются два сертификата: CA (Certification authority, Центр Сертификации) и серверный (server). Первый сертификат является «неоспоримым» и им можно подтверждать самоподписанные сертификаты, созданные для сервера и для клиентов.

Сперва выберем Common Name (CN) для центра сертификации. Здесь нет специфических требований, поэтому допустимо использовать любое имя. Мы используем имя хоста в качестве CN. В параметре ca-crl-host необходимо указать IP-адрес или домен VPN-сервера.

/certificate add name=ca-template common-name="MikroTik" days-valid=3650 key-usage=crl-sign,key-cert-sign 
/certificate sign ca-template ca-crl-host=185.X.X.83 name="MikroTik"

Далее создаем сертификат для VPN-сервера и подписываем его только созданным CA-сертификатом. Обратите внимание, что CN для сертификата сервера должен быть строго доменом или IP-адресом.

/certificate add name=server-template common-name=185.X.X.83 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign server-template ca="MikroTik" name="server@MikroTik"

Для протокола SSTP значение поля CN является критичным. Если CN является IP-адресом, то VPN-клиенту нужно подключаться именно по IP-адресу. При подключении по домену произойдет ошибка.

Сертификат CA необходимо экспортировать, чтобы клиент доверял сертификату сервера. Файл:

/certificate export-certificate "MikroTik" export-passphrase=""

Дополнение

Если есть необходимость изменить настройки шифрования, то нам необходимо перейти в

IP -> IPsec

во вкладку

Proposals

и там выставить необходимые виды шифрования

Mikrotik: Настройка IPsec & L2TP-сервера - Sysadmin`s way


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

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

Про сертификаты:  Сертификаты и паспорта на щебень

Зачем

Организация VPN-подключений может использоваться в различных сценариях:

  1. Подключение удалённых клиентов к корпоративной сети (работа на дому, из командировок).
  2. Объединение сегментов локальной сети двух офисов, находящихся на удалении.

Несмотря на великое множество различных протоколов и типов VPN, применительно к Mikrotik чаще всего используется связка L2TP IPsec, т.к. для клиентов на основе Microsoft Windows не требуется установка дополнительного программного обеспечения (в отличие от OpenVPN, например), что существенно облегчает интеграцию пользователей, не обладающих высоким навыком работы на компьютере.

Итак, настраиваем сервер и клиент L2TP IPsec.

Настраиваем соединение с vpn сервером

Создаем стандартное VPN подключение, в нем указываем протокол L2TP/IPsec, чтобы система не переберала все доступные протоколы, а подключалась сразу по нужному.

Указываем, разрешить следующие протоколы, ставим галку MS-CHAP v2

Mikrotik: Настройка IPsec & L2TP-сервера - Sysadmin`s way


Нам необходимо нажать кнопку:

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

и там указываем парольную фразу, которую мы придумали при создании в строке

IPsec SecretMikrotik: Настройка IPsec & L2TP-сервера - Sysadmin`s way

Вот теперь точно все, подключаемся и пользуемся.

Настройка firewall

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

Для протоколов IKE, NAT-T и ipsec-esp:

/ip firewall
filter add chain=input protocol=17 dst-port=500,4500 action=accept #  IKE, NAT-T 
filter add chain=input protocol=50 action=accept # ipsec-esp

Для протокола L2TP, который работает только через IPsec:

/ip firewall
filter add chain=input protocol=17 dst-port=1701 ipsec-policy=in,ipsec action=accept

После главное не забыть поднять эти правила выше запрещающих правил цепочки input.

Настройка ipsec

Теперь закончив с вводной теорией пора переходить к практике и настроить IPsec на Mikrotik. В последних версиях прошивки RouterOS, настройка IPsec для L2TP ну очень простая, т.к. всё можно организовать на дефолтных настройках с минимальными изменениями.

Все дальнейшие действия настраиваются в меню IP -> IPsec.

Для настройки в основном будут использованы уже имеющиеся элементы default с некоторыми изменениями.

Пошагово процесс будет выглядеть так с некоторыми пояснениями:

  • Всё начинается с группы. Я буду использовать дефолтную, здесь без изменений:
  • После настраивается Profile – определяет набор параметров, которые будут использоваться для согласования IKE во время фазы 1. Эти параметры могут быть общими с другими одноранговыми конфигурациями:

Hash Algorithms я указал sha1, Encryption Algorithm – aes-128, DH Group – modp1024 и modp2048. Данный выбор обусловлен рекомендуемыми значениями из документации Mikrotik нужно учитывать, что от выбранного алгоритма будет зависеть производительность, т.к. чем больше длина ключа, тем больше будет тратиться ресурсов CPU. Также с данными параметрами можно ещё поиграться в случае необходимости под каждую ситуацию.

Важным параметром тут является NAT Traversal – это протокол, который позволяет работать IPsec через NAT. IPSec использует протоколы сетевого уровня, которые NAT в свою очередь обработать не может. А потому для решения данной проблемы придумали протокол NAT-T (является расширением в IKE, а в IKEv2 его неотъемлемая часть). NAT-T дополнительно инкапсулирует пакеты IPsec в UDP-пакеты, которые NAT в дальнейшем отбрасывает.

Данное решение применимо только к протоколу ESP, т.к. протокол AH подписывает полный пакет, включая заголовок IP, который изменяется NAT, делая подпись AH недействительной.

  • Создается Peer – конфигурация для установки соединения между IKE-демонами, далее это соединение используется для согласования ключей и алгоритмов SA:

Ругань на This entry is unreacheble появляется в используемой мной RouterOS v6.44.3 , в последних версиях должно быть исправлено, на работоспособность не влияет.

Для пира указывается, имя и какой профиль использовать, а также важный параметр Send INITIAL_CONTACT, который должен быть выключен. Данный параметр указывает, следует ли отправлять пакет IKE “initial contact” или ждать удаленную сторону.

Этот пакет должен инициировать удаление старых одноранговых SA для текущего адреса источника. Обычно клиенты являются инициаторами, и для этого параметра должно быть установлено значение no. Исходный контакт не отправляется, если для ikev1 включен modecfg или xauth.

А вот параметр Passive включен. Если же пассивный режим отключен, одноранговый узел будет пытаться установить не только фазу 1, но и фазу 2 автоматически, если политики настроены или созданы во время фазы 1.

  • Потом настраивается Identities – параметры конфигурации, специфичные для удаленного узла :

Выбирается созданный ранее Peer, auth метод – ключ, в поле Secret данный ключ вводится. Группа выбрана та, которая была создана в самом начале. Параметр generate-policy=port-strict (принимать порт от клиента) – рекомендуемое значение согласно оф. документации.

В ранних прошивках RouterOS данной вкладки не было, а часть её функционала настраивалась в предыдущем вкладке Peers. Это к сведению, чтобы не путаться.

  • После настраиваются дефолтные Proposals – алгоритмы шифрования для SA. Данный пункт немного похож на Profiles – главное не запутаться.

Здесь указывается имя и используемые алгоритмы – описаны в документации Mikrotik, я выбрал рекомендуемые для своей железки.

  • И на последнем этапе конфигурации IPsec настраивается Policy – используется для определения того, должны ли параметры безопасности применяться к пакету:

Важна галочка Template и указанная группа default, а также указанный протокол UDP и адреса: источника и назначения.

Основное в разделе Action раздела Policy:

Под данную политику будет попадать весь трафик туннеля L2TP, который будет настроен на использование IPsec, а потому в поле Action установлено значение encrypt – то есть будет выполнено шифрование на основе Proposial, в котором указаны выбранные алгоритмы.

На данном этапе настройка IPsec закончена и можно переходить к конфигурации L2TP.

Настройка l2tp

В данной настройке будет минимум шагов, т.к. особых сложностей нет.

Создаётся пул адресов для VPN-клиентов в меню IP-Pool:

Создается PPP-профиль с дефолтными настройками, указывается только локальный адрес и удаленные адреса из созданного ранее пула:

В разделе PPP-Secrets создается пользователь для созданного выше profile.

И в том же разделе PPP включается L2TP-сервер:

Здесь, собственно, активируется сам сервер и указывается, что требуется использование IPsec с нужным секретом, который был задан при настройке IPsec Identities. Используется mschap2 для авторизации через L2TP. Значение required использовано для того, чтобы убедиться, что принимаются только L2TP-соединения, инкапсулированные в IPsec.

На этом всё, настройка IPsec и L2TP-сервера на Mikrotik завершена и можно переходить к настройке клиента.

Про сертификаты:  Затирка "Старатели", шпатлевка - сертификат соответствия.

Настройка nat

Создать локальную сеть между VPN-сервером и VPN-клиентом — это половина проблемы. Далее необходимо разрешить клиенту выходить в интернет через VPN-подключение. Для этого необходимо настроить NAT. Сделать это можно следующей командой:

/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade

Настройка vpn ikev2 туннеля для mikrotik клиента

В этом разделе нужно выполнить 2 задачи:

  • импортировать сертификат с VPN сервера;
  • настроить IKEv2 VPN клиент.

Загрузка ssl сертификата для vpn ikev2 клиента

Настройка находится Files→File List→Upload

Импорт ssl сертификата

Создание ipsec profile, phase-1

Настройка находится в IP→IPsec→Profile

Поддержи автора статьи, сделай клик по рекламе ↓↓↓

Добавление peer, узел-сервер

Настройка находится в IP→IPsec→Peers

Определение методов авторизации для vpn клиента

Настройка находится в IP→IPsec→Identities

Создание ipsec proposal, phase-2

Настройка находится в IP→IPsec→Proposals

Добавление ipsec policy для vpn клиента

Настройка находится в IP→IPsec→Policies

/ip ipsec profile
add dh-group=modp1024 enc-algorithm=3des hash-algorithm=md5 lifetime=8h name=
Profile-Ipsec
/ip ipsec peer
add address=92490a0ea575.sn.mynetname.net name=92490a0ea575.sn.mynetname.net exchange-mode=ike2 
profile=Profile-Ipsec
/ip ipsec proposal
add auth-algorithms=md5 enc-algorithms=3des lifetime=8h name=Proposal-Ipsec
/ip ipsec identity
add auth-method=digital-signature certificate=
cert_export_b9070aee7432.sn.mynetname.net.p12_0 peer=
92490a0ea575.sn.mynetname.net
/ip ipsec policy
add dst-address=192.168.0.0/24 peer=92490a0ea575.sn.mynetname.net proposal=
Proposal-Ipsec sa-dst-address=195.138.71.119 sa-src-address=0.0.0.0 
src-address=192.168.1.0/24 tunnel=yes

Настройка vpn ikev2 туннеля для mikrotik сервера

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

Создание ipsec profile, phase-1

Настройка находится в IP→IPsec→Profile

Добавление peer, узел-клиент

Настройка находится в IP→IPsec→Peers

Определение методов авторизации

Настройка находится в IP→IPsec→Identities

Поддержи автора статьи, сделай клик по рекламе ↓↓↓

  • Match By = certificate– проверяет сертификат указанный в Remote Certificate с сертификатом, со стороны VPN клиента.

Создание ipsec proposal, phase-2

Настройка находится в IP→IPsec→Proposals

Добавление ipsec policy

Настройка находится в IP→IPsec→Policies

Настройка MikroTik IKEv2, добавление IpSec Policy Action
/ip ipsec profile
add dh-group=modp1024 enc-algorithm=3des hash-algorithm=md5 lifetime=8h name=
Profile-Ipsec
/ip ipsec peer
add address=b9070aee7432.sn.mynetname.net name=b9070aee7432.sn.mynetname.net exchange-mode=ike2 
profile=Profile-Ipsec
/ip ipsec proposal
add auth-algorithms=md5 enc-algorithms=3des lifetime=8h name=Proposal-Ipsec
/ip ipsec identity
add auth-method=digital-signature certificate=92490a0ea575.sn.mynetname.net 
match-by=certificate peer=b9070aee7432.sn.mynetname.net 
remote-certificate=b9070aee7432.sn.mynetname.net
/ip ipsec policy
add dst-address=192.168.1.0/24 peer=b9070aee7432.sn.mynetname.net proposal=
Proposal-Ipsec sa-dst-address=82.144.213.152 sa-src-address=0.0.0.0 
src-address=192.168.0.0/24 tunnel=yes

Настройка vpn туннеля ikev2 между двумя mikrotik

Как видно из названия раздела, схема подключения будет состоять из двух маршрутизаторов(роутеров) MikroTik, объединённых между собой VPN туннелем типа IKEv2. Для туннелей подобного типа не принято использовать обозначения типа VPN сервер и VPN клиент, но для того, чтобы зафиксировать иерархию устройств будет определено:

IKEv2 VPN сервер – роутер MikroTik-1. Будет управлять валидностью сертификатов, а также заниматься аутентификацией клиентов по SSL;

IKEv2 VPN клиент – роутер MikroTik-2.

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

Мы рассмотрим четыре протокола для организации VPN:

  • PPTP;
  • L2TP/IPsec;
  • OpenVPN;
  • SSTP.

Каждый из протоколов обладает своими плюсами и минусами. Рассмотрим протоколы поближе.

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

Для наглядности в рамках статьи я настрою клиента на Windows 10, чтобы проверить корректность проделанной работы.

Основные настройки просты, здесь особо ничего сложного нет, в т.ч. для домохозяек, если сделать инструкцию по заполнению полей:

А потом в стандартной панели управления изменить настройки безопасности, указав использование обязательного шифрования и разрешить протокол mschap2, который был указан для использования в настройках L2TP-сервера на Mikrotik:

После этого подключение из-под винды корректно устанавливается.

Настройка туннелирования (l2tp)

1. IP – Pool / Определям диапазон адресов VPN-пользователей

Name: vpn_poolAddresses: 192.168.112.1-192.168.112.10Next pool: none


Лучше для клиентов vpn использовать отдельную адресацию. Так проще отделять одних от других. И вообще, бест практис.

2. PPP – Profiles / Профиль для нашего конкретного туннеля

General:Name: l2tp_profileLocal address: vpn_pool (а можно указать 192.168.88.1, сами смотрите, как вам больше нравится)Remote address: vpn_poolChange TCP MSS: yes

Protocols:all to default:Use MPLS: defaultUse compression: defaultUse Encription: default


Limits:Only one: default

3. PPP – Secrets / Готовим пользователя VPN

Настройка шифрования данных в “туннеле” (ipsec)

На предыдущем этапе мы создали туннель для передачи данных и включили IPSec. В этом разделе мы настроим параметры IPSec.

5. IP – IPSec – Groups

Т.к. велика вероятность появления ошибки соединения с сервером из-за дефолтной группы, просто удалим и тут же создадим ее. Например, с именем “policy_group1”. Также можно просто удалить эту группу, но через веб-интерфейс будут показываться ошибки.

6. IP – IPSec – Peers

Address: 0.0.0.0/0Port: 500Auth method: pre shared keyPassive: yes (set)Secret: tumba-yumba-setebryaki (это не пароль пользователя!)


Policy template group: policy_group1Exchange mode: main l2tpSend Initial Contact: yes (set)NAT Traversal: yes (set)My id: autoProposal check: obeyHash algorithm: sha1Encryption Algorithm: 3des aes-128 aes-256

DH Group: modp 1024Generate policy: port overrideLifitime: 1d 00:00:00DPD Interval: 120DPD Maximum failures: 5

7. IP – IPSec – Proposals / “Предложения”.

Что-то вроде “что мы можем вам предложить”. Другими словами, задаем опции подключения, которые смогут пытаться использовать удаленные клиенты.


Name: defaultAuth algorithms: sha1Enrc. algorithms: 3des, aes-256 cbc, aes-256 ctrLife time: 00:30:00PFS Group: mod 1024

Вы наверняка заметили, что пункты 6 и 7 похожи, а если еще добавить, что один и тот же Secret мы добавляли и пункте 4 и пункте 6, то возникает вопрос: почему одни и те же опции повторно настраиваются? Ответ у меня такой: чисто из практики вышло, что Windows 7 требовал одного, а iPhone – другого.

Как так работает, не знаю. Но факт чисто из практики. Например, изменяю в Proposal PFS Group на 2048 – Windows нормально коннектиться, а iPhone перестает. Делаю наоборот (в proposal ставлю 1024, а в ip-ipsec-peers ставлю 2048) – iPhone коннектиться, а Windows – нет 🙂 Т.е. при подключении разных клиентов используются разные части конфигов. Бред?

Настройка шифрования данных в “туннеле” (ipsec)

На предыдущем этапе мы создали туннель для передачи данных и включили IPSec. В этом разделе мы настроим параметры IPSec.

Подключение удаленного клиента


Пробуем подключить Windows 7:

Проблемы при работе vpn ikev2

Самые распространённые случаи описаны в статье “Настройка MikroTik IpSec, проблемы при работе→“:

Поддержи автора статьи, сделай клик по рекламе ↓↓↓

Про сертификаты:  Синдром дауна: причины возникновения, симптомы, диагностика, классификация

Создание ipsec peer


/ip ipsec peer add enc-algorithm=aes-256,aes-192,aes-128,3des exchange-mode=main-l2tp generate-policy=port-strict passive=yes policy-template-group=l2tp secret=mysecretkey
    

Создание ppp-профиля

«Связать» пул адресов для клиентов и адрес VPN-сервера можно с помощью PPP-профиля. Используем следующую команду:

/ppp profile add name=vpn-profile local-address=172.24.0.254 remote-address=vpn-pool use-mpls=no use-compression=yes use-encryption=yes only-one=no

Рассмотрим параметры команды:

  • name=vpn-profile — задаем имя профиля;
  • local-address=172.24.0.254 — задаем адрес VPN-сервера;
  • remote-address=vpn-pool — указываем использовать пул vpn-pool для выдачи адресов клиентам;
  • use-mpls=no — не используем MultiProtocol Label Switching;
  • use-compression=yes — включаем сжатие трафика;
  • use-encryption=yes — включаем шифрование;
  • only-one=no — разрешаем более одного одновременного подключения для пользователя.

Создание proposal


/ip ipsec proposal add enc-algorithms=aes-256-cbc,aes-128-cbc name=L2TP pfs-group=none
    

Создание группы


/ip ipsec policy group add name=l2tp
    

Создание пользователя

Далее создаем пользователя. Сделать это можно следующей командой:

Создание пула ip-адресов

При подключении к VPN клиент «входит» в локальную сеть с VPN-сервером. Это требует серой подсети и списка доступных для клиента адресов, называемых пул. Создать пул можно следующей командой:

/ip pool add name=<название> ranges=<IP-адреса>

Мы выделили 253 адресов в подсети 172.24.0.0/24 и назвали ее vpn-pool.

/ip pool add name=vpn-pool ranges=172.24.0.1-172.24.0.253

Обратите внимание, что адрес 172.24.0.254 не входит в пул адресов, так как этот адрес будет принадлежать VPN-серверу и не должен быть выделен клиенту.

Создание шаблона политик ipsec


/ip ipsec policy add dst-address=0.0.0.0/0 group=l2tp proposal=L2TP src-address=0.0.0.0/0 template=yes
    

Тестирование скорости vpn туннелей ikev2 и ipsec

В качестве тестового стенда были использованы два маршрутизатора(роутера) с аппаратной поддержкой IpSec – MikroTik Hap Ac2.

Время каждого теста 20 сек.

Bandwidth test ikev2

Bandwidth test ipsec

По результатам стоит отметить, что IKEv2 опережает на несколько пунктов IpSec. Это может показаться незначительным, но аналогичные показатели IKEv2 демонстрирует на разных каналах и устройствах. Это может быть весомой причиной при выборе протокола для шифрования VPN трафика.

Чем отличается ikev2 от ipsec

Стоит сразу отметить что IKEv2 это разновидность IpSec с применением SSL сертификатов. Данная конструкция наследует все положительные качества у протокола IpSec такие как аппаратная поддержка маршрутизаторами(роутерами) и высокий уровень защищенности соединения.

IKE (Internet Key Exchange) как v1 использует pre shared key, а как v2 – SSL сертификат. Обе версии относятся к phase-1, как первый этап, на котором происходит согласование между клиентами, устанавливающими между собой VPN туннель. Большинство ошибок, которые могут встретиться при настройке IpSec как правило происходят именно на phase-1.Настройка MikroTik IKEv2, как работает VPN туннель

В конце статьи приведено тестовое сравнение IKEv2 и IpSec по скоростной характеристики через Bandwidth Test.

Шаг 2. профиль для vpn-подключения

Следующим шагом создадим настройки профиля подключений по VPN.

PPP

Перейдём на вкладку Profiles и добавим новый профиль.
Зададим имя для удобства. Не мудрствуя лукаво, я просто оставил L2TP. А также указал локальный и удалённый
адреса из нашего пула (по счастливой случайности он так же называется L2TP).

Я также отметил возможность изменять максимальный размер сегмента
TCP (опция ChangeTCPMSS). Есть подозрение, что
это поможет избежать фрагментацию сегментов.

Шаг 3. секреты

Под секретом в данном случае понимаются учётки VPN-юзеров. Заходим также в
раздел PPP, на вкладку Secretsи
под каждого пользователя создаём свой секрет.

В качестве сервиса выбираем l2tp, а в качестве профиля – созданный на шаге № 2 профиль PPP.

Создал одну учётку пока, для эксперимента. Если уж с ней
получится, то и с другими по аналогии должно пойти на УРА.

Шаг 4. запускаем сервер l2tp

Здесь просто убедимся, что у нас запущены соответствующие
сервисы.  Заходим в L2TPServerи
убеждаемся в наличии соответствующих настроек:

Здесь, кстати, важный нюанс – для шифрования будем
использовать IPsec. Серьёзных
уязвимостей протокол не имеет, поэтому этого нам будет достаточно. Нужно
указать предварительный ключ – в примере на скрине это слово «ipsec».

Шаг 5. тюним ipsec

Важнячок: «из коробки» мой IPSECглючил и
не давал подключиться. Решение было такое: идём в IP– IPSECи
создаём новую группу в разделе Group.

Шаг 6. файрволл

На сетевом экране IP – Firewall необходимо открыть следующие порты (цепочка input – входящий): протокол udp, порты 500, 4500, 1701.

Можно уточнить правила, указав In. Interface, чтобы ожидать пакеты именно с внешнего интерфейса, а также указать конкретные Src. или Dst. адреса, но это уже будет зависеть от конкретной ситуации. Чем точнее описано правило, тем оно более “секурно”, но одновременно и менее гибкое.

Соответственно, если политика по умолчанию у вас accept – то делать ничего не надо. Если drop – скорректировать правила соответствующим образом. Настройка файрволла – тема очень интересная, заслуживает отдельной статьи.

Шаг 7. настраиваем клиента windows

VPN-сервер настроен! Самое время настроить клиента. Делать это мы будем из операционной системы Windows 7, хотя настройки в общем-то типовые. Дополнительный софт ставить не надо.

Открываем “Центр управления сетями и общим доступом” через “Панель управления” и нажимаем кнопку “Настройка нового подключения или сети”:

Тут нужно найти пункт, содержащий в сете три волшебные буквы “VPN”, а именно: “Подключение к рабочему месту”.

Предлагаются два варианта. Нам подходит первый – подключение через уже имеющееся Интернет-соединение. Условно говоря, поверх уже существующего канала создаётся шифрованный, прямиком “на работу”.

На следующем шаге указываем IP-адрес нашего VPN-сервера (в данном случае – внешний интерфейс Mikrotik) и даём подключению хорошо читаемое имя. Я укажу наш сайт )

И вот здесь пригодится имя пользователя и пароль, которые мы создавали на этапе “секреты”.

Если попытаться подключиться сейчас, то ничего хорошего не выйдет! Всё правильно, открываем свойства созданного VPN-подключения и идём на вкладку “Безопасность”.

Выбираем тип VPN: L2TP IPsec, а также нажимаем на кнопку “Дополнительные параметры” и вводим предварительный ключ (ipsec)

 И вот теперь уже подключение происходит сразу. Откроем окно состояния и видим, что криптозащита трафика включена, можно работать дальше.

Данную статью можно закончить! Оставайтесь с нами, рассмотрим и другие варианты подключений!

Заключение

Мы рассмотрели настройку VPN-серверов на четырех разных протоколах. Надеемся, что эта инструкция поможет вам создать собственный виртуальный маршрутизатор на базе Mikrotik CHR.

Оцените статью
Мой сертификат
Добавить комментарий