Открытие порта
Во многих статьях описание начинается с изменения настроек ключей реестра. Но мы сначала откроем порты 1701 и 500, проверим соединение и только потом приступим к изменению конфигурации реестра. Если мы сначала попытаемся изменить реестр, а потом открыть порт, то нам придется снова заходить в реестр, а это дополнительное время. Обычно мы сначала пытаемся открыть порт.
- Нам нужно открыть «Панель управления». В Windows 7 инструмент находится сразу в «Пуске»; в 10 можно найти через поиск.
- откройте брандмауэр Защитника Windows».
- «Добавить опции».
- Щелкните правой кнопкой мыши правила для входящих подключений и создайте новое правило.
- «Для порта».
- Выберите «UDP». Обычно используется порт 1701, но иногда возникают проблемы с портом 500 — поэтому вводим их через запятую.
- Разрешить подключение.
- Мы здесь ничего не меняем.
- Не забудьте написать имя в конце, чтобы не потерять параметр.
- Такое же правило создаем для исходящего соединения.
Проверяем соединение. Скорее всего ошибка возникнет снова – это нормально, теперь переходим к следующему шагу. В любом случае, теперь мы уверены, что порт открыт.
Читайте также: Проблема с устройством воспроизведения звука в Скайпе
Исправление реестра
- откройте редактор реестра — это можно сделать двумя способами. Вы можете найти это приложение, выполнив поиск по названию или используя аббревиатуру:
regedit
- В той же домашней десятке иногда возникает ошибка, из-за которой приложение не найдено. Затем находим на клавиатуре клавиши и R и нажимаем их одновременно. После этого появится окно, в котором нужно ввести аналогичную короткую команду английскими буквами.
- Теперь внимательно проходим путь от самого корня «HKEY_LOCAL_MACHINE». Затем заходим в «Систему» и находим подраздел «CurrentControlSet», там находим папку «Службы». Все, что вам нужно сделать, это сначала зайти в «Расман» и открыть последнюю папку «Параметры».
- Нас интересуют два ключа. Первый — «ProhibitIpSec» — этот параметр разрешает или запрещает локальную политику IP-безопасности и шифрования. Второй «AllowL2TPWeakCrypto» — собственно, мы пока не будем его трогать в самом начале и оставим значение по умолчанию. Некоторые могут не иметь параметра «ProhibitIpSec». Поэтому создаем его, щелкнув правой кнопкой мыши по свободной области. Выберите «Создать» — «Значение DWORD (32 бита)». ЗапретитьIpSec
- Будет создан параметр, который необходимо изменить на «ProhibitIpSec». Откройте двойным щелчком ЛКМ и установите значение единица (1).
- Нажмите кнопку «ОК». Перезагрузите компьютер и проверьте соединение.
Если ошибка не устранена, выполните следующие действия. Если параметр «AllowL2TPWeakCrypto» существует, измените его значение с нуля (0) на единицу (1) или наоборот. Если такого параметра нет, создайте новый «DWORD» и попробуйте два значения ноль (0) и единицу (1). Если оба варианта не работают, измените параметр «ProhibitIpSec» на ноль (0).
Почему я не могу назвать точные значения параметра? — Дело в том, что все зависит от того, какое шифрование использует конечный сервер, к которому вы подключаетесь. Если сервер использует зашифрованный канал, значение должно быть 1, если нет, то 0. И я говорю только о параметре «AllowL2TPWeakCrypt». Если сервер использует параметры проверки IP Sec, нам понадобится второй параметр, который мы создали ранее.
И в результате вам придется попробовать 4 разных варианта. Но вы об этом не узнаете, и лучше все проверить экспериментально. Я понимаю, что это немного неудобно, но только так вы сможете понять, какой тип соединения использует сервер, к которому вы подключаетесь.
Параметр «AllowL2TPWeakCrypt» используется для шифрования «Message Digest 5 (MD5)» и «DES (стандарт шифрования)». Он используется для туннелирования IPSec. По умолчанию в некоторых версиях Windows он отключен. Но используется ли он на сервере? — вам никто не ответит, поэтому здесь вам придется проверить оба параметра.
Например, Билайн не использует шифрование, но если вы подключаетесь к корпоративной сети, там должен быть включен IPSec. После каждого изменения необходимо перезапустить систему, чтобы значения реестра вступили в силу.
Разрешить подключение к L2TP/IPSec VPN серверу за NAT
Если целевой L2TP VPN-сервер находится за NAT, с настройками по умолчанию вы не сможете подключиться к нему с компьютера под управлением Windows. Дело в том, что протокол IPsec не поддерживает NAT. Чтобы обойти это ограничение, используется NAT-T, который инкапсулирует пакеты IPsec в UDP/4500.
IPSec использует протокол инкапсуляции безопасности полезной нагрузки (ESP) для шифрования пакетов, а протокол ESP не поддерживает преобразование адресов PAT/портов.
NAT-T включен по умолчанию практически во всех операционных системах (iOS, Android, Linux), кроме Windows.
Если VPN-сервер L2TP/IPsec расположен за NAT, необходимо внести изменения в реестр как на сервере, так и на клиенте Windows, чтобы правильно подключать удаленные клиенты через NAT и разрешить инкапсуляцию пакетов UDP для L2TP и поддержку (NAT). -T) для IPsec.
- откройте редактор реестра regedit.exe и перейдите в ветку:
- Для Windows 10,8.1,7 и Windows Server 2016,2012R2,2008R2 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
- Для Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
- Создайте значение DWORD с именем AssumeUDPEncapsulationContextOnSendRule и значением 2;
Примечание. Возможные значения параметра AssumeUDPEncapsulationContextOnSendRule:- 0 – (значение по умолчанию), предполагается, что VPN-сервер подключен к Интернету без NAT;
- 1 – VPN-сервер находится за NAT;
- 2 — и VPN-сервер, и клиент находятся за NAT.
- Остается только перезагрузить компьютер и убедиться, что VPN-туннель успешно установлен.
Если и VPN-сервер Windows, и клиент находятся за NAT, необходимо изменить этот параметр в обеих системах.
Вы можете использовать командлет PowerShell для внесения изменений в реестр:
Set-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetServicesPolicyAgent» -Name «AssumeUDPEncapsulationContextOnSendRule» -Type DWORD -Value 2 –Force
После включения поддержки NAT-T вы сможете подключаться к VPN-серверу от клиента через NAT (в том числе двойной NAT). В этом случае при установке соединения L2TP/IPsec сначала устанавливается зашифрованный канал IPsec (используются протокол IKE: UDP/500 и NAT-T: UDP/4500). После этого L2TP-туннель внутри IPsec поднимается на UDP-порт 1701. Это значит, что если VPN-сервер находится за NAT, то не нужно пробрасывать на него UDP-порт 1701 с внешнего маршрутизатора/маршрутизаторов.