Здравствуйте!
Несмотря на то, что Windows 8 compatibility center заявляет о полной совместимости Cisco VPN Client с новой операционкой, заставить работать этот клиент удалось только нетривиальными действиями и, увы, для многих случаев, кроме моего.
Надеюсь, однако, что информация будет полезна и, возможно, коллективный поможет решить проблему до конца.
Итак, дано: VPN, построенный на оборудовании Cisco и необходимость подключаться к нему под 64-битной Windows 8 Professional. Для начала устанавливаем последнюю доступную версию Cisco VPN Client 5.0.07.0440. Установка происходит без каких-то осложнений. Импортируем свой любимый .pcf с настройками подключения и пробуем подключиться. Дальше имеем проблемы:
Проблема номер один: ошибка «Reason 442: Failed to enable Virtual Adapter»
Решается эта проблема исправлением значения ключа в реестре, для этого:
- Открываем редактор реестра (набираем «regedit» в строке поиска, запускаем найденное приложение);
- Находим ветку HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCVirtA;
- Находим параметр DisplayName;
- Значение этого параметра содержит что-то вроде «oem4.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows». Необходимо изменить это значение, оставив только «Cisco Systems VPN Adapter for 64-bit Windows».
После корректировки реестра перезагрузка не требуется. Итак, виртуальный адаптер теперь благополучно находится, и, если аутентификация осуществляется по Shared Key (не требует сертификата клиента), проблемы на этом исчерпаны.
Если же аутентификация осуществляется по сертификату, имеем следующее:
Проблема номер два: «Reason 403: Unable to contact security gateway»
Подразумевается, что сертификат (не требующий private key на отдельном устройстве типа eToken) по обыкновению загружен в пользовательское хранилище сертификатов (User Storage). При этом в логе клиента имеем следующее сообщение: «Could not load certificate [описание сертификата] from store Microsoft User Certificate. Reason: store empty». То есть, несмотря на наличие сертификата в хранилище, VPN Client его не видит.
Нашлось два пути решения этой проблемы:
- Переместить сертификат из User Store в Local Computer Store;
- Изменить настройки службы «Cisco Systems, Inc. VPN Service» на закладке «Log On», заставив службу запускаться под пользовательским аккаунтом (тем же самым аккаунтом, под которым вошли в систему сами и пытаемся подключиться).
Переходим на следующий уровень: теперь у нас аутентификация по ключу с использованием e-token (Alladin). Имеем программу, поставляемую с ключом (eToken PKI Client), которая при подключении USB-токена к машине автоматически помещает находящийся на токене сертификат в пользовательское хранилище сертификатов (именно поэтому проблему номер два я решил вторым методом). При попытке подключения к VPN в такой конфигурации получаем следующую ошибку:
Проблема номер три (не решенная): «Reason 401: An unrecognized error occured while establishing the VPN connection»
В логе клиента можно увидеть сообщение «Failed to generate signature: signature generation failed» и прочие еще менее информативные формулировки. Здесь, к сожалению, тупик: сообщения лога не проливают свет на суть проблемы, в какую сторону копать дальше — не известно.
Надеюсь, не одинок в этом вопросе и кто-то окажется более сообразителен и удачлив.
UPD: В качестве альтернативного варианта для подключения можно использовать Shrew Soft VPN Client, который не имеет проблем при запуске в Windows 8 (статья про установку и настройку этой программы уже проскакивала на хабре). У программы один минус — не умеет работать с сертификатами из хранилищ сертификатов Windows (сертификаты нужно загружать из файла при настройке соединения), что для случая с ключом на eToken тоже не подходит.
Автор: Exial