Настройка VPN IKEv2 сервера Mikrotik
В этой инструкции описана настройка VPN сервера IKEv2 на Mikrotik на базе ключей, без паролей. Это максимально безопасный вариант VPN, подбирать пароль в этом случае бессмысленно. Это затрудняет начальную настройку сервера, требует отправки клиенту сформированных сертификатов, что в некоторых случаях может быть менее удобным. Но, как и всегда, действует правило «вам шешчки или ехать?» — больше безопасности — меньше удобства. Это верно почти всегда.
UPD: Можно также использовать сервис sn.mynetname.net (url микротика станет вроде 12345.sn.mynetname.net, где 12345 — серийный номер вашего микротика) но, честно говоря, просто не пользовался этим сервисом сам в течении длительного времени, поэтому рекомендовать этот вариант доменного имени не стал.
Точное время
Настройка времени важна для любого 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
Сертификаты и ключи
Наш микротик будет: а) выдавать и удостоверять ключи для себя (сервер VPN) и удаленных клиентов, для чего сначала будет настроен CA («удостоверяющий центр»), б) выполнять роль VPN-сервера.
CA («удостоверяющий центр» — выдает заверенные сертификаты сервера и клиентов):
Подумайте, как лучше называть сертификаты. Вы не сможете это потом поменять без существенных проблем, особенно, если настраиваете рабочую систему, а не для себя одного. Если по имени сертификата будет неясно, для чего он и от чего, через какое-то время может возникнуть путаница, особенно, если объектов будет много.
/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»
Внимательно и аккуратно заполняйте поля Common Name и Subject Alt. Name — на основании этих полей на клиенте будет происходить проверка пользователя! Если допустить опечатку на этом месте, потом придется перевыпускать этот сертификат, а это немного заморочный процесс — выпуск, экспорт, скопировать, перенести и т.д.
Для установки на клиентский компьютер/смартфон надо экспортировать сертификат и ключ клиента, защитив пакет паролем:
и сертификат CA «cacert» (только сертификат, БЕЗ ПРИВАТНОГО КЛЮЧА!):
На картинке опечатка закралась, экспорт происходит именно cacert, а не Mikrotik.
/certificate export-certificate cacert type=pem
Сертификат должен стать для клиента VPN (неважно, Mac, Win, iPhone, Android) ДОВЕРЕННЫМ! Для этого и нужно экспортировать cacert и сделать его доверенным сертификатом CA на клиенте.
На iPhone можно отправить письмо с вложенными файлами сертификатов и установить их через Профили.
IKE VPN
/ip pool add name=»ike_vpn_pool» ranges=»10.0.100.2-10.0.100.30″
/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
где 192.168.88.0/24 — сеть, маршрут к которой будет передан клиенту. Т.е. после установки VPN соединения клиент сможет сразу обращаться к ресурсам этой сети.
Если клиенты после подключения к удаленной сети должны иметь возможность обращаться к ресурсам удаленной сети не по 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
Касается т.н. фазы 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″
— принимаем всех (0.0.0.0/0) на внешний адрес микротика (1.2.3.4) — адресов-то может быть много и не обязательно это будет публичный IP.
/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
/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″
3.8) Identity (для каждого пользователя — свой):
Дальше надо настроить firewall.
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, но я проверял 🙂 отключение ни чему не мешает, поэтому и добавлять лишнее не будем.
/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
Настройка клиентов
Передать сертификаты в iPhone можно следующими способами:
1) по email (сертификаты как вложение), открыть вложенный cacert и vpnclient1 программой Mail и установить профиль; 2) по ссылке открыть в Safari и установить профиль 3) передать по AirDrop с MacBook, к примеру.
Стоит подумать, как лучше, потому что в данном случае передается ключ для доступа, а не какая-то ерунда. При отправке по email потом надо удалить письмо из отправленных, входящих, из корзины и еще где там может осесть письмо — автоархив какой-нить. Если передать надо удаленному клиенту, вариантов не много. Но если настраивается устройство, доступное локально — стоит заморочиться.
Например, можно на компе открыть микро-веб сервер, например, с помощью Python:
Установите сертификаты и ключ через профили (там все интуитивно, описывать, думаю, не стоит). А саму настройку VPN IKEv2 — просто приведу картинку-скрин экрана:
Обратите внимание на то, что локальный ID повторяет имя (Name, Common Name, Subject Alternative Name) клиентского сертификата.
Аутентификация пользователя происходит автоматически, на основании данных из сертификата.
Суть такая — сертификат устанавливается в учетную запись компьютера, а не пользователя (по-умолчанию, certmgr.msc предлагает именно Пользователя). mmc.exe — Сертифкаты — Учетная запись компьютера.
Ну и настраиваете IKEv2 VPN стандартно.
В общем, все, если все верно, VPN должен подключиться. На самом деле, совсем не факт, что все сразу заработает, логи и светлая голова вам в помощь. Спрашивайте в комментариях, если что-то вызываает вопросы, может, где очепятка, а я не заметил. Но в целом материал проверен руками, не раз. Удачи!
Как устранить ошибку “Windows не может найти сертификат для вашей регистрации в сети” в Windows XP?
Такая ошибка обычно связана с авторизацией в беспроводной сети, потому что Windows ошибочно ищет соединение 802.1 x . Эту проблему можно устранить следующим образом.
Шаг 2 Дважды щелкните на
во всплывающем окне.
Шаг 3 Правой кнопкой мыши щелкните на беспроводное сетевое подключение, затем нажмите Свойства.
Шаг 4 Теперь выберите закладку Беспроводные сети и выберите сеть из списка внизу. Нажмите Свойства, выбрав беспроводную сеть, с которой у вас наблюдается проблема.
Шаг 5 Перейдите на закладку Авторизация и снимите галочку в окошке Включить авторизацию IEEE 802.1 x для данной сети. Если в этом окошке стоит галочка, то вы будете получать сообщение “не найден сертификат для вашей регистрации в сети”, потому что Windows ищет его, однако ваш беспроводной маршрутизатор не настроен на безопасность с помощью сертификатов.
Шаг 6 Зайдите на закладку Подключение и поставьте галочку в окошке Подключиться, когда данная сеть доступна.
Шаг 7 Перейдите на закладку Ассоциация и снимите галочку в окошке Ключ для меня предоставляется автоматически, затем выберите Авторизация в сети и Шифрование данных и введите Network key (сетевой ключ ), который вы настроили на вашем беспроводном маршрутизаторе.
Шаг 8 Нажмите ОК, затем еще раз ОК, чтобы сохранить ваши настройки.
Теперь проблема устранена. Windows может сразу автоматически регистрировать вас в сети.
Если проблемы остались, обратитесь к FAQ или свяжитесь со службой поддержки TP – LINK .
Windows 7 ошибка 766 не удалось найти сертификат
Убедитесь, что маршрутизатор, за которым находится VPN-клиент, обеспечивает NAT-T (NAT Traversal).
Также убедитесь, что служба “IPSec Policy Agent” функционирует.
Спасибо моей жене Кате, Клевогину С.П., Козлову С.В., Муравлянникову Н.А., Никитину И.Г., Шапиро Л.В. за мои знания! 🙂
Немного не опнял какой маршрутизатор.
Как проверить, что работает служба служба “IPSec Policy Agent”?
По поводу маршрутизатора и NAT-T. Как справедливо заметил Дмитрий Никитин, если VPN-клиент успешно соединялся с использованием PPTP, то проблемы с NAT у Вашего VPN-клиента скорее всего нет. Но, все же проверьте, если VPN-клиент находится “за NAT”, то обеспечивает ли маршрутизатор клиента NAT Traversal. Спасибо моей жене Кате, Клевогину С.П., Козлову С.В., Муравлянникову Н.А., Никитину И.Г., Шапиро Л.В. за мои знания! 🙂
Необходимо дополнительно настроить клиентский компьютер.
Для Windows XP: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec Для Windows Vista: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
Перезагрузить коммпьютер.Пробуем подключиться к VPN серверу.
Использую сертификаты. Не работает именно с ними.
Добавил десятичный параметрHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
Если использовать предварительный ключ проверки, то подключиться удается.
Рассказывайте, как сертификаты ISA и клиентам выдавали.
Может быть еще надо запрашивать каие? Вот только что нашел, что в mmc для локального компьютера-личные надо запростить какой-то сертификат дя компьютера, Но у мня он не запрашивается из-за фильтра RPC, как я понимаю, но отключение RPC недоступно у меня.
Еще хочу добавить (если это имеет значение), что на ISA в мониоринге показывается соединенеи по протоклолу ike-клиент порт 500. Так и должно быть?
Да, IKE используется для установления IPSec-соединения.
По поводу сертификатов. Необходимо обеспечить сертификатом компьютера сервер ISA. Также необходимо обеспечить сертификатом компьютера, не пользователя, компьютеры клиентов. Далее. Важно, чтобы к этим сертификатам было доверие с обеих сторон, т.е. чтобы они были выпущены доверенным удостоверяющим центром. Сертификат на компьютере ISA можно запросить с помощью утилиты “certreq”, сохранив запрос в файл. Сертификаты клиентских компьютеров можно запросить через узел “certsrv”, разрешив пользователям запрашивать сертификаты на основе шаблона “IPSec offline request”. при этом убедитесь, что сертификаты для пользовательких компьютеров Вы получаете с закрытым ключом (“allow private key to be exported” в шаблоне и “store certificate in computer store” – когда получаете).
Хочу немного уточнить.1) Значит нам на компьютере пользователя и VPN-сервере и сервера нужно, чобы в доверенных центрах сертификации был сертификат сервера сертификации моей сети. Например, если мой сервер сертификации Sert Aut Center, то его сертификат лежит в доверительных корневых центрах сервера и клиента БЕЗ ключа. Импортировать его можно с диска C: сервера сертификатов.
4) На клиенте запрашиваем сертификат пользоваля, который выдается каждому пользователю для VPN-подключения (с ключем).
Я не понимаю, какие еще сертияикаты мне нужно получить. Почему по PPTP соединение с сертификатами идет, а L2Tp нет.Где еще можно покопать?
Если при запуске VPN-соединения возникла ошибка, то Вам необходимо запомнить ее трехзначный код. Ошибки имеющие код 6ХХ (ошибки, связанные с некорректным вводом пароля, имени или выбора типа протокола связи и говорят о том, что сеть работает, но необходимо проверить вводимые данные), 7ХХ (ошибки, связанные с некорректными настройками соединения и говорят о том, что сеть работает, но необходимо проверить настройки) или 8ХХ (ошибки, связанные с проблемами в настройке сети или отсутствием подключения к сети.
Установленное антивирусное программное обеспечение ив особенности брандмауэры могут блокировать установку VPN-соединения, вызывая, например, ошибки 789 и 792. В этом случае необходимо в настройках средств защиты разрешить UDP-порты 500 и 4500 для обмена данными с VPN-концентратором.
Если VPN-соединение не не может быть установлено и выдает ошибку
Убедитесь, что запущены следующие службы Windows XP («Пуск» — «Панель управления» — «Администрирование» — «Службы»): — «Телефония»; — «Диспетчер автоподключений удаленного доступа»; — «Диспетчер подключения удаленного доступа».
Для их включения в командной строке запустите следующие команды:
sc config RasAuto start= demandsc config RasMan start= demandsc config TapiSrv start= demand
Ошибки при установке VPN-соединения и рекомендации их устранения
В операционной системе глобально запрещено использовать шифрование
Если используется операционная система Windows XP, то откройте редактор реестра (regedit.exe) и проверьте, есть ли в ключе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesRasManParameters параметр ProhibitIpSec. Если он есть и имеет значение «1», то измените его на «0» и перезагрузите компьютер. Внимание. Если ваш интернет провайдер использует для предоставления доступа в Интернет VPN-подключение l2tp при изменении данного параметра может пропасть доступ в Интернет. В таком случае вам необходимо вернуть настройку в значение «1» и перегрузиться.
Проблемыс брандмауэром Windows Seven
Установлен тип VPN —«Автоматически»
В свойствах VPN-соединения на вкладке«Сеть» поменять тип VPN c «Автоматически» на «L2TP IPSec VPN». Если не помогает, необходимо пересоздать соединение.
При необходимости одновременной работы через VPN с нескольких рабочих мест необходимо использовать разные имена пользователей.
Не сохранён предварительный ключ
Открыть свойства VPN-подключения, перейти на вкладку «Безопасность», нажать на кнопку «Дополнительные параметры» и в открывшемся окне ввести предварительный ключ в поле «Ключ».
Не запущена служба IPSec
Сделать щелчок правой кнопкой мыши на значке «Мой компьютер», выбрать пункт меню «Управление». В открывшемся окне раскрыть «Службы и приложения»и выбрать«Службы». Найти службу «Службы IPSec». Запустить еёи установить тип запуска «Авто».
Неправильно введен адрес VPN-концентратора,не настроена служба DNS или отсутствует подключениек сетиInternet
Ввести заново адрес VPN-концентратора. Если адрес введен верно — проверить наличие связи с VPN-концентратором. Если связи нет — обратиться к своему системному администратору либо к своему Internet-провайдеру.
Не введен предварительный ключ
В свойствах VPN-подключения ввести предоставленный вам предварительный ключ.
Введен неверный предварительный ключ
Ввести заново предварительный ключ
Соединение происходит с использованием технологии NAT без установленного на компьютере с операционной системой Windows XP пакета обновлений SP2
Установить пакет обновлений SP2 для Windows XP
Если используется операционная система Windows 7 или Vista, то откройте редактор реестра (regedit.exe) и проверьте, есть ли в ключе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesRasManParameters параметр ProhibitIpSec. Если он есть и имеет значение «1», то измените его на «0» и перезагрузите компьютер. Внимание. Если ваш провайдер интернет использует, для предоставления доступа в Интернет, VPN-подключение l2tp при изменении данного параметра может пропасть доступ в Интернет.В таком случае вам необходимо вернуть настройку в значение «1» и перегрузиться.