Вы здесь

Web VPN: подключение отовсюду

Данная статья устарела, см. Установка AnyConnect SSLVPN на IOS Router

Web VPN, SSL VPN или any connect VPN - это названия одной и той же технологии, которая позволяет пользователю подключаться к сети предприятия из дома или по VPN используя протокол HTTPS.
Существуют различные протоколы, позволяющие туннелировать IP пакеты, т.е. создавать виртуальную частную сеть, например IPSec или PPTP, но для конечного пользователя проблема заключается в том, что не все провайдеры пропускают наружу все порты.
Очень часто из интернет кафе мы можем использовать только лишь соединения http и https. Тут как раз и не обойтись без Web VPN.

Рассмотрим практический пример настройки WebVPN:
WebVPN_scheme.jpg

Шаги настройки WebVPN

Сам клиент можно скачать с сайта циски:
http://software.cisco.com/download/type.html?mdfid=283000185&catid=null
Downloads Home > Products > Security > VPN and Endpoint Security Clients > Cisco VPN Clients > Cisco AnyConnect Secure Mobility Client

- Создаем директорию и копируем туда файлы клиента WebVPN
mkdir flash:/webvpn
copy tftp://10.5.14.32/anyconnect-win-2.5.6005-k9.pkg flash:/webvpn/anyconnect-win-2.5.6005-k9.pkg
copy tftp://10.5.14.32/anyconnect-macosx-i386-2.5.3055-k9.pkg flash:/webvpn/anyconnect-macosx-i386-2.5.3055-k9.pkg
copy tftp://10.5.14.32/anyconnect-linux-2.5.3055-k9.pkg flash:/webvpn/anyconnect-linux-2.5.3055-k9.pkg

! имя хоста маршрутизатора hostname core
! Доменное имя маршрутизатора ip domain-name domain.local

! Включаем AAA и настраиваем дефолтную и аутентификацию для VPN

aaa new model aaa authentication login default local aaa authentication login vpn_ls local

Генерируем сертификат для маршрутизатора:
core(config)#crypto pki trustpoint WEBVPN
core(ca-trustpoint)#enrollment selfsigned
core(ca-trustpoint)#rsakeypair WEBVPN 1024
core(ca-trustpoint)#crypto pki enroll WEBVPN
% Include the router serial number in the subject name? [yes/no]: no
% Include an IP address in the subject name? [no]:
Generate Self Signed Router Certificate? [yes/no]: yes

Router Self Signed Certificate successfully created

! Создаем ACL регулирующий куда пользователь может подключиться: ip access-list extended ssl_vpn_acl permit ip any any
! Создаем локальный пул адресов, для клиентов. Адреса принадлежат локальной сети внутреннего адаптера. ip local pool webvpn_pool 10.5.14.250 10.5.14.254
! Создаем пользователя WebVPN username vs password 0 0759781D
! Создаем webvpn gateway - здесь определяется адрес, порт и другие свойства сервера webvpn gateway gateway_1 ip address 82.237.40.108 port 443 ssl trustpoint WEBVPN inservice
! Этими командами подгружаются файлы клиента WebVPN, теперь клиент при подключении автоматически загрузит и установит приложение Cisco Anyconnect VPN Client webvpn install svc flash:/webvpn/anyconnect-win-2.5.6005-k9.pkg sequence 1 ! webvpn install svc flash:/webvpn/anyconnect-macosx-i386-2.5.3055-k9.pkg sequence 2 ! webvpn install svc flash:/webvpn/anyconnect-linux-2.5.3055-k9.pkg sequence 3
! Создается webvpn context, - это профиль настроек webvpn webvpn context SSL secondary-color white title-color #669999 text-color black ssl authenticate verify all ! acl "ssl_vpn_acl" ! ! policy group policy_1 functions svc-required functions svc-enabled svc keep-client-installed svc address-pool webvpn_pool netmask 255.255.252.0 svc split include 10.5.0.0 255.255.0.0 virtual-template 1 default-group-policy policy_1 aaa authentication list vpn_ls gateway gateway_1 inservice


Теперь внешний клиент может набрать в браузере:
https://82.237.40.108
После ввода имени и пароля установится приложение клиента, позволяющее получить доступ к внутренним ресурсам компании.

Ошибки при подключении клиента

Начиная с версии 2.4 клиент стал более требовательным к сертификатам и разрешению имён.
Если у вас вылезает ошибка "The certificate on the secure gateway is invalid. The VPN connect will not establish" это как раз по этой главе.

Приведу комментарий от циски:

This error occurs due to an issue documented in Cisco bug ID CSCtb73337 (registered customers only) . AnyConnect Client version 2.4 does not work with Cisco IOS headend when a certificate is used that is not trusted or there is mismatchin the host name entered in the URL to that to the CN (common name) or SAN (subject alternative name) in the Cisco IOS router certificate. AnyConnect 2.4 fails to connect with Cisco IOS headend due to certificate verify fail error. This issue can be resolved through one of these workarounds: - Make sure that the router certificate is trusted (import into certificate store) and then match the CN/SAN on the certificate to that of the URL. If there is no DNS entry, then you can use a local DNS entry by updating the host file for the host name in certificate. - Downgrade AnyConnect to a previous version: 2.3.

В нашем случае мы можем прописать cn для нашего сертификата:

conf t webvpn gateway gateway_1 no inservice no ssl trustpoint WEBVPN no crypto pki trustpoint WEBVPN crypto pki trustpoint WEBVPN enrollment selfsigned rsakeypair WEBVPN 1024 subject-name cn=195.239.55.142 crypto pki enroll WEBVPN ! % Include the router serial number in the subject name? [yes/no]: no % Include an IP address in the subject name? [no]: Generate Self Signed Router Certificate? [yes/no]: yes ! webvpn gateway gateway_1 ssl trustpoint WEBVPN inservice

Здесь единственное отличие от базового конфига это
subject-name cn=195.239.55.142
где 195.239.55.142 есть IP нашего шлюза.

Также сертификат должен быть установлен на компьютер клиента.
Инструкция по установке сертификата на компьютер клиента:
instrukciya_po_ustanovke_cisco_secure_mobility_client.doc

Еще вариант:

R1(config)# crypto key generate rsa label my-rsa-keys modulus 1024 The name for the keys will be: my-rsa-keys % The key modulus size is 1024 bits % Generating 1024 bit RSA keys, keys will be non-exportable... ! [OK] (elapsed time was 1 seconds)
crypto pki trustpoint my-trustpoint enrollment selfsigned subject-name CN=firewallcx-certificate rsakeypair my-rsa-keys ! crypto pki enroll my-trustpoint % Include the rou