Содержание
Вчера столкнулся с этой проблемой у своего брата. Суть проблемы в том, что в Windows 7 через некоторое время может отказываться запускаться любые тунеллированные соединения, такие как PPPoE или VPN. При попытке соединения выпадает ошибка 711.
Говорят это косяк некой «январской сборки» Windows 7.
Решил собрать тут некоторые способы по устранению этой ошибки.
Общий смысл заключается в том, что эта ошибка возникает из-за того что одна из сетевых служб не может стартовать. Чаще всего это Служба SSTP.
Итак :
Способ 1. Нужно зайти в сервисы и переделать в свойствах нижеследующих служб тип запуска с авто(Auto) на Ручной (Manual):
Служба шлюза уровня приложения.
Plug and Play.
Диспетчер автоматического подключения удаленного доступа.
Диспетчер подключения удаленного доступа.
Удаленный вызов процедур (RPC).
Телефония.
Служба SSTP
И попробовать их перезапустить. Возможно одна из служб, например «Диспетчер подключения удаленного доступа» может ругануться, что не может запуститься, так как одна из дочерних служб не может быть запущена. Эта не запускаемая служба и есть SSTP. Первый способ заключается в том чтобы поменять тип запуска у службы SSTP на ручной и поменять учетную запись от которой она запускается на LocalService. Делается это так:
Свойства -> вкладка Вход в систему -> Выбрать С учетной записью -> Нажать кнопку Обзор -> кнопку Дополнительно -> кнопку Поиск. В списке выбрать Local Service и два раза OK.
Далее нажать Применить и пробовать запустить сервис. Если он нормально запустится, значит остальные сетевые сервисы тоже нормально запустятся и ошибка должна исчезнуть.
Способ 2. Для реализации этого способа надо что бы под рукой у вас был какой нибудь LiveCD у которого есть возможность исправлять файлы на жестком диске. Впринципе скорее всего пойдет и консоль восстановления Windows, которую можно запустить с установщика винды.
После того как загрузились с LiveCD надо найти логический диск где установлена Windows 7 и пройти по следующему пути Диск:WindowsSystem32 . Там найти папку LogFiles и переименовать ее в произвольное название, например LogFiles_old. Далее загрузиться уже в самой Windows 7 и попробовать подключится. Если все сделано правильно, подключение создастся и все будет нормально, по крайней мере некоторое время.
Способ 3. Заключается в правке реестра. Он не применим к VPN соединениям, так как исключает SSTP из зависимостей и он не будет стартовать.
Открываем regedit и следуем по следующему пути : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasMan
Там находим параметр DependOnService, открываем его и удаляем строку содержащую sstp, сохраняем и перезагружаемся. После перезагруки остальные сетевые сервисы должна нормально стартовать и PPPoE должен корректно работать. VPN соединения скорее всего работать не будут, но я не пробовал.
—
В принципе я вчера обошелся вторым способом. Если один из способов не работает, можно попробовать их скомбинировать.
Если есть еще какие то способы решения этой проблемы, пишите, я дополню статью.
Примечание: OpenVPN является программным обеспечением VPN. Если у вас возникли проблемы с программой, которую вы загрузили с нашего сайта, то этот раздел для вас.
Программа ZenVPN не запускается.
Проверьте C:Program FilesenVPN OpenVPN bundlezenvpn.log на наличие сообщений об ошибках.
Как правило, это происходит, когда клиент не может обнаружить OpenVPN на компьютере. Это будет указано в следующей строке в файле лога:
Если это причина, то попробуйте перейти Control Panel -> Административные инструменты -> Сервесы, местонахождение OpenVPN Service и запустить его. Если служба запускается успешно, и вы можете запустить OpenVPN после этого, убедитесь, что служба настроена на автоматический запуск.
OpenVPN сервис не запускается
Если Oper VPN сервис не запускается, то причину обычно можно найти, если посмотреть на Контрольную панель -> Административные инструменты -> Просмотр событий -> Система.
Самая распространённая причина заключается в проблемах с TAP драйвером. Если лог событий указывает на то, что причина в вашем действии, попробуйте сделать следующее:
- Установите TAP драйвер с сайта OpenVPN
- Установите драйвер TAP и выберите все доступные компоненты во время установки
- Run C:Program FilesTAP-Windowsinaddtap.bat
VPN-соединение установлено, но веб-сайты недоступны
Чаще всего это вызвано ошибкой в Windows, которая предотвращает OpenVPN от изменения имён системных серверов. Попробуйте установить их вручную Google’s public DNS servers- они должны работать независимо от того, подключены вы к VPN или нет.
Нашёл буквально несколько упоминаний о SSTP на Хабре, в связи с чем хочу рассказать про устройство этого протокола. Secure Socket Tunneling Protocol (SSTP) – протокол VPN от Microsoft, основанный на SSL и включённый в состав их ОС начиная с Windows 2008 и Windows Vista SP1. Соединение проходит с помощью HTTPS по 443 порту. Для шифрования используется SSL, для аутентификации — SSL и PPP. Подробнее про устройство — под катом.
Серверная часть протокола включена в ОС Windows Server 2008, 2008 R2, 2012, 2012 R2. Далее рассказывается про текущую (и, кажется, единственную) версию — 1.0.
В основном используется для подключения типа узел-узел или узел-сеть. По умолчанию для соединения используется 443 порт, но можно настроить и на другие порты.
Условная схема пакета с данными
Условно стек протоколов при передаче данных выглядит так (показаны только заголовки, относящиеся к VPN, без подлежащих уровней):
Структура собственно SSTP пакета:
Флаг C = 0 если пакет с данными, и C = 1, если пакет управляющий.
Немного слов об используемой криптографии
Порядок установления соединения
1. Клиентом устанавливается TCP соединение на 443-ий порт SSTP сервера.
2. Проходит установление SSL/TLS соединения поверх TCP соединения. Клиент проверяет сертификат сервера.
3. Проходит HTTPS приветствие.
4. Начинается установление SSTP соединения. Все SSTP пакеты идут внутри HTTPS. Клиент посылает запрос на установление соединения (Call Connect Request message). В этом сообщении передаётся номер протокола, который будет использоваться внутри SSTP; в текущей версии стандарта это всегда PPP.
5. Сервер проверяет запрос и, если всё ОК, отвечает на него подтверждением (Call Connect Acknowledge message), в котором сообщает 32-битное случайное число (ClientNonce), используемое в следующем ответе клиента для защиты от повторения, а так же список хэш-функций для подписи следующего ответа (SHA1 и/или SHA256).
6. Происходит PPP авторизация. Все пакеты PPP вложены в SSTP пакеты и, соответственно, зашифрованы SSL.
7. Клиент посылает Call Connected message, в которое включаются ClientNonce и Хэш сертификата сервера (ClientCertificateHash), полученного при установлении SSL соединения.
Это сообщение подписывается с помощью указанной сервером хэш-функции (точнее HMAC на её основе) и ключа, полученного в процессе PPP авторизации. Таким образом осуществляется cryptographic binding. Если для авторизации в PPP используется протокол, не поддерживающий генерацию ключей для MPPE (PAP или CHAP), то HMAC вычисляется с использованием ключа, равного нулю; т. е. фактически cryptographic binding не производится и описанная выше атака человек посередине возможна.
8. Сервер проверяет Call Connected message, на этом SSTP считается установленным.
9. Заканчивается установление параметров PPP.
Всё, соединение установлено. Дальше стороны обмениваются пакетами с данными.
Обрыв соединения
Что бы отличить простой канала от разрыва связи стороны «пингуют» друг друга. Если в течение 60 секунд обмена пакетами не было, посылается Echo Request (управляющий пакет протокола SSTP). Если в течение следующих 60 секунд нет ответа, соединение разрывается.
Завершение соединения
Завершение соединения происходит без особых нюансов, стороны обмениваются SSTP-сообщениями об окончании соединения и через несколько секунд рвут соединение.