ИВАН ПАНИН, инженер по технической информационной безопасности.
Сфера интересов: сетевые технологии, защита информации
WebVPN на базе Сisco IOS
Технология WebVPN организует эффективное VPN-взаимодействие, позволяющее мобильным сотрудникам получить доступ к корпоративным ресурсам.
VPN (Virtual Private Network – виртуальная частная сеть) – логическая сеть, создаваемая поверх другой сети. За счёт шифрования создаются закрытые каналы. Технология совместима с любым обозревателем, поддерживающим SSL. В условиях современного бизнеса VPN является незаменимым решением в плане эффективности мобильного доступа, безопасности и экономической целесообразности.
На рис. 1 представлена схема подключения мобильных сотрудников к корпоративными ресурсам. Для организации безопасного соединения используется Secure Socket Layer (SSL) Protocol и Transport Layer Security (SSL/TLS1). В качестве WebVPN [2] шлюза можно использовать возможности Cisco IOS, Cisco VPN 3000 Concentrator или Cisco ASA. В процессе работы используется сертификат, в отличие от обмена ключами, используемого в IPSec.
Рисунок 1. Топология WebVPN
Модели удаленного доступа
Существуют три модели удаленного доступа:
- Clientless SSL VPN (WebVPN);
- Thin Client SSL VPN (Port Forwarding);
- SSL VPN Client (SVC-Full Tunnel Mode).
Clientless SSL VPN (WebVPN)
Доступ к преднастроенным URL-ссылкам через портал к внутренним интранет-веб-cайтам компании.
Common Internet File system (CIFS). Позволяет удаленным пользователям обозревать и получать доступ к файлам, расположенным на Windows-based-серверах в корпоративной сети.
Thin Client SSL VPN (Port Forwarding)
Позволяет удаленным пользователям запускать клиентские приложения на их ПК через шифрованное соединение в корпоративной сети.
SSL VPN Client (SVC-Full Tunnel Mode)
Посредством установки клиента WebVPN удаленный компьютер становится частью корпоративной сети.
Cisco Secure Desktop. Дополнительно к SSL VPN (Full Tunnel) устанавливается клиент защищенного рабочего стола Secure Desktop.
Первый этап настройки шлюза WebVPN на базе IOS: подготовка
! Задействуем модель контроля доступа AAA
aaa new-model
! Создаем учетную запись пользователя в локальной базе
! данных, также можно использовать внешнюю аутентификацию,
! например, TACACS- или RADIUS-сервер
username user01 privilege 0 secret 0 cisco221
! Задействуем аутентификацию для локальных пользователей
aaa authentication login default local
! DNS-настройки для WebVPN-шлюза: имя хоста, домен
! и сервер имен
hostname router01
ip domain name company.ru
ip name server 192.168.1.3
Создание доверительного сертификата
WebVPN основан на SSL, поэтому должен быть создан сертификат X.509: Public Key Infrastructure (PKI). При подключении клиента сертификат будет проверяться политикой безопасности на соответствие имени и IP-адреса WebVPN-шлюза, поэтому самоподписанный сертификат, создаваемый маршрутизатором по умолчанию при «включении» WebVPN, не подойдет. Перед созданием сертификата необходимо проверить время, дату и временную зону на маршрутизаторе.
! Обьявляем удостоверяющий центр
! (Certification Authority, CA)
crypto pki trustpoint router01.company.ru
! Подписываем
enrollment selfsigned
! Общая информация, главное здесь – каноническое имя:
! CN, совпадающее с записью А на DNS-сервере
subject-name cn=router01.company.ru,o=JSCCompany,c=RU,st=AltayTerritory
rsakeypair router01.company.ru
! Генерируем сертификат
crypto pki enroll router01.company.ru
Теперь сертификат готов, его можно посмотреть при помощи команды:
#show crypto pki certificates
Создаем пул динамических адресов для WebVPN-клиентов:
ip local pool ssl-vpn-client-dynpool 10.10.1.5 10.10.1.20
Второй этап: настройка WebVPN
На рис. 2 изображена концепция WebVPN, представляющая собой три базовых блока. Контекст, по сути, является контейнером, содержащим все параметры для подключения клиентов.
Рисунок 2. Концепция WebVPN
Сначала необходимо создать виртуальный шлюз, указать имя, хост, IP-адрес, назначить перенаправление порта с HTTP на HTTPS, если задействован HTTP-сервер. Также здесь указываем использование созданного нами ранее удостоверяющего центра сертификатов.
Шлюз работает подобно proxy, для защиты корпоративных ресурсов.
webvpn gateway WebVPNGateway
hostname router01
ip address 172.16.1.1 port 443
http-redirect port 80
ssl trustpoint router01.company.ru
! Определяем алгоритм шифрования для SSL-протокола,
! также доступны aes-sha1 и rc4-md5
ssl encryption 3des-sha1
! Ведение журнала ошибок и событий
logging enable
! Задействуем WebVPN-шлюз
inservice
Копируем AnyConnect или SSLClient-клиент и Secure Desktop на маршрутизатор, например, при помощи TFTP-сервера и устанавливаем{1}. Можно установить до 9 клиентов, например, для поддержки разных операционных систем. Порядок загрузки определяется параметром sequence <number>.
При подключении клиент выбирается автоматически, в зависимости от типа ОС.
webvpn install svc flash:/anyconnect-win-2.x.pkg sequence 1
webvpn install svc flash:/anyconnect-macosx-i386-2.x.pkg sequence 2
! Клиент для Windows CE, подходит для Mobile, т.к. они основаны на CE
webvpn install svc flash:/anyconnect-wince-ARMv4I-2.x.pkg sequence 3
webvpn install svc flash:/anyconnect-linux-2.x-k9.pkg sequence 4
webvpn install csd flash:/securedesktop-ios-3.x-k9.pkg
! После в конфигурации появятся строки:
webvpn install svc flash:/webvpn/svc_1.pkg sequence 1
webvpn install svc flash:/webvpn/svc_2.pkg sequence 2
webvpn install svc flash:/webvpn/svc_3.pkg sequence 3
webvpn install svc flash:/webvpn/svc_4.pkg sequence 4
webvpn install csd flash:/webvpn/sdesktop.pkg
! Для быстрой коммутации IP-пакетов необходимо включить
! Сisco Express Forwarding (CEF)
webvpn cef
Далее создается WebVPN-контекст, который необходим для ассоциации шлюза и индивидуальных настроек, т.к. существует возможность для создания множества контекстов с различными уровнями доступа в зависимости от указанного домена.
webvpn context SSLVPN
! Заголовок и сообщение на странице аутентификации
! портала, оформление
title "Router01 Web-VPN page Welcome!"
title-color #CCCC66
secondary-color white
text-color black
logo file flash:/company.gif
login-message "Please enter your credentials.."
! Ограничение на число одновременных WebVPN-сессий
max-users 150
! Режим проверки сертификата
ssl authenticate verify all
! Здесь можно задействовать Cisco Security Desktop
csd enable
Создаем список HTTP-ссылок, доступных в портале (если будет разрешен групповой политикой).
url-list "Links"
heading "QuickLinks"
url-text "WebMail" url-value "mail.company.ru"
url-text "SharePoint" url-value "wss.company.ru"
url-text "CRM" url-value "crm.company.ru"
Создаем список Windows-based-файловых серверов. Один из серверов должен быть назначен как master, в роли основного локального «браузера домена» обычно выступает контроллер домена, выполняющий регистрацию имён компьютеров в сети и преобразование имен в IP-адреса, т.к. при обращении к сетевым ресурсам будут использоваться NetBIOS-имена, а не полные DNS.
nbns-list "NBNS-Servers"
nbns-server 192.168.1.4 master
nbns-server 192.168.1.5 timeout 10 retries 5
Создаем список ссылок на сетевые папки:
cifs-url-list CIFS-List
heading Share-list
url-text "Public_on_Server01" url-value \\server01\public
url-text "Sales_on_Server01" url-value \\server01\sales
Конфигурация тонкого клиента (Port Forwarding)
Список портов для приложений, которые отображаются (mapping) на локальные порты хоста клиента.
port-forward "Portlist"
local-port 30025 remote-server "192.168.1.2" remote-port 25 description "SMTP"
local-port 30143 remote-server "192.168.1.2" remote-port 143 description "IMAP"
local-port 30022 remote-server "192.168.1.3" remote-port 3389 description "RDP"
Групповая политика настраивается отдельно для каждого экземпляра WebVPN, содержит набор параметров, ассоциированных с контекстом. Здесь определяется, будет ли доступ к файлам по CIFS, задействован «безопасный рабочий стол», режим тонкого клиента и полно-туннельный режим.
policy group SSL-Policy
! Ассоциируем созданный ранее набор ссылок «Links»
!с групповой политикой
url-list "Links"
! Кнопка для запуска тонкого клиента (в портале), также
! можно настроить автозапуск Java-апплета сразу после
! успешной аутентификации путем добавления ключа
! auto-download
port-forward "Portlist"
! Разрешаем доступ к списку файловых серверов с указанием
! прав доступа
nbns-list "NBNS-Servers"
functions file-access
functions file-browse
functions file-entry
! Ассоциируем созданный ранее набор ссылок сетевых папок
! «CIFS-List» с групповой политикой
cifs-url-lis "CIFS-List"
! Кнопка туннеля (в портале)
functions svc-enabled
! Сообщение после успешной аутентификации на портале
banner "JSC Company, support: <admin@company.ru>"
! Простой и продолжительность сессии в секундах
timeout idle 1800
timeout session 36000
! Сетевые настройки для VPN-клиентов
svc address-pool "ssl-vpn-client-group-dynpool"
svc default-domain "company.ru"
svc dns-server primary 192.168.1.4
svc wins-server primary 192.168.1.4
svc default-domain company.ru
! Сохраняем установленный SVC-клиент на компьютере
! пользователя, в противном случае после завершения
! сеанса будет автоматически деинсталлирован
svc keep-client-installed
Ассоциация групповой политики с контекстом
Данная политика будет использоваться по умолчанию до тех пор, пока не будут настроены атрибуты ААА сервера для запроса другой политики.
default-group-policy SSL-Policy
! Ассоциация шлюза с контекстом
gateway WebVPNGateway
! Задействуем конфигурацию контекста
inservice
Настройка WebVPN закончена. Информацию о контексте и шлюзе можно посмотреть при помощи команд:
#sh webvpn context <name>
#sh webvpn gateway <name>
Дополнительные параметры настройки контекста, шлюза и групповой политики доступны по адресу [4].
Подключение мобильного пользователя
На рис. 3 представлена заглавная страница портала, на которой необходимо пройти аутентификацию. На рис. 4 представлена домашняя страница: навигация. На которой в соответствии с групповой политикой доступны «быстрые» ссылки к корпоративным ресурсам, доступ к файлам по CIFS (при доступе запрашиваются имя и пароль доменной учетной записи), режим тонкого клиента и полнотуннельный режим.
Рисунок 3. Аутентификация
Рисунок 4. Навигация
При выборе туннельного режима будет предложено принять сертификат и загрузить VPN-клиент, после чего установится соединение, значок состояния располагается в трее.
При выборе режима «Тонкий клиент» будет загружен Java-апплет и представлена таблица отображения портов удаленных сервисов на локальный компьютер. На удаленном клиенте должна быть предустановлена Java Runtime Environment (JRE) версии 1.4 или выше. Также хочу отметить, что ни тонкий, ни толстый клиенты не заработали на Windows XP и Vista (установленных с фирменных дисков), пока OC не были обновлены.
SSLClient или AnyConnect-Client
Выбор клиента осуществляется на этапе {1}. AnyConnect является Next Generation-поколением WebVPN-клиента. Несмотря на поддержку маршрутизаторами, разрабатывается в основном для Сisco Adaptive Appliances (ASA) серии 5500. Перечень маршрутизаторов, поддерживающих описанную технологию, вы найдете по адресу [2].
Вариантом установки может быть как загрузка с портала, так и предустановленный вариант. В отличие от SSLClient, поддерживаются не только ОС Windows, но и Linux, MacOS, мобильные устройства на базе Windows Mobile/CE. Перечень ОС, поддерживаемых AnyConnect, доступен по адресу [3]. Были и совмещенные версии SSL-Client-AnyConnect, но поддержка SSLClient прекратилась в начале 2008 года, поэтому нужно использовать AnyConnect. О режиме защищенного рабочего стола в статье речь не идет, т.к. поддержка также остановлена и развивается только для ASA. После установки на компьютере пользователя остается клиент, который можно запустить без интернет-обозревателя, в то время как SSLClient не может запускаться отдельно.
Таблица 1. Сравнительная характеристика режимов работы WebVPN
Clientless Mode
|
Thin-Client Mode
|
Tunnel Mode
|
Поддержка веб-приложений
Файловые ресурсы по CIFS
|
Использование Java-апплета
TCP port mapping: Telnet, e-mail, приложения на статических портах
|
Работает подобно IPsec VPN
Загружается через Java или ActiveX
Поддерживаются все IP приложения
Для установки клиента требуются административные права, перезагрузка компьютера не требуется
Защищенный рабочий стол
|
Особенностью решения по сравнению с альтернативным EasyVPN (описанным в статье [1]) является работа по протоколу HTTPS, который доступен всегда, в отличие от специфичных портов, используемых для подключения EasyVPN. WebVPN позволяет управлять доступом, например, указать URL или сервис, к которым может обращаться пользователь. Тем самым снижается риск доступа к внутренним сетевым ресурсам с незащищенных клиентов или из недоверенных сетей.
- Панин И. Корпоративные VPN на базе Cisco. //Системный администратор, №6, 2009 г. – С. 78-84.
- Thin-Client SSL VPN (WebVPN) IOS Configuration – http://www.cisco.com/en/US/products/ps6496/products_configuration_example09186a008072aa61.shtml.
- Cisco AnyConnect VPN Client – http://www.cisco.com/en/US/docs/security/vpn_client/anyconnect/anyconnect23/release/notes/anyconnect23rn.html.
- Other Security Features – SSL VPN http://www.cisco.com/en/US/docs/ios/security/configuration/guide/sec_ssl_vpn.html.