Настройка подключения VPN по IKEv2 на MacOS
Инструкция по настройке подключения VPN по протоколу IKEv2 на macOS
Для настройки VPN подключения по технологии «IKEv2» необходимо сначала скачать файл конфигурации с биллинга.
Далее зайдите в загрузки и найдите скачанный файл конфигурации, откройте его и нажмите кнопку «Продолжить» для установки профиля.
Нажимаем кнопку «Установить».
После ввода пароля Профиль VPN с необходимыми настройками будет установлен.
VPN будет автоматически запущен.
Вы можете управлять своим VPN-соединением в настройках сети.
Чтобы отключить автоматическое подключение к VPN, нажмите на замок для выбранного подключения, введите пароль и нажмите снять защиту.
Далее уберите галочку напротив «Подключать по запросу» и нажмите кнопку «Применить».
При использовании подключения по протоколу ikev2, возможно только одно активное соединение.
Если у Вас возникли трудности в настройке или появились дополнительные вопросы, вы всегда можете обращаться в нашу службу поддержки через систему тикетов.
Инструкция по настройке IKEv2 для всех основных платформ
IKEv2 зарекомендовал себя как чрезвычайно безопасный VPN протокол, который демонстрирует достаточно высокую стабильность и скорость соединения. Более подробную информацию о функциях и преимуществах IKEv2 протокола вы можете найти в статье Что такое IKEv2?
В этой инструкции мы рассмотрим следующие вопросы: Как создать конфигурации для настройки IKEv2? Как настроить IKEv2 соединение на macOS? Следуйте данному руководству и защитите и свои данные в сети.
Скачайте VPN Unlimited!
Скачайте VPN Unlimited прямо сейчас и сделайте вашу работу в сети максимально безопасной, приватной и без каких-либо границ!
Как настроить IKEv2 на macOS
I. Создание IKEv2 конфигураций
Прежде всего, вам необходимо создать файлы конфигурации для ручной настройки VPN-протокола IKEv2 в вашем Личном кабинете:
Более подробная инструкция по созданию конфигураций IKEv2 и других VPN-протоколов доступна в этом руководстве.
II. Настройка IKEv2 на macOS
1. Перейдите в Системные настройки > Сеть.
2. Чтобы создать новый сервис, нажмите на кнопку +.
3. Установите следующие данные:
Интерфейс: VPN
Тип VPN: IKEv2
Имя службы: введите название сервиса, например KeepSolid VPN Unlimited (IKEv2)
Когда вы закончите, нажмите кнопку Создать.
4. Введите следующие данные:
5. Нажмите кнопку Настройки аутентификации и введите следующие данные:
Настройки аутентификации: выберите параметр Имя пользователя
Имя пользователя: скопируйте Login из вашего Личного кабинета
Пароль: введите Password из вашего Личного кабинета
Когда вы закончите, нажмите кнопку OK и затем Применить.
6. Нажмите Подключить и ваше IKEv2 VPN соединение будет установлено через несколько секунд.
Отлично! Вы успешно настроили IKEv2 VPN клиент на вашем устройстве.
Важно! Обратите внимание, что вы несете полную ответственность за самостоятельную настройку вашего устройства с использованием сгенерированных ручных настроек.
Протокол IKEv2 также доступен в приложении!
IKEv2 также доступен в приложении VPN Unlimited, где вы можете установить соединение всего в несколько кликов. Скачайте приложение и попробуйте сами.
Почему я люблю IKEv2 больше других VPN
Сейчас все вокруг настраивают VPN для удаленных сотрудников. Мне больно смотреть, как люди устанавливают монструозные глючные программы, настраивают какие-то сертификаты, устанавливают драйвера TUN/TAP и делают множество сложных операций, в то время как лучшее решение уже встроено в операционную систему.
IKEv2 — это современный протокол VPN, разработанный Microsoft и Cisco. Он используется по умолчанию для новых VPN-подключений в Windows, macOS, iOS. Он быстрее и безопаснее большинства VPN-протоколов и может легко настраиваться на стороне клиента в два клика без использования сторонних программ.
Я считаю, что IPsec IKEv2 отлично подходит не только для соединения серверов, но и для обычных VPN-подключений конечных пользователей. В этом посте я постараюсь убедить вас использовать IPsec IKEv2 для обычных домашних пользователей вместо OpenVPN.
IKEv2 быстрее
При прочих равных условиях, IKEv2 будет всегда быстрее OpenVPN. Это особенно заметно на маломощных системах с медленной памятью, например на роутерах или одноплатных компьютерах.
Дело в том, что IPsec работает в контексте ядра операционной системы, а OpenVPN в контексте пользователя (userspace), и на обработку каждого пакета происходит переключение контекста между процессами ядра и процессами пользователя. Это влияет как на пропускную способность, так и на задержки.
Сравнение задержек для разных протоколов VPN.
Скриншот выше показывает разницу в задержке в два раза между IPsec и OpenVPN. Разумеется, разницу в 1мс невозможно заметить на глаз, но при нагрузке на систему эти значения могут значительно изменяться. Кроме того, реальные показатели сильно зависят от характеристик конкретной системы, поэтому я не буду приводить абсолютные цифры для сравнения двух протоколов. Задержки очень важны при использовании голосовой и видеосвязи через VPN.
По моим субъективным ощущениям IKEv2 на Windows 10 работает заметно отзывчивее чем OpenVPN. Ведь реальное использование десктопного компьютера сильно отличается от синтетических тестов VPN-протоколов. Нагрузка на процессор и память непостоянная, пользователь может запускать ресурсоемкие программы, все это будет влиять на показатели.
IKEv2 проще в настройке
Все современные операционные системы (кроме Android) поддерживают IPsec IKEv2 прямо из коробки. Не нужно устанавливать никакие программы, драйвера виртуальных адаптеров TUN/TAP и прочее. Всё управление VPN происходит из системного меню.
При этом настройку на клиенте можно упростить до трех строчек:
Настройка на Windows 10
Мастер настройки VPN вызывается из меню подключения к WiFi. С настройкой одного окна справится пользователь любой квалификации. Созданное подключение активируется из меню со списком WiFi-сетей.
Интерфейс настройки нового IKEv2 подключения в Windows 10
В macOS поддерживается IKEv2 начиная с версии 10.11 (El Capitan). Создание подключения происходит через меню настроек сети.
Добавляем новое подключение. В качестве имени подключения задаем любое произвольное имя.
Для проверки подлинности сертификата, нужно указать доменное имя. При этом в поле «Server Address» можно указать IP-адрес сервера, а домен только в «Remote ID», тогда для подключения не будет выполняться DNS-резолв, и оно будет происходить чуть быстрее.
Логин и пароль пользователя указываем из файла /etc/ipsec.secrets
Настройку iOS можно выполнить вручную через мастер, но намного удобнее использовать профиль автоконфигурации mobileconfig.
Ручная настройка по смыслу аналогична десктопной macOS:
IKEv2 это безопасно
На предыдущем шаге мы выяснили, что для настройки подключения достаточно логина и пароля. Но как клиенту проверить, что подключение не прослушивается, не подменяются данные и сервер действительно тот, за кого себя выдает? Для этого используются обычные SSL-сертификаты, которые мы привыкли использовать для веб-сайтов и HTTPS.
Клиент устанавливает защищенный SSL-тоннель с сервером, и уже внутри него передается логин-пароль. По умолчанию в Windows и macOS для передачи пароля используется алгоритм mschapv2. Таким образом с помощью SSL-сертификата клиент проверяет подлинность сервера, а по логину-паролю сервер проверяет подлинность клиента.
Сервер IKEv2 может использовать один и тот же сертификат вместе с веб-сервером, например от популярного Let’s Encrypt. Это сильно упрощает управлением сертификатами.
Такая же модель используется в OpenVPN, и при желании в нем можно использовать сертификат от Lets Encrypt, однако администратору в любом случае потребуется передать пользователю файл для настройки VPN.
Настраиваем IKEv2 сервер
Развернуть свой IKEv2 сервер можно за пару минут с помощью скриптов автоматической установки или используя готовые контейнеры. Использовать docker не рекомендуется, так как его сетевая подсистема снижает производительность IPsec на дешевых тарифах VPS. Вы также можете настроить IKEv2-сервер вручную, на Хабре есть статьи с примерами настройки сервера Strongswan.
Мы будем использовать один из наиболее удачных вариантов скриптов автонастройки github.com/jawj/IKEv2-setup
Этот скрипт хорош тем, что использует сертификаты от Lets Encrypt и автоматически генерирует валидный сертификат.
Шаг 1: Выбор сервера
Для запуска VPN сервера нам потребуется VDS. Подойдет самая простая конфигурация с одним ядром процессора. Скрипт из нашего примера лучше всего протестирован на Ubuntu 18.04, поэтому при создании сервера выбираем этот образ ОС.
Ждем окончания установки сервера и копируем реквизиты для подключения. Пароль root придет на почту, либо его можно задать вручную через веб-интервейс. Далее все команды мы вводим
Шаг 2: Установка Strongswan
Подключаемся SSH-клиентом и запускаем скрипт установки:
Шаг 3: Настройка клиента
Введенные реквизиты пользователя VPN теперь нужно использовать для настройки на клиенте. Важно использовать именно то доменное имя, которое вы вводили в Hostname for VPN.
Шаг 4: Добавление новых пользователей
Чтобы добавить нового пользователя в уже созданный сервер, отредактируйте файл /etc/ipsec.sectes.
После добавления пользователя выполните команду ipsec secrets чтобы Strongswan перечитал конфиг.
Заключение
Мы рассмотрели удобство IKEv2 со стороны пользователя. Администрирование такого сервера не сложнее, а иногда даже проще чем OpenVPN. Если вы только планируете организовать удаленный доступ для своих сотрудников, обязательно посмотрите в сторону IKEv2. Не заставляйте своих пользователей устанавливать лишние программы, если все необходимое уже есть на их компьютере. Это удобнее, безопаснее и намного прогрессивнее.
Настройка VPN IKEv2 сервера Mikrotik
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
IKE означает «Internet Key Exchange» и чтобы было, чем обмениваться, это надо сначала настроить. В общем, весь процесс настройки VPN сервера состоит из двух частей, по большому счету: выпуск и экспорт ключей и сертификатов и настройка IPSec. Дополнительно приведен пример firewall. Итак, есть микротик, VPN IKEv2 будем «вешать» на IP адрес 1.2.3.4. Можно и по доменному имени, а можно по публичному IP-адресу, без доменного имени. Рассмотрю вариант, когда доменного имени нет.
1. Точное время
Настройка времени важна для любого VPN, поэтому сразу проверим/настроим часовой пояс и синхронизацию времени:
/system clock set time-zone-name=Europe/Moscow
/system ntp client set enabled=yes server-dns-names=0.ru.pool.ntp.org,1.ru.pool.ntp.org
2. Сертификаты и ключи
Наш микротик будет:
а) выдавать и удостоверять ключи для себя (сервер VPN) и удаленных клиентов, для чего сначала будет настроен CA («удостоверяющий центр»),
б) выполнять роль VPN-сервера.
Подумайте, как лучше называть сертификаты. Вы не сможете это потом поменять без существенных проблем, особенно, если настраиваете рабочую систему, а не для себя одного. Если по имени сертификата будет неясно, для чего он и от чего, через какое-то время может возникнуть путаница, особенно, если объектов будет много.
/certificate add name=cacert organization=»Bozza.ru» common-name=»cacert» key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign trusted=yes
/certificate sign cacert
Не забывайте подписывать все выпускаемые сертификаты! CA подписывает сам себя, а потом CA подписывает все остальные сертификаты!
Серверный сертификат:
/certificate add name=Mikrotik organization=»Bozza.ru» common-name=»1.2.3.4″ subject-alt-name=IP:»1.2.3.4″ key-size=4096 days-valid=3650 key-usage=tls-server
/certificate sign Mikrotik ca=»cacert»
Клиентский сертификат:
Либо по стечению обстоятельств, либо это реально такое ограчение, но при выпуске сертификата, в левой части которого (до символа @) были заглавные буквы, Windows не подключалась к серверу с ошибкой 13801 «Неприемлемые учетные данные проверки подлинности ike».
/certificate add name=»vpnuser1@1.2.3.4″ organization=»Bozza.ru» common-name=»vpnuser1@1.2.3.4″ key-size=4096 days-valid=1095 key-usage=tls-client subject-alt-name=email:vpnuser1@1.2.3.4
/certificate sign vpnuser1 ca=»cacert»
В итоге, у нас есть ключи и сертификаты «cacert» (CA, выпускает и подписывает сертификаты), «Mikrotik» (VPN сервер), «vpnuser1» (клиент).
Экспорт ключей
Для установки на клиентский компьютер/смартфон надо экспортировать сертификат и ключ клиента, защитив пакет паролем:
/certificate export-certificate vpnuser1@1.2.3.4 type=pkcs12 export-passphrase=p@ssw0rd555
и сертификат CA «cacert» (только сертификат, БЕЗ ПРИВАТНОГО КЛЮЧА!):
На картинке опечатка закралась, экспорт происходит именно cacert, а не Mikrotik.
/certificate export-certificate cacert type=pem
Скачайте из Files файлы «cert_export_cacert.crt» и «cert_export_vpnuser1@1.2.3.4.p12» на клиентский компьютер и импортируйте сертификат и закрытый ключ в Личные сертификаты (если это Windows). Сертификат «ca» надо установить в «Доверенные корневые центры сертификации».
Сертификат должен стать для клиента VPN (неважно, Mac, Win, iPhone, Android) ДОВЕРЕННЫМ! Для этого и нужно экспортировать cacert и сделать его доверенным сертификатом CA на клиенте.
На iPhone можно отправить письмо с вложенными файлами сертификатов и установить их через Профили.
3. IKE VPN
3.1) Pool:
Клиентам VPN лучше всегда давать отдельные IP-адреса, отличные от основного диапазона. Создадим пул адресов для VPN:
/ip pool add name=»ike_vpn_pool» ranges=»10.0.100.2-10.0.100.30″
3.2) Modeconfig:
/ip ipsec mode-config add name=»modeconfig_ikev2″ address-pool=»ike_vpn_pool» address-prefix-length=32 split-include=0.0.0.0/0 static-dns=10.0.100.1 system-dns=no
/ip ipsec mode-config add address-pool=»ike_vpn_pool» address-prefix-length=32 name=»modeconfig_ikev2″ split-include=192.168.88.0/24 static-dns=10.0.100.1 system-dns=no
Если клиенты после подключения к удаленной сети должны иметь возможность обращаться к ресурсам удаленной сети не по IP, а по имени (например, server.office.local, а не 192.168.88.146), то надо передать клиенту не только маршрут до сети, но и сообщить ему адрес DNS сервера, отвечающего за разрешение имен в удаленной сети:
/ip ipsec mode-config add address-pool=»ike_vpn_pool» address-prefix-length=32 name=»modeconfig_ikev2″ split-include=192.168.88.0/24 static-dns=192.168.88.1 system-dns=no
3.3) Profile:
Касается т.н. фазы 1 (Phase 1, Security Association, SA), на которой согласовываются тип аутентификации, группа Diffie-Hellman, алгоритм шифрования. SA (фазы 1) существует определенное время, в течение которого устройства должны завершить вторую фазу. Если не успевают, то повторяется фаза 1.
/ip ipsec profile add name=»profile_ikev2″ dh-group=modp1024,modp1536,modp2048 enc-algorithm=aes-128,aes-192,aes-256 hash-algorithm=sha256 nat-traversal=yes proposal-check=obey
3.4) Peer (кого и куда принимаем):
/ip ipsec peer add name=»peer_ikev2″ exchange-mode=ike2 address=0.0.0.0/0 local-address=1.2.3.4 passive=yes send-initial-contact=yes profile=»profile_ikev2″
3.5) Proposal:
/ip ipsec proposal add name=»proposal_ikev2″ auth-algorithms=sha1,sha256,sha512 enc-algorithms=aes-128-cbc,aes-128-ctr,aes-128-gcm,aes-192-ctr,aes-192-gcm,aes-256-cbc,aes-256-ctr,aes-256-gcm lifetime=1h pfs-group=none
Относится к так называемой второй фазе (Phase 2, IPSec SA), когда устанавливается, как будет проходить шифрование и аутентификация (проверка, что получены именно те данные, которые были отправлены) данных, а также частота обновления ключей. По-умолчанию, ключи обновляются каждые 8 часов (это время можно менять параметром lifetime).
3.6) Policy group:
/ip ipsec policy group add name=group_ikev2
3.7) Policy:
/ip ipsec policy add src-address=0.0.0.0/0 dst-address=10.0.100.0/24 protocol=all template=yes group=»group_ikev2″ action=encrypt ipsec-protocols=esp proposal=»proposal_ikev2″
Внимательно и аккуратно выбирайте параметры. Для сертификата «vpnuser1@1.2.3.4» указывается Remote ID «vpnuser1@1.2.3.4» и проверка того, имеет ли право удаленный пользователь подключиться или нет, будет происходить на основании данных из сертификата:
/ip ipsec identity add auth-method=digital-signature certificate=Mikrotik remote-certificate=vpnuser1@1.2.3.4 generate-policy=port-strict match-by=certificate mode-config=»modeconfig_ikev2″ peer=»peer_ikev2″ policy-template-group=»group_ikev2″ remote-id=user-fqdn:vpnuser1@1.2.3.4
Дальше надо настроить firewall.
4. FIREWALL
Сферический firewall в вакууме, нужно аккуратно адаптировать эти правила в ваш firewall.
Пожалуйста, внимательно смотрите, что вы разрешаете или запрещаете в firewall. Любые сертификаты будут бессмысленны, если вы случайно разрешите input на внемнем интерфейсе.
INPUT (разрешить входящие на 500/udp И 4500/udp):
/ip firewall filter
add action=drop chain=input comment=»invalid» connection-state=invalid
add action=accept chain=input comment=»established» connection-state=established
add action=accept chain=input comment=»related» connection-state=related
add action=accept chain=input connection-state=new dst-port=500 protocol=udp
add action=accept chain=input connection-state=new dst-port=4500 protocol=udp
.
add action=drop chain=input comment=»drop everything else»
ЗЫ: еще пишут в примерах, что надо разрешить протокол ipsec-esp, но я проверял 🙂 отключение ни чему не мешает, поэтому и добавлять лишнее не будем.
FORWARD:
/ip firewall filter
add action=drop chain=forward comment=»invalid» connection-state=invalid
add action=accept chain=forward comment=»established» connection-state=established
add action=accept chain=forward comment=»related» connection-state=related
add action=accept chain=forward comment=»in:ipsec» ipsec-policy=in,ipsec
add action=accept chain=forward comment=»VPN-to-LAN» dst-address=\
192.168.88.0/24 ipsec-policy=in,ipsec src-address=10.0.100.0/24
Чтобы VPN-клиенты могли выходить в интернет, настроим NAT:
/ip firewall nat
add action=src-nat chain=srcnat ipsec-policy=out,none out-interface=ether1-gateway src-address=10.0.100.0/24 to-addresses=1.2.3.4
add action=masquerade chain=srcnat comment=»default» out-interface=ether1-gateway
5. Настройка клиентов
iPhone
Передать сертификаты в iPhone можно следующими способами:
1) по email (сертификаты как вложение), открыть вложенный cacert и vpnclient1 программой Mail и установить профиль;
2) по ссылке открыть в Safari и установить профиль
3) передать по AirDrop с MacBook, к примеру.
Например, можно на компе открыть микро-веб сервер, например, с помощью Python:
и с iPhone в Safari открыть http://ip-address-компа
Обратите внимание на то, что локальный ID повторяет имя (Name, Common Name, Subject Alternative Name) клиентского сертификата.
Аутентификация пользователя происходит автоматически, на основании данных из сертификата.
MacOS
Суть процесса: открываете «Связка ключей», в ней импортируете сначала cacert (доверенный центр сертификации), а потом сертификат vpnuser1. В «Системные настройки» в пункте «Сеть» добавляете VPN подключение, тип IKEv2, поля заполняете так же как в iOS (картинка выше), выбираете сертификат и все. Готово.
Windows 7/10
Ну и настраиваете IKEv2 VPN стандартно.
В общем, все, если все верно, VPN должен подключиться. На самом деле, совсем не факт, что все сразу заработает, логи и светлая голова вам в помощь. Спрашивайте в комментариях, если что-то вызываает вопросы, может, где очепятка, а я не заметил. Но в целом материал проверен руками, не раз. Удачи!

































