Mikrotik ikev2 настройка windows 10

Обновлено: 04.07.2024

Сейчас, когда многие настраивают VPN для работы удаленных сотрудников, выбор протокола становится как никогда актуальным. С одной стороны стоят поддерживаемые современными ОС протоколы PPTP и L2TP, которые имеют ряд существенных недостатков и ограничений, с другой OpenVPN, который всем хорош, но требует установки стороннего ПО. При этом как-то забывают о быстром и безопасном IKEv2, основанном на IPsec новом протоколе, также поддерживаемом всеми современными ОС.

Почему именно IKEv2? Данный протокол входит в группу протоколов IPsec и обеспечивает высокий уровень безопасности, включая аутентификацию клиента с использованием сертификата, а также проверку подлинности сервера клиентом, что исключает атаки типа "человек посередине". При поддержке аппаратного ускорения IPsec со стороны оборудования показывает хорошую скорость соединения относительно других типов VPN в RouterOS и весьма прост в настройке с клиентской стороны, не требует добавления маршрутов.

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

Создание центра сертификации и выпуск сертификатов

Когда мы говорим об использовании сертификатов для аутентификации, то подразумеваем наличие инфраструктуры открытых ключей (PKI), образующей область доверия, за счет чего появляется возможность проверки подлинности любого субъекта инфраструктуры без привлечения третьих служб и списков пользователей. В основе PKI лежит центр сертификации - CA, выпускающий сертификаты и дающий возможность убедиться в их подлинности при помощи корневого публичного сертификата.

В нашем случае центр сертификации будет создан средствами RouterOS прямо на маршрутизаторе. Для этого перейдем в System - Certificate и выпустим корневой сертификат нашего CA.

mikrotik-ikev2-vpn-001.jpg

Красным указаны обязательные к заполнению поля. Name - видимое имя сертификата и Common Name - имя субъекта, которому выдан сертификат, в нашем случае это ca. Key Size - размер ключа, ключи размером менее 2048 байт не считаются безопасными, Days Valid - время действия сертификата, в нашем случае 10 лет.

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

Затем перейдем на закладку Key Usage и оставим только crl sign и key cert. sign, затем нажмем Apply, чтобы применить изменения, после чего подпишем сертификат. нажав кнопку Sign, в открывшемся окне укажем CA CRL Host, в качестве которого следует использовать один из IP-адресов роутера.

mikrotik-ikev2-vpn-002.jpg

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

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

mikrotik-ikev2-vpn-003.jpg

Заполнение полей в целом повторяет предыдущий пример, за исключением Common Name и Subject Alt. Name. Здесь мы указываем IP-адрес или FQDN по которому клиенты будут подключаться к серверу. Если вы используете IP-адрес, то тип записи в поле Subject Alt. Name нужно сменить на IP.

mikrotik-ikev2-vpn-004.jpg

Обратите внимание, если вы выпустили сертификат с указанием FQDN, а подключить клиента попытаетесь по IP-адресу, либо наоборот, то такое соединение окажется невозможным.

На закладке Key Usage укажем единственное значение tls server и подпишем наш сертификат закрытым ключом центра сертификации CA.

mikrotik-ikev2-vpn-005.jpg

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

Теперь можно выпускать клиентские сертификаты, это можно сделать как сразу, так и потом. Никаких особых требований здесь нет, в качестве имени указывайте максимально понятное значение, скажем, ФИО сотрудника или наименование офиса. Потому как понять кому принадлежит сертификат с CN IvanovIA не составит особого труда, в отличие от какого-нибудь безликого client3. Также обратите внимание на опцию Days Valid, не следует выдавать клиентские сертификаты на большой срок.

mikrotik-ikev2-vpn-006.jpg

В Key Usage также указываем единственное назначение сертификата - tls client и подписываем его закрытым ключом CA.

mikrotik-ikev2-vpn-007.jpg

Команды для терминала:

Для использования на клиентских устройствах сертификаты следует экспортировать, наиболее удобно использовать для этого формат PKCS12, который в одном файле содержит закрытый ключ клиента, его сертификат и корневой сертификат CA. Для этого выберите сертификат в списке и в меню правой кнопки мыши укажите действие Export. В поле Type укажите PKCS12, а в Export Passphrase следует указать пароль (не менее 8 символов), в противном случае закрытый ключ выгружен не будет.

Это же можно сделать командой:

mikrotik-ikev2-vpn-009.jpg
Настройка IKEv2 VPN-сервера

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

Перейдем в IP - IPsec - Profiles и создадим новый профиль, который задает параметры для установления соединения. Все параметры оставляем по умолчанию, кроме наименования, которому следует дать осмысленное имя.

mikrotik-ikev2-vpn-010.jpg

Либо выполните команду в терминале:

Затем перейдем на закладку Proposals - предложения, который содержит параметры криптографии предлагаемые для соглассования подключающимся клиентам. Создадим новое предложение, которое сформировано с учетом используемых современными ОС алгоритмов и изменение его состава может либо ослабить безопасность, либо сделать подключение некоторых клиентов невозможным.

mikrotik-ikev2-vpn-011.jpg

В терминале достаточно простой команды:

Здесь мы сталкиваемся с одной особенностью: создаваемые через терминал и Winbox предложения содержат различный набор параметров. То, что создается в терминале полностью соответствует приведенным выше на скриншоте требованиям.

Для выдачи VPN-клиентам нам потребуется отдельный диапазон адресов, перейдем в IP - Pool и создадим новый пул, в нашем случае будет использован диапазон адресов 10.20.0.100 - 10.20.0.199:

mikrotik-ikev2-vpn-012.jpg

Снова вернемся к настройкам IPsec и создадим конфигурацию, передаваемую клиенту для настройки его сетевых параметров, для этого перейдем на в IP - IPsec - Mode Configs. При создании новой конфигурации установим флаг Responder, в поле Address Pool укажем имя созданного нами пула, в поле Address Prefix Lenght укажем префикс адреса - 32, поле Split Include указываем подсети, запросы к которым следует направлять в туннель, здесь следует указать одну или несколько внутренних сетей, доступ к которым должны получать удаленные клиенты. В нашем случае это сеть условного офиса - 192.168.111.0/24. Наконец флаг System DNS предписывает клиенту использовать собственные DNS сервера.

mikrotik-ikev2-vpn-013.jpg

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

Если же вам нужно, чтобы клиенты использовали внутренние сервера имен, например, в Active Directory, то флаг System DNS следует снять и указать адреса требуемых DNS-серверов.

mikrotik-ikev2-vpn-014.jpg

Команда для терминала будет выглядеть так:

На закладке Groups создадим новую группу, никаких настроек здесь нет, просто укажите уникальное имя:

mikrotik-ikev2-vpn-015.jpg

Затем на закладке Policices создадим шаблон политики, которая будет указывать какой именно трафик будет подвергаться обработке IPsec и отправляться в туннель. В поле Src. Address оставляем 0.0.0.0/0, в поле Dst. Address указываем выделенный для VPN-сети диапазон: 10.20.0.0/24, устанавливаем флаг Template и указываем созданную нами ранее группу в поле Group.

mikrotik-ikev2-vpn-016.jpg

На закладке Action в поле Proposal укажите созданный нами ранее набор предложений.

mikrotik-ikev2-vpn-017.jpg

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

После чего перейдем в IP - IPsec - Peers создадим новый пир для приема подключений. Сразу установим флаг Passive, в поле Address указываем 0.0.0.0/24 (разрешаем подключаться из любого места), в поле Profile указываем созданный нами профиль, а в поле Exchange Mode укажем протокол обмена ключами - IKE2.

mikrotik-ikev2-vpn-018.jpg

В терминале для получения аналогичного результата выполните:

На закладке Identities создадим новую настройку идентификации подключающихся клиентов. Здесь много настраиваемых полей и нужно быть предельно внимательными, чтобы ничего не упустить и не перепутать. В поле Peer - указываем созданный нами пир, Auth. Method - способ аутентификации - digital signature, Certificate - сертификат сервера. Policy Template Group - группа шаблонов политик - выбираем созданную нами группу, Mode Configuration - указываем созданную нами конфигурацию для клиентов, Generate Policy - port strict.

mikrotik-ikev2-vpn-019.jpg

Команда для терминала:

На этом настройка сервера завершена, осталось лишь добавить правила брандмауэра, разрешающие работу с ним. Для того, чтобы клиенты могли подключаться к серверу перейдем в IP - Firewall - Filter Rules и добавим правило: Chain - input, Protocol - udp, Dst. Port - 500, 4500, In. Interface - ваш внешний интерфейс (в нашем случае это ether1). Действие не указываем, так как по умолчанию применяется accept.

mikrotik-ikev2-vpn-020.jpg

Для добавления правила в терминале:

Но это еще не все, чтобы VPN-клиенты могли получить доступ к внутренней сети, следует добавить еще одно правило. На закладке General укажите Chain - forward и Interface - внешний интерфейс, затем на Advanced: IPsec Policy - in:ipsec.

mikrotik-ikev2-vpn-021.jpg

Оба правила следует расположить выше, чем запрещающие в каждой из цепочек.

Настройка подключения клиента в Windows

Прежде всего импортируем сертификат, для этого можно просто выполнить двойной клик на файле сертификата, в открывшемся Мастере импорта в качестве Расположения хранилища укажите Локальный компьютер, остальные параметры принимаются по умолчанию.

mikrotik-ikev2-vpn-022.jpg

Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2, а в качестве Типа данных для входа - Сертификат. Также обратите внимание, что в строка Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в противном случае подключение установить не удастся.

mikrotik-ikev2-vpn-023.jpg

После чего откроем свойства созданного подключения и перейдем на закладку Безопасность, где установим переключатель Проверка подлинности в положение Использовать сертификаты компьютеров.

mikrotik-ikev2-vpn-024.jpg

Теперь можно подключаться, если все сделано правильно - подключение будет успешно. Проверим таблицу маршрутов:

mikrotik-ikev2-vpn-025.jpg

Как видим, маршрут к нашей внутренней сети 192.168.111.0/24 был добавлен автоматически и никаких ручных настроек клиента не требуется.

Настройка подключения клиента в Linux

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

Перейдем в домашнюю директорию и создадим скрытую папку для хранения ключей и сертификатов:

Теперь нам нужно экспортировать из PKCS12 файла корневой сертификат CA, а также ключ и сертификат пользователя. Начнем с корневого сертификата:

Затем экспортируем сертификат клиента:

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

На каждом из этих этапов нам нужно будет вводить парольную фразу, указанную при экспорте сертификата пользователя на роутере.

И наконец уберем пароль с закрытого ключа пользователя:

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

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

После чего вам станут доступны настройки VPN IKEv2 соединения.

mikrotik-ikev2-vpn-026.jpg

Настройки соединения достаточно просты. В секции Gateway указываем адрес сервера и путь к корневому сертификату CA. В секции Client устанавливаем Authentication: Certificate/private key и указываем пути к сертификату и закрытому ключу клиента. И в секции Option обязательно устанавливаем флаг Request an inner IP address. На этом настройка соединения окончена, можно подключаться.

mikrotik-ikev2-vpn-027.jpg

Если мы после подключения проверим таблицу маршрутизации, то не обнаружим маршрута к офисной сети, но при этом она будет доступна:

Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам

Сейчас, когда многие настраивают VPN для работы удаленных сотрудников, выбор протокола становится как никогда актуальным. С одной стороны стоят поддерживаемые современными ОС протоколы PPTP и L2TP, которые имеют ряд существенных недостатков и ограничений, с другой OpenVPN, который всем хорош, но требует установки стороннего ПО. При этом как-то забывают о быстром и безопасном IKEv2, основанном на IPsec новом протоколе, также поддерживаемом всеми современными ОС.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Почему именно IKEv2? Данный протокол входит в группу протоколов IPsec и обеспечивает высокий уровень безопасности, включая аутентификацию клиента с использованием сертификата, а также проверку подлинности сервера клиентом, что исключает атаки типа "человек посередине". При поддержке аппаратного ускорения IPsec со стороны оборудования показывает хорошую скорость соединения относительно других типов VPN в RouterOS и весьма прост в настройке с клиентской стороны, не требует добавления маршрутов.

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

Создание центра сертификации и выпуск сертификатов

Когда мы говорим об использовании сертификатов для аутентификации, то подразумеваем наличие инфраструктуры открытых ключей (PKI), образующей область доверия, за счет чего появляется возможность проверки подлинности любого субъекта инфраструктуры без привлечения третьих служб и списков пользователей. В основе PKI лежит центр сертификации - CA, выпускающий сертификаты и дающий возможность убедиться в их подлинности при помощи корневого публичного сертификата.

В нашем случае центр сертификации будет создан средствами RouterOS прямо на маршрутизаторе. Для этого перейдем в System - Certificate и выпустим корневой сертификат нашего CA.

mikrotik-ikev2-vpn-001.jpg

Красным указаны обязательные к заполнению поля. Name - видимое имя сертификата и Common Name - имя субъекта, которому выдан сертификат, в нашем случае это ca. Key Size - размер ключа, ключи размером менее 2048 байт не считаются безопасными, Days Valid - время действия сертификата, в нашем случае 10 лет.

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

Затем перейдем на закладку Key Usage и оставим только crl sign и key cert. sign, затем нажмем Apply, чтобы применить изменения, после чего подпишем сертификат. нажав кнопку Sign, в открывшемся окне укажем CA CRL Host, в качестве которого следует использовать один из IP-адресов роутера.

mikrotik-ikev2-vpn-002.jpg

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

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

mikrotik-ikev2-vpn-003.jpg

Заполнение полей в целом повторяет предыдущий пример, за исключением Common Name и Subject Alt. Name. Здесь мы указываем IP-адрес или FQDN по которому клиенты будут подключаться к серверу. Если вы используете IP-адрес, то тип записи в поле Subject Alt. Name нужно сменить на IP.

mikrotik-ikev2-vpn-004.jpg

Обратите внимание, если вы выпустили сертификат с указанием FQDN, а подключить клиента попытаетесь по IP-адресу, либо наоборот, то такое соединение окажется невозможным.

На закладке Key Usage укажем единственное значение tls server и подпишем наш сертификат закрытым ключом центра сертификации CA.

mikrotik-ikev2-vpn-005.jpg

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

Теперь можно выпускать клиентские сертификаты, это можно сделать как сразу, так и потом. Никаких особых требований здесь нет, в качестве имени указывайте максимально понятное значение, скажем, ФИО сотрудника или наименование офиса. Потому как понять кому принадлежит сертификат с CN IvanovIA не составит особого труда, в отличие от какого-нибудь безликого client3. Также обратите внимание на опцию Days Valid, не следует выдавать клиентские сертификаты на большой срок.

mikrotik-ikev2-vpn-006.jpg

В Key Usage также указываем единственное назначение сертификата - tls client и подписываем его закрытым ключом CA.

mikrotik-ikev2-vpn-007.jpg

Команды для терминала:

Для использования на клиентских устройствах сертификаты следует экспортировать, наиболее удобно использовать для этого формат PKCS12, который в одном файле содержит закрытый ключ клиента, его сертификат и корневой сертификат CA. Для этого выберите сертификат в списке и в меню правой кнопки мыши укажите действие Export. В поле Type укажите PKCS12, а в Export Passphrase следует указать пароль (не менее 8 символов), в противном случае закрытый ключ выгружен не будет.

Это же можно сделать командой:

mikrotik-ikev2-vpn-009.jpg
Настройка IKEv2 VPN-сервера

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

Перейдем в IP - IPsec - Profiles и создадим новый профиль, который задает параметры для установления соединения. Все параметры оставляем по умолчанию, кроме наименования, которому следует дать осмысленное имя.

mikrotik-ikev2-vpn-010.jpg

Либо выполните команду в терминале:

Затем перейдем на закладку Proposals - предложения, который содержит параметры криптографии предлагаемые для соглассования подключающимся клиентам. Создадим новое предложение, которое сформировано с учетом используемых современными ОС алгоритмов и изменение его состава может либо ослабить безопасность, либо сделать подключение некоторых клиентов невозможным.

mikrotik-ikev2-vpn-011.jpg

В терминале достаточно простой команды:

Здесь мы сталкиваемся с одной особенностью: создаваемые через терминал и Winbox предложения содержат различный набор параметров. То, что создается в терминале полностью соответствует приведенным выше на скриншоте требованиям.

Для выдачи VPN-клиентам нам потребуется отдельный диапазон адресов, перейдем в IP - Pool и создадим новый пул, в нашем случае будет использован диапазон адресов 10.20.0.100 - 10.20.0.199:

mikrotik-ikev2-vpn-012.jpg

Снова вернемся к настройкам IPsec и создадим конфигурацию, передаваемую клиенту для настройки его сетевых параметров, для этого перейдем на в IP - IPsec - Mode Configs. При создании новой конфигурации установим флаг Responder, в поле Address Pool укажем имя созданного нами пула, в поле Address Prefix Lenght укажем префикс адреса - 32, поле Split Include указываем подсети, запросы к которым следует направлять в туннель, здесь следует указать одну или несколько внутренних сетей, доступ к которым должны получать удаленные клиенты. В нашем случае это сеть условного офиса - 192.168.111.0/24. Наконец флаг System DNS предписывает клиенту использовать DNS сервера указанные в IP - DNS роутера. Если передавать DNS-сервера не требуется, то данный флаг следует снять.

mikrotik-ikev2-vpn-013.jpg

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

Если же вам нужно, чтобы клиенты использовали внутренние сервера имен, например, в Active Directory, то флаг System DNS также следует снять и указать адреса требуемых DNS-серверов.

mikrotik-ikev2-vpn-014.jpg

Команда для терминала будет выглядеть так:

На закладке Groups создадим новую группу, никаких настроек здесь нет, просто укажите уникальное имя:

mikrotik-ikev2-vpn-015.jpg

Затем на закладке Policices создадим шаблон политики, которая будет указывать какой именно трафик будет подвергаться обработке IPsec и отправляться в туннель. В поле Src. Address оставляем 0.0.0.0/0, в поле Dst. Address указываем выделенный для VPN-сети диапазон: 10.20.0.0/24, устанавливаем флаг Template и указываем созданную нами ранее группу в поле Group.

mikrotik-ikev2-vpn-016.jpg

На закладке Action в поле Proposal укажите созданный нами ранее набор предложений.

mikrotik-ikev2-vpn-017.jpg

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

После чего перейдем в IP - IPsec - Peers создадим новый пир для приема подключений. Сразу установим флаг Passive, в поле Address указываем 0.0.0.0/0 (разрешаем подключаться из любого места), в поле Profile указываем созданный нами профиль, а в поле Exchange Mode укажем протокол обмена ключами - IKE2.

mikrotik-ikev2-vpn-018.jpg

В терминале для получения аналогичного результата выполните:

На закладке Identities создадим новую настройку идентификации подключающихся клиентов. Здесь много настраиваемых полей и нужно быть предельно внимательными, чтобы ничего не упустить и не перепутать. В поле Peer - указываем созданный нами пир, Auth. Method - способ аутентификации - digital signature, Certificate - сертификат сервера. Policy Template Group - группа шаблонов политик - выбираем созданную нами группу, Mode Configuration - указываем созданную нами конфигурацию для клиентов, Generate Policy - port strict.

mikrotik-ikev2-vpn-019.jpg

Команда для терминала:

На этом настройка сервера завершена, осталось лишь добавить правила брандмауэра, разрешающие работу с ним. Для того, чтобы клиенты могли подключаться к серверу перейдем в IP - Firewall - Filter Rules и добавим правило: Chain - input, Protocol - udp, Dst. Port - 500, 4500, In. Interface - ваш внешний интерфейс (в нашем случае это ether1). Действие не указываем, так как по умолчанию применяется accept.

mikrotik-ikev2-vpn-020.jpg

Для добавления правила в терминале:

Но это еще не все, чтобы VPN-клиенты могли получить доступ к внутренней сети, следует добавить еще одно правило. На закладке General укажите Chain - forward и Interface - внешний интерфейс, затем на Advanced: IPsec Policy - in:ipsec.

mikrotik-ikev2-vpn-021.jpg

Оба правила следует расположить выше, чем запрещающие в каждой из цепочек.

Настройка подключения клиента в Windows

Прежде всего импортируем сертификат, для этого можно просто выполнить двойной клик на файле сертификата, в открывшемся Мастере импорта в качестве Расположения хранилища укажите Локальный компьютер, остальные параметры принимаются по умолчанию.

mikrotik-ikev2-vpn-022.jpg

Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2, а в качестве Типа данных для входа - Сертификат. Также обратите внимание, что в строка Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в противном случае подключение установить не удастся.

mikrotik-ikev2-vpn-023.jpg

После чего откроем свойства созданного подключения и перейдем на закладку Безопасность, где установим переключатель Проверка подлинности в положение Использовать сертификаты компьютеров.

mikrotik-ikev2-vpn-024.jpg

Теперь можно подключаться, если все сделано правильно - подключение будет успешно. Проверим таблицу маршрутов:

mikrotik-ikev2-vpn-025.jpg

Как видим, маршрут к нашей внутренней сети 192.168.111.0/24 был добавлен автоматически и никаких ручных настроек клиента не требуется.

Настройка подключения клиента в Linux

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

Перейдем в домашнюю директорию и создадим скрытую папку для хранения ключей и сертификатов:

Теперь нам нужно экспортировать из PKCS12 файла корневой сертификат CA, а также ключ и сертификат пользователя. Начнем с корневого сертификата:

Затем экспортируем сертификат клиента:

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

На каждом из этих этапов нам нужно будет вводить парольную фразу, указанную при экспорте сертификата пользователя на роутере.

И наконец уберем пароль с закрытого ключа пользователя:

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

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

После чего вам станут доступны настройки VPN IKEv2 соединения.

mikrotik-ikev2-vpn-026.jpg

Настройки соединения достаточно просты. В секции Gateway указываем адрес сервера и путь к корневому сертификату CA. В секции Client устанавливаем Authentication: Certificate/private key и указываем пути к сертификату и закрытому ключу клиента. И в секции Option обязательно устанавливаем флаг Request an inner IP address. На этом настройка соединения окончена, можно подключаться.

mikrotik-ikev2-vpn-027.jpg

Если мы после подключения проверим таблицу маршрутизации, то не обнаружим маршрута к офисной сети, но при этом она будет доступна:

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Доброго времени суток, коллеги. Сегодня пишу заметку по настройке VPN-сервер IKEv2 на MikroTik. По окончании настройки к нему смогут подключиться клиенты с Windows, Android, Apple а также получим рабочий туннель для объединения 2-х офисов по схеме Site 2 Site в ситуации, когда белый IP-адрес лишь у одного микрота (сервера) либо когда он пингуется по DNS-имени. Авторизовываться будем по сертификатам, которые сгенерируем на Site-1.

Я ни в коем случае не претендую на звание ГУРУ. То, что я здесь излагаю является не более, чем записной книжкой и пособием по настройке оборудования. Если это послужит кому-нибудь подспорьем, то добро пожаловать

В создании данной статьи я руководствовался официальной документацией и выступлениями Никиты Тарикина в Малазии, Москве и Индонезии, за которые огромное ему СПАСИБО!

После написания 3-х предыдущих заметок вся настройка будет происходит в терминале с минимумом комментариев и картинок.

1. Настройка VPN-сервера (Site-1)

Настраиваем часовой пояс, NTP-клиента.

Добавляем бридж и вешаем пул адресов на него же

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

Генерируем корневой сертификат:

Генерируем сертификат VPN-сервера:

Создаём шаблон для дальнейшего создания сертификатов через копирование с шаблона:

Сертификат для схемы Site 2 Site (для микротика Site-2):

Для первого клиента:

Для второго клиента, а остальные по той же схеме:

Далее экспортируем сгенерированные ключи, но обратите внимание, что сертификаты экспортируются в разных форматах (pem и pkcs12). Обязательно установите пароль при экспорте, т.к. при его отсутствии ошибок не будет, но работать VPN тоже не будет. Ни в коем случае не экспортируйте CA-сертификат с паролем, т.к. тогда экспортируется и закрытый ключ.

Скачиваем экспортированные сертификаты и сохраняем в одну папку. Я еще и переименовал скаченные сертификаты для удобства, удалив начало cert_export_.

Чуть настроим FireWall и изменим MSS. Правила размещайте перед запрещающими. Я расположу их в самом начале списка (place-before=0)

Добавим правила NAT и поместим их над правилом основного маскарада:

Настраиваем параметры IPSec. Настройка едина как для конфигурации Client 2 Site, так и для Site 2 Site:

Сразу добавим GRE-туннель, который в дальнейшем позволит нам легко настроить маршрутизацию между офисами:

На этом настройку VPN-сервера можно считать законченной и пора переходить на сторону клиента.

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

Первым на очереди комп с установленной Windows 10 Pro x64 версия 1903.
В винде кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.

Слева выбираем раздел VPN и справа ДОБАВИТЬ VPN ПОДКЛЮЧЕНИЕ:

Импортируем сертификат:
Расположение хранилища: Локальный компьютер
Пароль на сертификат: который вы выбрали при экспорте сертификата
Далее все по умолчанию

Далее кликаем правой кнопкой мыши на значок сетевого подключения и выбираем пункт ОТКРЫТЬ ПАРАМЕТРЫ СЕТИ И ИНТЕРНЕТ.
В правой части левый клик на пункте НАСТРОЙКА ПАРАМЕТРОВ АДАПТЕРА и в открывшемся окне правый клик на созданном VPN-подключении -> СВОЙСТВА.
В разделе БЕЗОПАСНОСТЬ пункт ШИФРОВАНИЕ ДАННЫХ - самое стойкое (отключиться, если нет шифрования)
- выбираем

В случае если вам не нужно выходить в интернет через шлюз подключенной через VPN сети, то выбираем вкладку СЕТЬ, двойной левый клик на IP версии 4, в открытом окне ДОПОЛНИТЕЛЬНО и далее во вкладке ПАРАМЕТРЫ IP и снимаем галку ИСПОЛЬЗОВАТЬ ОСНОВНОЙ ШЛЮЗ В УДАЛЕННОЙ СЕТИ.

3. Настройка MikroTik по схеме Site 2 Site (Site-2).

Настраиваем часовой пояс, NTP-клиента.

и импортируем их по порядку. Обратите внимание, что импортировать нужно сначала CRT, а затем KEY.

Настроим FireWall, параметры IPsec, добавим GRE-туннель и добавим маршрут в сеть Site-1:

Если вы всё сделали по инструкции, то на данном этапе туннель должен заработать! Если же это не так, то попробуйте отключить запрещающие правила на FireWall на обоих маршрутизаторах.

Для настройки клиента на устройствах под управлением Android и и продуктов фирмы Apple предлагаю проследовать на сайт официальной документации, дублировать которую просто не вижу смысла.

Нюансы Windows 10

Небольшое дополнение: При подключении с ПК под управлением Windows (в моем случае Windows10 x64 1903) к разным микротам VPN-подключение непонятным образом выбирает CA-сертификат. Решение подсказали на форуме и состоит оно в принудительном указании соответствия сертификата подключению, используя powerShell.

Также случается, что на винде не получается автоматически маршрут к удаленной сети. Эта проблема также решается через powerShell добавлением маршрута после подключения определенного VPN.

Также рекомендую снять галочку "использовать основной шлюз в удаленной сети" в свойствах VPN-подключения -> вкладка СЕТЬ -> TCP/IPv4 -> Дополнительно -> вкладка "Параметры IP", чтобы не маршрутизировать ваш доступ к WWW через шлюз подключаемой сети.

Нюансы Windows 7

Настройка VPN-подключения в Windows 7 ничем не отличается от Windows 10 кроме процесса импорта сертификатов в хранилище.
Итак: нажимаете Windows + R и в строке пишем mmc и нажимаем Enter.

Меню Файл - > Добавить или удалить оснастку.


В левой части открывшегося окна ищем пункт Сертификаты и нажимаем кнопку Добавить .


В следующем окне нужно выбрать учетной записи компьютера


И жмём Далее -> Готово -> ОК .

Перед нами откроется окно и здесь уже нужно импортировать сертификаты.

Сертификаты -> Правой кнопкой мыши по Личное -> Все задачи -> Импорт -> и выбираем наш сертификат p12 .

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

Надеюсь, что у вас всё получилось.
Если же нет, то добро пожаловать в раздел КОНТАКТЫ


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

Конфигурация StrongSwan

Здесь я рассмотрю только основные конфигурационные файлы StrongSwan, без углубления в настройку данного демона.

iptables на VPS

Импорт сертификатов и настройка IPSec MikroTik

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

Для добавления сертификатов, необходимо перенести их в память вашего MikroTik в раздел Files.


Импортируем открытый ключ корневого сертификата вашего центра сертификации на VPS на котором установлен StrongSwan.


Последовательно импортируем открытый и закрытый ключи авторизации используемые в конфигурации StrongSwan.



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

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


Далее, последовательно настраиваем профиль VPN-клиента.





Вместо "VPS IP" указываем адрес вашего сервера, где развернут StrongSwan.


В разделе IPsec Idenity настраиваем профиль авторизации, указываем учётные данные и сертификат импортированный ранее.


После выполнения этого шага туннель между MikroTik и StrongSwan будет поднят автоматически.

Вывод в разделе Log при успешной авторизации

Вывод в разделе Log при успешной авторизации

В разделе IP -> Addresses при успешной авторизации, появится IP адрес выданный StrongSwan.


Настройка маршрутизации трафика и списка ресурсов

В разделе NAT создаем правило перенаправления трафика.


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

local - подсеть маршрутизатора.

List1 - список сайтов.


Перенаправляем трафик на шлюз(IP адрес выданный StrongSwan)


Настройка списков

В разделе Address Lists необходимо добавить следующие списки:

local - подсеть маршрутизатора, в моем случае 192.168.1.0/24



Заключение

В данной статье я постарался подробно описать настройку туннеля между MicroTik и StrongSwan. Очень жду фидбека и вашей конструктивной критики.

Читайте также: