Сейчас все вокруг настраивают 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 происходит из системного меню.
При этом настройку на клиенте можно упростить до трех строчек:
- Домен — для IPsec домен обязателен, так как для него выпускается SSL-сертификат
- логин
- пароль
Не нужно больше передавать клиенту файлы с сертификатами и ключами, заставлять его импортировать корневые сертификаты в системное хранилище. Достаточно логина и пароля, при этом соединение будет так же надежно защищено, как и в OpenVPN при использовании сертификатов, ведь для установки соединения используется такой же x.509 сертификат, как и для веб-сайтов с HTTPS.
Настройка на Windows 10
Мастер настройки VPN вызывается из меню подключения к WiFi. С настройкой одного окна справится пользователь любой квалификации. Созданное подключение активируется из меню со списком WiFi-сетей.
Интерфейс настройки нового IKEv2 подключения в Windows 10
Добавляем новое подключение. В качестве имени подключения задаем любое произвольное имя.
Для проверки подлинности сертификата, нужно указать доменное имя. При этом в поле «Server Address» можно указать IP-адрес сервера, а домен только в «Remote ID», тогда для подключения не будет выполняться DNS-резолв, и оно будет происходить чуть быстрее.
Логин и пароль пользователя указываем из файла /etc/ipsec.secrets
Ручная настройка по смыслу аналогична десктопной macOS:
Настройки -> VPN -> Добавить конфигурацию VPN
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-клиентом и запускаем скрипт установки:
# запуск автоматической установки сервера IKEv2
wget https://raw.githubusercontent.com/jawj/IKEv2-setup/master/setup.sh
chmod u+x setup.sh
./setup.sh
....
# Введите имя домена направленного на IP-адрес сервера
# используйте сервис sslip.io если у вас нет домена
Hostname for VPN: 123-45-67-89.sslip.io
# Имя пользователя VPN
VPN username: coolguy
# пароль
VPN password (no quotes, please):
....
# скрипт запрос создать нового SSH-пользователя, этот шаг нельзя пропускать.
Шаг 3: Настройка клиента
Введенные реквизиты пользователя VPN теперь нужно использовать для настройки на клиенте. Важно использовать именно то доменное имя, которое вы вводили в Hostname for VPN.
Шаг 4: Добавление новых пользователей
Чтобы добавить нового пользователя в уже созданный сервер, отредактируйте файл /etc/ipsec.sectes.
# nano /etc/ipsec.secrets
123-45-67-89.sslip.io : RSA "privkey.pem"
coolguy : EAP "C00lPassword"
badguy : EAP "bAdP$$word"
После добавления пользователя выполните команду ipsec secrets чтобы Strongswan перечитал конфиг.
Заключение
Мы рассмотрели удобство IKEv2 со стороны пользователя. Администрирование такого сервера не сложнее, а иногда даже проще чем OpenVPN. Если вы только планируете организовать удаленный доступ для своих сотрудников, обязательно посмотрите в сторону IKEv2. Не заставляйте своих пользователей устанавливать лишние программы, если все необходимое уже есть на их компьютере. Это удобнее, безопаснее и намного прогрессивнее.
edogs
Роутеры какие-то поддерживают?
zhovner
В OpenWRT есть пакет Strongswan, сам не тестировал.
gudvinr
Микротик умеет
icCE
Умеет но есть ограничения.
www.youtube.com/watch?v=nYIAyj5ot2o
SargeT
Присоединюсь к вопросу: Keenetiс из коробки может только L2TP/IPSec (и SSTP вроде), или я что-то не смог нагуглить?
edogs
Порылись чутка.
giga ii должен поддерживать ike2v. Поставили компонент ipsec, ndims 2.06, включили — в настройках ike2v есть. Как бы по умолчанию этого не было, но это все из коробки — галочками из веб-интерфейса ставится штатно.
Судя по статье поддерживает ike куча моделей, но некоторые могут поддерживать только ike1
Однако если речь про зухели и vpn/ssl, надо не забывать о таком нюансе как «В PPTP-сервере интернет-центра Keenetic по умолчанию протокол MPPE работает с ключом 40 бит, что вызвано изменениями в законодательстве, действующем на территории Таможенного союза России, Белоруссии и Казахстана»©, который может еще где-то проявляться.
SargeT
Спасибо.
Статьи видел, по ним не очень понятно, что именно поддерживается. Они там упорно топят в site-to-site, а я хочу просто с условного телефона заходить домой и внутри уже смотреть в локальную сеть, умные лампочки и прочее дырявое RDP, чтобы никакая голая задница у меня из дома в интернет не светила. А у меня ещё PPPoE, и что-то то ли провайдер gre режет, то ли у меня руки кривые. В общем, видимо не попробовав, не узнать.
Смотрел на предмет Микротика hAP ac2 – вот он может всё и немного больше (ну, MOS точнее), но у него от радио многие плюются.
impexp
При правильной настройке у hAP ac2 радио отличное. Можно также из недогих решений хоть для дома, хоть для малого офиса поставить на вход шлюз микрот RB760iGS (hEX s) или RB750Gr3 (hEX) при отсутствии первого в наличии, и от него протянуть провод на любую AP, какую заблагорассудится (от hEX s можно запитать её по passive PoE), и в более правильное для радио местоположение.
SargeT
А что значит "при правильной настройке"? Есть размещение и ориентация антенн в пространстве, есть канал и мощность сигнала, чтобы не взаимодействовать с соседями. Какие микроту нужны особые настройки, учитывая что у hap ac2 антенны вообще внутренние?
У меня загород, вай-фай должен быть по всему участку, на данный момент я просто решил вопрос, выставив одну антенну роутера через удлинитель на крышу дома, десятилетний тыр-пыр-линк за $30 без "правильной настройки" (только мощность у него разблокировал и вкрутил посильнее) покрывает свои задачи без проблем, но ради IKEv2/IPSec приходится всё время держать включённым старый Атомный ноут на Винде.
Если вы имеете опыт с микротиками, не посоветуете что-то более старое и проверенное с внешними антеннами, без ненужного мне 5 ГГц, но с поддержкой MOS4?
impexp
Можете взять RB951g-2Hnd, сам так когда-то давно издевался над этой железкой: можно в корпусе проделать три отверстия и подключить внешние антенны через пигтейлы на плате. Подойдут обычные антенны с креплением от любого другого роутера c усилением 2-5 dBi. Помня про дикую мощность передатчика этой железки, надо снижать до оптимума и замерять хотя бы сигнал/шум в местах пользования вайфаем. Это не выносные антенны, а просто внешние на корпусе. Только для внутренней установки.
В вашем случае я бы рассмотрел всё же именно RB760iGS/RB750Gr3, т.к. они умеют в аппаратное ускорения IPSEС AES и есть USB порт для 4G модема (у вас загород, интернет именно такой, или другой?), и всепогодную точку доступа на крыше.
В вашем случае надо понимать структуру сети: откуда приходит интернет, где он нужен и в каком виде, вайфай нужен только в «поле», или в доме тоже, какое расположение?
Например, если у вас типовой кейс: интернет через 4G + wifi на участок, то выш выбор — RBwAPR-2nD&R11e-LTE: она же и 4G модем, и уличная всепогодная точка доступа, и питание к ней удобно завести через PoE. Она даст вам интернет для всего участка, и даже в дом будет долетать, возможно, достаточно для вашего режива работы. Внутри проще свитч и кабель, для телефонов хватит того, что есть, если дом небольшой и радиопроницаемый.
SargeT
Мой тп-линк работает сейчас так: сам он посреди дома, его в целом хватает на то чтобы пробить весь дом, вторая антенна на крыше, она покрывает весь участок, с этим проблем нет вообще никаких, и если конкретный микротик может как минимум так же, то проблем и не будет.
Меня беспокоит именно программная часть. У меня оптоволокно с авторизацией PPPoE, что мне как неспециалисту доставляет гемоРРРоЯ в плане настройки всякого тунеллирования, сотовой связью не резервируюсь, 4G не требуется. Вот например когда я накатывал на тплинк openwrt и пытался там сильного лебедя настроить, у меня так в результате ни хрена и не получилось, и я сильно уверен что проблема была именно в PPPoE, я не понимаю что там куда и как надо заворачивать.
Вроде как Кинетик намного более домохозяечный чем микротик, поэтому думаю как не получить ситуацию, когда устройство купил, а заставить работать не смог.
А, ну и аппаратное ускорение мне конечно ни к чему, мне же не гонять через него ломовой трафик, а просто подключаться с одного-двух клиентов для мелких домашних задач – помочь по удалёнке, посмотреть за котом…
impexp
Для PPPoE надо правильно настроить MTU, и будет вам щасте )
Для ваших целей, если диагрмма направленности не принципиальна, достаточно RB951g-2Hnd + антенны для приёма от слабых клиентов с дальнего конца участка, хотя на 2,4 ГГц для дальности без проблем хватит и встроенных антенн от того же hAP ac2.
SargeT
Как вы уверенно заявили про hAP ac2, не зная ни размеров участка, ни материалов и толщин стен :)
Я не просто так вынес одну антенну, тут и участок немаленький, и дом не в центре ни разу, и стены кирпичиевые, толстые и много.
А зачем третье? И – оказывается, там паять нужно. А у hap ac2 флеша 16 МБ – это вообще как, что за шаг назад от 951? Даже дублирования прошивки нет, как у кинетика. Вместо диаграммы направленности – «нутряные антенны, 360°», всё. В общем, микротик конечно содержит неоднозначные решения, нечего сказать.
impexp
Таки вам шашечки или ехать?
SargeT
Десять лет назад я сказал «ехать», купил за тысячу рублей китайца, воткнул и, гремя костями на каждой кочке, поехал. Теперь вопрос об аппарате в несколько раз дороже и сложнее в настройке, так что он некорректен. Правильный вопрос: вам кота в мешке или документированное устройство? И ответ очевиден.
Там ниже кстати тоже интересуются, рабочие гайды-то где? А то одни вопросы в Гугле.
impexp
Рабочих гайдов нет, есть много успешных кейсов интеграции микротов и не только для мелкого и среднего бизнеса )
Вам как минимум нужны замеры синала / шума на местности для картирования. Чем оснащать, вопрос лишь вашего бюджета: в случае малобюджетного Для IKE2 VPN можете ставить шлюзом любой самый недорогой роутер / точку доступа микрот начального уровня, для вайфай — это уже второй вопрос. Нужен ли вам один универсальный девайс, или нужно хорошее покрытие? Можно построить как бесшовный роуминг на этом вендоре или, например, ubiquiti, так и просто воткнуть одного или нескольких китайцев на разных частотах по дому и участку, а поскольку вас устаривает покрытие вайфай от имеющегося, оставляйте его.
SargeT
Ясно.
Тыр-пыр-линк: есть гайды, притом что любой джигит и сам сель-поехаль, антенны только разнеси, прикрутив пальцами удлиннители из того же магазина; икев2 – либо отдельная тачка, либо WRT-прошивка.
Микротик: минимум замерь S/N на местности, картируй, просверли дырки, напаяй пигтейлы, пригласи специалиста по кейсам интеграции микротов в не только мелкий и средний бизнес, но и видимо в крупный…
В общем, спасибо, что предостерегли, пожалуй в Микротики я вступать не готов, обойду по сухому.
DaemonGloom
Рабочие гайды по микротику ищутся в официальной вики микротика. Там есть и IKE, и PPoE, и всё прочее, что вы захотите.
Когда у вас появляется желание разнести антенны, это означает, что вам нужно только 2.4ГГц. В такой ситуации вы берёте что-то типа RB2011UiAS-2HnD-IN, у которого его родные антенны уже подключены по MMCX и меняете их на что угодно.
Впрочем, в правильной ситуации нужный результат обычно получают отдельной мелкой точкой доступа. Управляется при этом всё точно также с основного микротика (называется технология CAPsMAN).
impexp
Вовсе не так. Так же точно ставите железку, как любой туполинк. В микроте еть «режим домохозяйки», называется quickset: сел и поехал.
Замер сигнал/шум — нужен для того, чтобы понимать где и как ориентировать точку, а также конечный результат колхозинга с антеннами. Он касается не только микрота, но и вообще любого вайфай оборудования, и, не поверите, даже вашего туполинка ) Делать это не обязательно, но крайне полезно, и можно даже самостоятельно при помощи, только представьте, бесплатных приложений на телефоне!
Да можете вообще оставить ваш любимый туполинк как есть для раздачи радио, интернет на вход через hap lite за 1 тыс (радиомодуль можно выключить), а туполинк к нему проводом и в бридж (в WAN, как любят делать многие, — корявое решение, но работать будет даже такой колхозинг), чтобы на гадил в сеть своими сервисами.
Страх и неимение опыта — не беда. Для того и существует хабр, чтобы поделиться, как сделать правильно, а не колхозно. Не усложняйте )
mkll
Хожу в домашний кинетик по IKEv1, причем прошивка кинетика древнючая — 2.11.
cartmenez
А как сабжевый ike2v по итогу на кинетике то поднять, есть хоть одна мана рабочая? Гугл ничего кроме вопрошательных тредов не видит. Взглянуть хотя бы на костыльные методы через entware
PaulZi
Просто как в статье к кинетику не получится, есть через дебри:
https://help.keenetic.com/hc/ru/articles/115001906769-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9-IPSec-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-Windows
Или сторонней утилитой:
https://help.keenetic.com/hc/ru/articles/115004468149-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%83-IPSec-VPN-IPSec-Virtual-IP-%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0-%D0%B8%D0%B7-%D0%9E%D0%A1-Windows
sirocco
Keenetic 4g III из коробки умеет L2TP, PPTP, PPPoE, OpenVPN, SSTP. OS v.: 2.15.C.6.0-1.
dartraiden
В дополнение к вышеотписавшимся: все роутеры, у которых есть возможность подключить репозиторий Entware.
fox99
Keenetic
Dr_Sigmund
Cisco почти везде, и маршрутизаторы, и ASA.
impexp
Нужна платная доп лицензия AnyConnect.
Dr_Sigmund
Так это именно для AnyConnect. А просто чтобы стандартные IKE/IPsec/L2TP — не нужна.
impexp
В статье речь именно про IKEv2, а у циско это только в AnyConnect.
Dr_Sigmund
А, именно насчёт v2 не уверен, может.