Web VPN, SSL VPN или AnyConnect VPN - это названия одной и той же технологии, которая позволяет пользователю подключаться к сети предприятия извне, используя протокол HTTPS.
Существуют различные протоколы, позволяющие туннелировать IP пакеты, т.е. создавать виртуальную частную сеть, например IPSec или PPTP, но для конечного пользователя проблема заключается в том, что не все провайдеры пропускают наружу все порты.
Очень часто из интернет кафе мы можем использовать только лишь соединения http и https. Тут как раз и не обойтись без AnyConnect SSLVPN.
С AnyConnect мы можем подключаться из любой заправки или Аэропорта по безопасному соединению.
AnyConnect на сегодняшний день передовая технология от Cisco, которая полноценно пришла на замену старого клиента "Cisco systems VPN Client".
AnyConnect активно поддерживается и регулярно обновляется; существуют дистрибутивы AnyConnect для Windows, Linux, Android, iOS: можно подключаться не только из любого места, но и с использованием практически любого устройства.
Данная статья есть переработанный материал Web VPN: подключение отовсюду, и ориентирована на настройку anyconnect на Cisco IOS Router.
Если у вас Cisco ASA, см. Работа с ASA Anyconnect SSL VPN HUB
Следует отметить, что под работу anyconnect гораздо лучше "заточена" Cisco ASA, поэтому в крупных предприятиях имеет смысл поднимать выделенный сервер VPN на ASA.
С другой стороны, то что умеет делать IOS вполне достаточно для небольшого офиса или для дома.
CISCO891-K9
IOS Version 15.4(3)M4
Сам клиент можно скачать с сайта циски, при этом на роутер следует устанавливать пакеты с расширением .pkg
Существуют пакеты для Linux (32-bit), Linux 64-bit, macosx, win. Важно понимать, что для поддержки определённой ОС, должен быть установлен соответствующий пакет.
При первом подключении пользователи могут загрузить и установить соответствующий package на свою машину.
mkdir flash:/webvpn copy tftp://10.6.14.32/anyconnect-win-3.1.14018-k9.pkg flash:/webvpn/anyconnect-win-3.1.14018-k9.pkg copy tftp://10.6.14.32/anyconnect-macosx-i386-3.1.14018-k9.pkg flash:/anyconnect-macosx-i386-3.1.14018-k9.pkg copy tftp://10.6.14.32/anyconnect-linux-64-3.1.14018-k9.pkg flash:/anyconnect-linux-64-3.1.14018-k9.pkg
Далее устанавливаем пакеты. При установке нескольких пакетов необходимо выставить у пакетов sequence.
crypto vpn anyconnect flash:/webvpn/anyconnect-win-3.1.14018-k9.pkg sequence 1 crypto vpn anyconnect flash:/webvpn/anyconnect-macosx-i386-3.1.14018-k9.pkg sequence 2 crypto vpn anyconnect flash:/webvpn/anyconnect-linux-3.1.14018-k9.pkg sequence 3 crypto vpn anyconnect flash:/webvpn/anyconnect-linux-64-3.1.14018-k9.pkg sequence 4
SSL используется технологии Public Key Infrastructure (PKI) а также Digital Certificates.
Rivest-Shamir-Adleman (RSA) keypair необходима для формирования signing of the certificate.
В нашем случае мы будем генерировать сертификат для себя, т.е. Self-Signed Certificate, - для этого мы предварительно сгенерируем RSA keypair.
Router(config)#crypto key generate rsa label SSLVPN_KEYPAIR modulus 2048 The name for the keys will be: SSLVPN_KEYPAIR % The key modulus size is 2048 bits % Generating 2048 bit RSA keys, keys will be non-exportable... [OK] (elapsed time was 4 seconds)
Проверяем что у нас получилось:
Router#show crypto key mypubkey rsa SSLVPN_KEYPAIR % Key pair was generated at: 11:00:40 MSK Sep 30 2016 Key name: SSLVPN_KEYPAIR Key type: RSA KEYS Storage Device: not specified Usage: General Purpose Key Key is not exportable. Key Data: 30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101 00D7464D DD92F508 F9D736B5 8EC168E2 FFC3D9F1 A11D6372 C2ACCB66 1FDCDB93
Создаём PKI trustpoint. Common Name (CN) прописываем внешний IP адрес.
crypto pki trustpoint SSLVPN_CERT enrollment selfsigned subject-name CN=31.24.93.198 rsakeypair SSLVPN_KEYPAIR
Генерируем самоподписный сертификат:
Router(config)#crypto pki enroll SSLVPN_CERT The router has already generated a Self Signed Certificate for trustpoint TP-self-signed-3459063180. If you continue the existing trustpoint and Self Signed Certificate will be deleted. Do you want to continue generating a new Self Signed Certificate? [yes/no]: yes % Include the router serial number in the subject name? [yes/no]: no % Include an IP address in the subject name? [no]: no Generate Self Signed Router Certificate? [yes/no]: yes Router Self Signed Certificate successfully created
Проверяем созданный сертификат:
Router#show crypto pki certificates SSLVPN_CERT Router Self-Signed Certificate Status: Available Certificate Serial Number (hex): 01 Certificate Usage: General Purpose Issuer: hostname=zzzservice_890.zzz.local cn=31.24.93.198 Subject: Name: zzzservice_890.zzz.local hostname=zzzservice_890.zzz.local cn=31.24.93.198 Validity Date: start date: 11:32:51 MSK Sep 30 2016 end date: 04:00:00 MSK Jan 1 2020 Associated Trustpoints: SSLVPN_CERT
aaa new model aaa authentication login default local aaa authentication login vpn_ls local aaa authorization exec default local
Address Pool - задаёт адреса, которые будут раздаваться клиентам:
ip local pool ezvpn_pool 10.6.6.5 10.6.6.254
ip access-list extended ssl_vpn_acl permit ip any any ! ip access-list standard ssl_vpn_split_acl permit 10.6.0.0 0.0.255.255
Здесь ssl_vpn_acl задаёт адресацию, куда разрешено ходить клиентам VPN.
ssl_vpn_split_acl определяет Split Tunnel, т.е. на клиенте трафик в сторону 10.6.0.0 0.0.255.255 будет отправлен в туннель, всё остальное согласно локальной маршрутизации. Без этого весь трафик будет направлен в туннель, что будет неудобно для клиента.
При каждом VPN-подключении позволяет создаётся отдельный виртуальный интерфейс на основе шаблона VTI, виртуальный интерфейс работает подобно физическому, благодаря чему есть поддержка QoS, firewall, per-user attribtues и др.
Подробнее:
http://www.cisco.com/en/US/docs/ios/12_3t/12_3t14/feature/guide/gtIPSctm...
interface Loopback1 ip address 10.6.6.1 255.255.255.255 ! interface Virtual-Template 1 ip unnumbered Loopback1
WebVPN Gateway определяет IP адрес и порт, на котором будет жить anyconnect, а также encryption algorithm и PKI certificate.
webvpn gateway SSLVPN_GATEWAY ip address 31.24.93.198 port 443 http-redirect port 80 ssl trustpoint SSLVPN_CERT inservice
WebVPN Context и Group Policy определяют ряд дополнительных параметров, которые будут использованы для подключения Anyconnect.
Context используется для кастомизации страницы и операций WebVPN.
Group Policy задаёт параметры подключения клиента: pool адресов, DNS и т.д.
webvpn context SSL_Context secondary-color white title-color #669999 text-color black ! acl "ssl_vpn_acl" virtual-template 1 aaa authentication list vpn_ls gateway SSLVPN_GATEWAY ! ssl authenticate verify all inservice ! policy group SSL_Policy functions svc-enabled svc address-pool "ezvpn_pool" netmask 255.255.255.0 svc default-domain "zzz.local" svc keep-client-installed svc split include acl ssl_vpn_split_acl svc dns-server primary 10.6.14.36 svc dns-server secondary 10.6.14.37 default-group-policy SSL_Policy
Теперь внешний клиент может набрать в браузере:
https://31.24.93.198
После ввода имени и пароля установится приложение клиента, позволяющее получить доступ к внутренним ресурсам компании.
Итак VPN клиент подключился и у нас всё прекрасно работает.
После этого, наверное первое что приходит в голову - это идея как-то разделять доступ между различными пользователями VPN, т.е. кому-то дать доступ ко всей сети, а кому-то может только к определённому IP адресу.
Вообще данная задача решается через использование ACL: например Cisco ASA позволяет использовать Downloadable ACL.
Автору так и не удалось применить на платформе cisco IOS Downloadable ACL или acl на основе av-pair.
К сожалению Cisco IOS позволяет разграничить права только на основе policy group.
Второе ограничение для IOS: принадлежность пользователя к policy group можно задать только через RADIUS.
Все эти ограничения делают настройки не такими удобными, но тем не менее задача реализуема.
Конфигурация будет примерно следующего вида:
aaa authentication login vpn_ls group rad_acs local aaa accounting network vpn_acc_ls start-stop group rad_acs ! aaa group server radius rad_acs server 10.6.14.249 ip radius source-interface GigabitEthernet0/1 ! ip access-list extended ssl_vpn_acl permit ip any any ip access-list extended ssl_vpn_guest_acl permit ip any host 10.6.14.32 ip access-list standard ssl_vpn_split_acl permit 10.6.0.0 0.0.255.255 ! webvpn gateway SSLVPN_GATEWAY ip address 31.44.93.198 port 443 http-redirect port 80 ssl trustpoint SSLVPN_CERT inservice ! webvpn context SSL_Context secondary-color white title-color #669999 text-color black ! acl "ssl_vpn_acl" virtual-template 1 aaa authentication list vpn_ls aaa accounting list vpn_acc_ls gateway SSLVPN_GATEWAY ! ssl authenticate verify all inservice ! policy group SSL_Policy functions svc-enabled svc address-pool "ezvpn_pool" netmask 255.255.255.0 svc default-domain "zzz.local" svc keep-client-installed svc split include acl ssl_vpn_split_acl svc dns-server primary 10.6.14.36 svc dns-server secondary 10.6.14.37 ! policy group SSL_guest_Policy functions svc-enabled filter tunnel ssl_vpn_guest_acl svc address-pool "ezvpn_pool" netmask 255.255.255.0 svc default-domain "zzz.local" svc keep-client-installed svc split include acl ssl_vpn_split_acl svc dns-server primary 10.6.14.36 svc dns-server secondary 10.6.14.37 default-group-policy SSL_Policy
Как видно, мы создали дополнительную policy group.
Единственное различие политики SSL_guest_Policy - это появление дополнительного ACL:
filter tunnel ssl_vpn_guest_acl
Принадлежность пользователей к политикам будут определяться через RADIUS.
Одна из групп должна быть определена как default-group-policy, на тот случай, если группа не определена явно.
В качестве RADIUS применяем Cisco ACS, рассмотрим его настройки:
Состояние пула адресов:
show ip local pool
Текущие сессии:
show webvpn session context all
Статистика по пользователю:
show webvpn session user vs context all
Статистика по туннелю:
show webvpn stats tunnel
Общая статистика:
show webvpn stats
Дебаг:
debug webvpn
Источник:
http://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mob...
SUPPORTING MULTIPLE GROUP POLICIES ON ANYCONNECT
Administrators and engineers who have worked with the classic Cisco IPSec VPN client will wonder how they can support multiple groups with different access rights using AnyConnect. The fact is that AnyConnect does support multiple groups, however it requires a radius server at the backend.
AnyConnect on a Cisco router without a radius server will only allow support for one group policy.
Использование нескольких group policy:
http://blog.dchidell.com/2016/03/21/cisco-ios-ssl-webvpn/
http://www.anticisco.ru/forum/viewtopic.php?f=2&t=8430&view=next
Комментарии
Спасибо за статью! У меня
Спасибо за статью! У меня маршрутизатор 2901 с ios c2900-universalk9-mz.SPA.153-3.M3.bin, там нет некоторых команд, указанных в статье. Может быть у вас есть ссылочка где я могу скачать более новый ios? Про сайт циско.ком, мне известно)
посмотрите show ver, вероятно
версия у вас нормальная
посмотрите show ver, вероятно у вас неактивирована лицензия security
Точно, неактивирована. Что-то
Точно, неактивирована. Что-то сам не глянул, спасибо)
Спасибо за статью!
Спасибо за статью!
но у меня на 2811 (c2800nm-advipservicesk9-mz.151-4.M10.bin) пакеты конфигуряться такой командой
webvpn install svc flash:/webvpn/anyconnect-win-4.3.03086-k9.pkg sequence 1
И можно ведь и без Virtual
И можно ведь и без Virtual интерфейса делать?
http://www.cisco.com/cisco/web/support/RU/107/1071/1071235_110608-ssl-io...
В вашем примере как раз
В вашем примере как раз используется
virtual-template 1
MSK-R1-c2811(config)#crypto
MSK-R1-c2811(config)#crypto vpn ?
% Unrecognized command
MSK-R1-c2811(config)#webvpn ?
cef Enable data process in CEF path
context Specify webvpn context
gateway Virtual Gateway configuration
import Import files
install Install package command
sslvpn-vif SSLVPN Virtual Interface commands
Да, платформы 18, 28 и 38
Да, платформы 18, 28 и 38 "заморозили" на версии 151, - типа покупайте ISR gen2.
Для 151 используйте webvpn install svc. По моему это единственное отличие в контексте anyconnect
Добрый день! Подскажите, как
Добрый день! Подскажите, как загрузить честный сертификат?
Этот впорос подробно
Этот впорос подробно описывается в материале
Работа с ASA Anyconnect SSL VPN HUB
Добрый день ! Подскажите
Добрый день ! Подскажите пожалуйста, возможно ли настроить SSL VPN по Вашей инструкции без статического адреса, используя только ddns ? И если да, что писать в секции WebVPN Gateway - там по умолчанию требуется ввести IP.
Добрый день,
Добрый день,
там также можно привязаться к интерфейсу:
ip interface gigabitEthernet 0 port 443
Добрый день!
Добрый день!
Спасибо за статью, не подскажите, соединение устанавливается, но пинги не проходят и в консоль роутера "сыпется" такое: *Feb 2 16:31:14.178: -Traceback= 64C8A378z 64C8C010z 64D33D6Cz 64D33E1Cz 64D33F9Cz 64D39110z 61FB4CB8z 600103A4z 603609F8z 60366614z.
Эмулирую через GNS 1.4.1. Образ роутера c7200-adventerprisek9-mz.152-4.M8.bin
Есть предположение, что именно из-за виртуализации не работает. Здесь же настраивал EasyVPN с крипто мапами и(или) через VTI все прекрасно работает. А с SSL VPN беда.
Можно попробовать IOS
Можно попробовать IOS поставить более свежий
Попробовал накидать это в
Попробовал накидать это в 1812, стартовая страничка есть, логинимся, жмем Application Access
Tunnel Connection (AnyConnect) Start, всплывающее окно и... не удается найти страницу. https://**.**.**.**/CACHE/webvpn/stc/1/index.html
Ой, сам дурак, клиента
Ой, сам дурак, клиента загрузил но не проинсталировал. :) Дальше вроде как всё хорошо, клиент качается ставится, но вот дальше не понимаю, во первых в поле сервера подключения почему то пусто, а если туда забить руками адресок то вылетает красное окно Untrusted server blocked! Ну ОК отключаем в настройках, теперь орет Untrusted server sertificate Уфф... ну на поверим... Можно ли этих проблем как то избежать?
Да, можно, вам понадобится
Да, можно, вам понадобится Anyconnect SSL VPN using 3rd Party CA, см.
Работа с ASA Anyconnect SSL VPN HUB
Вы не авторизированы для
Вы не авторизированы для доступа к этой странице.
Добрый день. Спасибо за
Добрый день. Спасибо за статью). Не могу настроить на своем роутере anyconnect(. Подскажите какой IOS взять и какой .pkg для Windows клиентов что бы заработал ВПН на C3845-ADVSECURITYK9-M ? Вообще SSL VPN будет работа на этом железе?
Вообще у меня работал, но
Вообще у меня работал, но 3845 уже не поддерживаются, и вероятны проблемы с новыми версиями anyconnect.
С другой стороны на avito за 30к можно найти asa5506 поддерживающую до 50 подключений
Добрый день! Создал тестовую
Добрый день! Создал тестовую среду на 2911. Есть проблема. Если IP POOL для клиентов раздается из адресов внутренней сети (например сеть 192.168.1.0/25, IP POOL - 192.168.1.50-60), то внутренние ресурсы доступны. Если пул из другой сети (например - 192.168.2.10-20), то пинга в нужную сеть нет. Как правильно прописать маршрут в нужную сеть? Через IP ROUTE или через Policy?
С уважением.
Разобрался. Ничего не нужно.
Разобрался. Ничего не нужно. Проблема была в топологии тестовой среды.
Добрый день. А можно ли как
Добрый день. А можно ли как то отключить Web интерфейс, чтобы только по клиенту можно было достучаться?
Добрый день! не тестировали
Добрый день! не тестировали Cisco AnyConnect + роутеры ESR ?
Они не совместимы, только
Они не совместимы, только если AnyConnect как l2tp клиент
Добавить комментарий