- Проблема при работе с L2TP/IPSec под Windows которая не решается годами
- Есть ли решение проблемы при работе с L2TP/IPSec в Windows?
- Комментариев: 5
- Исправляем проблему подключения к L2TP/IPSec VPN серверу за NAT
- VPN ошибка 809 для L2TP/IPSec в Windows за NAT
- L2TP VPN не работает на некоторых Windows компьютерах в локальной сети
- Настройка VPN (L2TP/IPsec) для Windows и MacOS. Бесплатные серверы VPN Gate
- Содержание
- Настройка VPN (L2TP/IPsec) для Windows
- Предварительная конфигурация
- Важная информация
- Примечание
- Подключение к VPN-серверу
- Интернет без ограничений
- Настройка VPN (L2TP/IPsec) для MacOS
- Предварительная конфигурация
- Важная информация
- Примечание
- Запуск VPN -подключения
- Интернет без ограничений
Проблема при работе с L2TP/IPSec под Windows которая не решается годами
Изначально, не планировал выделять для данного материала отдельный пост, но так как проблема не решается годами, решил рассказать о ней чуть подробнее. Проблема заключается в том, что из локальной сети, имеющей единственный выход в Интернет, невозможно установить одновременно более одного соединения к внешнему L2TP/IPSec VPN серверу с компов под управлением Windows.
Допустим, у вас заведено несколько пользователей на внешнем VPN L2TP сервере. По отдельности, каждый из них спокойно устанавливает соединение с сервером и работает стабильно, без сбоев. Любые попытки одновременной работы с VPN сервером других пользователей сети, использующих один внешний IP, прерывают работу друг друга, возвращая в журнал Windows код ошибки 809.
Наблюдается такой эффект исключительно на компьютерах под управлением ОС Windows, начиная с XP и заканчивая «десяткой». Причём на Linux и MacOS всё прекрасно работает вне зависимости от того, сколько одновременно клиентов подключается к удалённому L2TP/IPSec серверу. Так что это проблема не в настройках VPN сервера или роутера, как пишут на многих форумах (да и сами мелкомягкие), а именно в некорректной работе встроенного L2TP/IPSec клиента на Windows.
Честно говоря, ранее эта проблема обходила меня стороной. Всегда использовал OpenVPN и столкнулся с ней впервые только сейчас, после поднятия L2TP VPN-сервера на роутере Keenetic. После чего и было принято решение объединять сети офисов между собой, а не давать доступ отдельным клиентам, но об этом расскажу в следующей статье.
Есть ли решение проблемы при работе с L2TP/IPSec в Windows?
Но неужели Microsoft не знает о проблеме? Знает. Как оказалось, проблема давно известна и описана в статье https://support.microsoft.com/en-us/kb/926179. Но вот с решением беда.
Если совсем кратко, то там говорится что в случае, когда VPN сервер L2TP/IPsec находится за NAT, для корректного подключения внешних клиентов через NAT необходимо на стороне сервера и клиента внести изменение в реестр, разрешавшее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec.
К сожалению, добавление в реестр параметра DWORD с именем UDPEncapsulationContextOnSendRule и значением ( ), о котором также написано в статье, проблемы не решает.
Параметр UDPEncapsulationContextOnSendRule добавляется в ветку реестра:
- для Windows XP — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
- для Windows Vista/7/8/10 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
В сети можно найти упоминание ещё пары дополнительных ключей реестра и отключении одной службы, связанной с играми, но вся эта неведомая магия не работает. Как только появляется другой клиент под виндой, твоё соединение отваливается.
Чтобы получить хоть какую-то пользу (кроме моего негативного опыта) от моего поста, собрал несколько ссылок по теме L2TP/IPsec и NAT-T в Windows:
- Настройка сервера L2TP/IPsec за устройством NAT-T в Windows: https://support.microsoft.com/ru-ru/help/926179/how-to-configure-an-l2tp-ipsec-server-behind-a-nat-t-device-in-windows
- Реализация L2TP/IPsec VPN сервера стандартными средствами Windows 7/8 для подключения Windows/iOS/Android систем к внутренней сети: https://habr.com/ru/post/210410/
- IPSec — протокол защиты сетевого трафика на IP-уровне: https://www.ixbt.com/comm/ipsecure.shtml
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Комментариев: 5
Месяц я мучился с WINDOWS 10 Pro .
Мелкософтцы запарили своими багами
Смог наконец то избавиться от ошибки 809.
VPN на Server 2008 R2, клиент Windows 10
2 недели мучился, на Windows 7, Windows 10
СПАСИБО параметры народ)
У меня получилось так. VPN на Server 2008 r2, клиенты на Win 7 и 10. Все за NATом.
Однако клиенты на мобильном интернете не могут подключиться по L2TP, а на Мегафоне и по PPTP.
Исправляем проблему подключения к L2TP/IPSec VPN серверу за NAT
Столкнулись с интересной проблемой у одного из заказчиков после перенастройки VPN сервера Windows Server 2012 с PPTP на L2TP/ IPSec (из за отключения поддержки PPTP VPN в iOS). Изнутри корпоративной сети VPN клиенты без каких-либо проблем подключаются к VPN серверу, а вот внешние Windows клиенты при попытке установить соединение с L2TP VPN сервером, выдают такую ошибку:
The network connection between your computer and the VPN server could not be established because the remote server is not responding. This could be because one of the network devices (e.g. firewalls, NAT, routers, etc) between your computer and the remote server is not configured to allow VPN connections. Please contact your Administrator or your service provider to determine which device may be causing the problem.
В других версиях Windows о наличии аналогичной проблемы могут свидетельствовать ошибки VPN подключения 800, 794 или 809.
Стоит отметить, что данный VPN сервер находится за NAT, а на маршрутизаторе настроен проброс портов, необходимых для работы L2TP:
- UDP 1701 — Layer 2 Forwarding Protocol (L2F) & Layer 2 Tunneling Protocol(L2TP)
- UDP 500
- UDP 4500 NAT-T – IPSec Network Address Translator Traversal
- Protocol 50 ESP
В правилах Windows Firewall VPN сервера эти порты также открыты. Т.е. используется классическая конфигурация. Для подключения используется встроенный VPN клиент Windows.
VPN ошибка 809 для L2TP/IPSec в Windows за NAT
Как оказалось, проблема эта уже известна и описана в статье https://support.microsoft.com/en-us/kb/926179. По умолчанию встроенный VPN клиент Windows не поддерживает подключение к L2TP/IPsec через NAT. Дело в том, что IPsec использует протокол ESP (Encapsulating Security Payload) для шифрования пакетов, а протокол ESP не поддерживает PAT (Port Address Translation). Если вы хотите использовать IPSec для коммуникации, Microsoft рекомендует использовать белые IP адреса на VPN сервере.
Но есть и обходное решение. Можно исправить этот недостаток, включив поддержку протокола NAT—T, который позволяет инкапсулировать пакеты протокола ESP 50 в UDP пакеты по порту 4500. NAT-T включен по-умолчанию почти во всех операционных системах (iOS, Android, Linux), кроме Windows.
Если VPN сервер L2TP/IPsec находится за NAT, то для корректного подключения внешних клиентов через NAT необходимо на стороне Windows сервера и клиента внести изменение в реестр, разрешающее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec.
- Откройте редактор реестра regedit.exe и перейдите в ветку:
- Для Windows 10,8.1,7 и Windows Server 2016,2012R2,2008R2 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
- Для Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
- Создайте DWORD параметр с именем AssumeUDPEncapsulationContextOnSendRule и значением 2;
- 0 – (значение по-умолчанию), предполагается, что VPN сервер подключен к интернету без NAT;
- 1 – VPN сервер находится за NAT;
- 2 — и VPN сервер и клиент находятся за NAT.
Set-ItemProperty -Path «HKLM:SYSTEM\CurrentControlSet\Services\PolicyAgent» -Name «AssumeUDPEncapsulationContextOnSendRule» -Type DWORD -Value 2 –Force;
После включения поддержки NAT-T, вы сможете успешно подключаться к VPN серверу с клиента через NAT (в том числе двойной NAT).
L2TP VPN не работает на некоторых Windows компьютерах в локальной сети
Есть еще один интересный баг. Если в вашей локальной сети несколько Windows компьютеров, вы не сможете установить более одного одновременного подключения к внешнему L2TP/IPSec VPN серверу. Если при наличии активного VPN туннеля с одного клиента, вы попытаетесь подключиться к тому же самому VPN серверу с другого компьютера, появится ошибка с кодом 809 или 789:
По информации на TechNet проблема связана с некорректной реализацией клиента L2TP/IPSec клиента в Windows (не исправляется уже много лет).
Для исправления этого бага нужно изменить два параметра реестра в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters и перезагрузите компьютре:
- AllowL2TPWeakCrypto – изменить на 00000001 (ослабляет уровень шифрования, для L2TP/IPSec используются алгоритмы MD5 и DES)
- ProhibitIPSec – изменить на 00000000 (включает шифрование IPsec, которое часто отключается некоторыми VPN клиентами или утилитами)
Для изменения этих параметров реестра достаточно выполнить команды:
reg add «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters» /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters» /v ProhibitIpSec /t REG_DWORD /d 0 /f
Это включает поддержку нескольких одновременных L2TP/IPSec-подключений в Windows через общий внешний IP адрес (работает на всех версиях, начиная с Windows XP и заканчивая Windows 10).
Настройка VPN (L2TP/IPsec) для Windows и MacOS. Бесплатные серверы VPN Gate
Содержание
Настройка VPN (L2TP/IPsec) для Windows
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate с помощью L2TP/IPsec VPN клиента, встроенного в операционные системы Windows 10, 8.1, 8, 7, Vista, XP, RT, Server 2019, 2016 и 2003, 2008, 2012.
Предварительная конфигурация
- Чтобы открыть Центр управления сетями и общим доступом (также доступен в меню Панель управления > Сеть и Интернет), нажмите сочетание клавиш Windows + R и в окне «Выполнить» введите следующую команду:
- Нажмите ОК.
- Выберите опцию Создание и настройка нового подключения или сети на основной странице Центра управления сетями.
- Выберите вариант Подключение к рабочему месту.
- Затем выберите Использовать мое подключение к Интернету (VPN).
- Откройте список публичных серверов ретрансляции http://www.vpngate.net/en/ и выберите VPN-сервер, к которому хотите подключиться.
Важная информация
Для столбца L2TP/IPsec Windows, Mac, iPhone, Android No client required в списке серверов должна быть отмечена галочка, которая сообщает о поддержке настраиваемого протокола L2TP/IPsec.
Вы можете применить фильтр поиска серверов Apply search filters, оставив галочку L2TP/IPsec и нажав кнопку Refresh Servers List, как показано на скриншоте выше
- Скопируйте имя узла DDNS (идентификатор, который заканчивается на «.opengw.net») или IP-адрес (цифровое значение xxx.xxx.xxx.xxx) и введите его в поле “Адрес в Интернете”.
Примечание
Рекомендуется использовать имя DDNS – его можно продолжать использовать, даже если соответствующий DDNS IP-адрес в будущем изменится. Тем не менее, в некоторых странах у вас не получиться использовать имя узла DDNS – в этом случае следует использовать IP-адрес.
- Если появится экран ввода имени пользователя и пароля, то введите vpn в оба поля. Также можно отметить галочку “Запомнить пароль”.
- Затем перейдите в Центр управления сетями и общим доступом и нажмите ссылку Изменение параметров адаптера, или нажмите сочетание клавиш Windows + R и в окне «Выполнить» введите следующую команду:
- Будет показан список настроенных подключений. Щелкните правой кнопкой мыши по иконке VPN-подключения, созданного на предыдущем шаге и нажмите “Свойства”.
- Перейдите на вкладку Безопасность и в поле «Тип VPN» из выпадающего списка выберите вариант Протокол L2TP с IPsec (L2TP/IPsec). Для параметра «Шифрование данных» выберите обязательное (отключиться, если нет шифрования).
- Затем нажмите кнопку Дополнительные параметры. Появится новое окно, на котором нужно выбрать опцию “Для проверки подлинности использовать общий ключ” и введите vpn в поле “Ключ”.
- После завершения конфигурации дважды нажмите кнопку “ОК”, чтобы закрыть экран настроек подключения VPN.
Подключение к VPN-серверу
- Нажмите по значку значку Сеть (интернет) в области уведомления панели задач (системном трее) и выберите созданное VPN подключение. Нажмите кнопку “Подключиться”.
- Если Имя пользователя и Пароль не заполнены автоматически, то введите vpn в оба поля и нажмите ОК.
- При попытке подключения будет показываться сообщение “Подключение к [выбранный VPN-сервер]”. Если при попытке произойдет ошибка, то убедитесь, что в качестве типа VPN используется «L2TP/IPsec», а ключ проверки подлинности задан правильно.
- Если VPN-соединение будет успешно установлен, то в списке сетей появится новый пункт “VPN-подключение” с состоянием “Подключено».
- Теперь вы сможете быстро и просто устанавливать VPN-подключение с помощью соответствующей иконки в списке сетей.
Интернет без ограничений
Когда соединение установлено, весь сетевой трафик будет проходить через VPN-сервер. Убедиться в этом вы сможете с помощью команды tracert 8.8.8.8 в командной строке Windows.
Как показано на скриншоте выше, если пакеты проходят через «10.211.254.254», а значит ваше подключение ретранслируется через один из серверов VPN Gate.
Вы также можете перейти на основную страницу VPN Gate, чтобы посмотреть глобальный IP-адрес. Вы сможете посмотреть видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
При подключении к VPN вы сможете посещать заблокированные веб-сайты и играть в заблокированные игры.
Настройка VPN (L2TP/IPsec) для MacOS
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate с помощью L2TP/IPsec VPN клиента, встроенного в операционную систему MacOS.
Предварительная конфигурация
- Нажмите по иконке сетевого подключения в верхнем-правом углу экрана Mac. Выберите Открыть настройки сети. в меню.
- Нажмите кнопку + на экране настройки сети.
- Выберите интерфейс «VPN», тип подключения «L2TP через IPsec» и нажмите кнопку «Создать».
- Будет создана новая конфигурация VPN (L2TP) и появится экран настроек соединения.
- На данном экране нужно ввести либо имя узла, либо IP-адреса сервера из пула открытых серверов VPN Gate.
- Откройте список публичных серверов ретрансляции http://www.vpngate.net/en/ и выберите VPN-сервер, к которому хотите подключиться.
Важная информация
Для столбца L2TP/IPsec Windows, Mac, iPhone, Android No client required в списке серверов должна быть отмечена галочка, которая сообщает о поддержке настраиваемого протокола L2TP/IPsec.
Вы можете применить фильтр поиска серверов Apply search filters, оставив галочку L2TP/IPsec и нажав кнопку Refresh Servers List, как показано на скриншоте выше
- Скопируйте имя узла DDNS (идентификатор, который заканчивается на «.opengw.net») или IP-адрес (цифровое значение xxx.xxx.xxx.xxx) и введите его в поле «Адрес сервера» на экране конфигурации.
Примечание
Рекомендуется использовать имя DDNS – его можно продолжать использовать, даже если соответствующий DDNS IP-адрес в будущем изменится. Тем не менее, в некоторых странах у вас не получиться использовать имя узла DDNS – в этом случае следует использовать IP-адрес.
- После того, как вы указали «Адрес сервера», введите vpn в поле «Имя учетной записи».
- Затем нажмите кнопку Настройки аутентификации.
- Появится экран настроек аутентификации. Введите vpn в поле «Пароль» и в поле «Общий ключ (Shared Secret)». После этого нажмите кнопку «ОК».
- Затем вернитесь на предыдущий экран, отметьте пункт Показывать статус VPN в строке меню и нажмите кнопку Дополнительно. .
- Откроется экран дополнительных настроек. Отметьте галочку Отправлять весь трафик через VPN и нажмите кнопку ОК.
- На экране настроек VPN-подключения нажмите кнопку «Применить», чтобы сохранить настройки соединение.
Запуск VPN -подключения
- Вы можете в любое время установить новое подключение к VPN-серверу, нажав кнопку «Подключить». Вы можете также запустить подключение к VPN, нажав иконку VPN на верхней панели инструментов MacOS.
- После установки VPN-подключения на экране настроек VPN будет отображаться статус «Подключено», а также вам новый IP-адрес и продолжительность подключения.
Интернет без ограничений
Когда соединение установлено, весь сетевой трафик будет проходить через VPN-сервер. Вы также можете перейти на основную страницу VPN Gate, чтобы посмотреть глобальный IP-адрес. Вы сможете посмотреть видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
При подключении к VPN вы сможете посещать заблокированные веб-сайты и играть в заблокированные игры.