- Обоснование выбора
- Введение
- PPP – Secrets
- PPP – Interface – клик на L2TP Server
- IP – IPSec – Groups
- Firewall
- L2tp/ipsec
- Генерация сертификатов сервера
- Дополнение
- Зачем
- Настраиваем соединение с vpn сервером
- Настройка firewall
- Настройка ipsec
- Настройка l2tp
- Настройка nat
- Настройка vpn ikev2 туннеля для mikrotik клиента
- Загрузка ssl сертификата для vpn ikev2 клиента
- Импорт ssl сертификата
- Создание ipsec profile, phase-1
- Добавление peer, узел-сервер
- Определение методов авторизации для vpn клиента
- Создание ipsec proposal, phase-2
- Добавление ipsec policy для vpn клиента
- Настройка vpn ikev2 туннеля для mikrotik сервера
- Создание ipsec profile, phase-1
- Добавление peer, узел-клиент
- Определение методов авторизации
- Создание ipsec proposal, phase-2
- Добавление ipsec policy
- Настройка vpn туннеля ikev2 между двумя mikrotik
- Настройка vpn-сервера
- Настройка клиента под windows
- Настройка туннелирования (l2tp)
- Настройка шифрования данных в “туннеле” (ipsec)
- Настройка шифрования данных в “туннеле” (ipsec)
- Подключение удаленного клиента
- Проблемы при работе vpn ikev2
- Создание ipsec peer
- Создание ppp-профиля
- Создание proposal
- Создание группы
- Создание пользователя
- Создание пула ip-адресов
- Создание шаблона политик ipsec
- Тестирование скорости vpn туннелей ikev2 и ipsec
- Bandwidth test ikev2
- Bandwidth test ipsec
- Чем отличается ikev2 от ipsec
- Шаг 2. профиль для vpn-подключения
- Шаг 3. секреты
- Шаг 4. запускаем сервер l2tp
- Шаг 5. тюним ipsec
- Шаг 6. файрволл
- Шаг 7. настраиваем клиента windows
- Заключение
Обоснование выбора
Речь пойдет про 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
и там выставить необходимые виды шифрования

Также в этом разделе можно добавлять свои ключи или сгенерировать, хотя я не готов гарантировать что роутер сможет обеспечить высокий уровень энтропии при генерации ключей, так что генерировать лучше на чем-то другом, а сюда их уже импортировать
В общем данный роутер, позволяет настроить систему довольно гибко исходя из ваших задач.
Зачем
Организация VPN-подключений может использоваться в различных сценариях:
- Подключение удалённых клиентов к корпоративной сети (работа на дому, из командировок).
- Объединение сегментов локальной сети двух офисов, находящихся на удалении.
Несмотря на великое множество различных протоколов и типов VPN, применительно к Mikrotik чаще всего используется связка L2TP IPsec, т.к. для клиентов на основе Microsoft Windows не требуется установка дополнительного программного обеспечения (в отличие от OpenVPN, например), что существенно облегчает интеграцию пользователей, не обладающих высоким навыком работы на компьютере.
Итак, настраиваем сервер и клиент L2TP IPsec.
Настраиваем соединение с vpn сервером
Создаем стандартное VPN подключение, в нем указываем протокол L2TP/IPsec, чтобы система не переберала все доступные протоколы, а подключалась сразу по нужному.
Указываем, разрешить следующие протоколы, ставим галку MS-CHAP v2

Нам необходимо нажать кнопку:
Дополнительные параметры
и там указываем парольную фразу, которую мы придумали при создании в строке
IPsec Secret
Вот теперь точно все, подключаемся и пользуемся.
Настройка 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
/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.
В конце статьи приведено тестовое сравнение 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.
