Cisco ASA/Easy VPN
Материал из Xgu.ru
- Автор: Наташа Самойленко
Cisco ASA 5505 может быть Easy VPN клиентом, остальные модели Cisco ASA поддерживают только функциональность сервера. В примерах на странице в роли клиента используется Cisco VPN Client.
Содержание |
[править] Общие принципы настройки Easy VPN на Cisco ASA
[править] Политика ISAKMP
В документации Cisco термины IKE и ISAKMP, как правило, взаимозаменяемы.
Политика ISAKMP указывает параметры первой фазы:
- Метод аутентификации (пароль, сертификаты)
- Протокол шифрования (DES, 3DES, AES)
- Алгоритм хеширования (MD5, SHA)
- Группа DH
- Время жизни SA
В Cisco ASA, кроме настройки политики ISAKMP, необходимо также включить ISAKMP на интерфейсе.
[править] Tunnel-group
Tunnel-group это объект, в котором при настройке Easy VPN, указываются такие параметры (перечислены не все доступные параметры, а только примеры):
- В режиме ipsec-attributes:
- Настройки аутентификации устройств:
- При аутентификации по паролю -- пароль
- при аутентификации по сертификатам -- соответствующая trustpoint.
- Настройки аутентификации пользователей (xauth или hybrid):
- Включается аутентификация xauth и указывается как она будет выполняться
- по умолчанию xauth включена и аутентификация выполняется по локальной базе пользователей
- Включается аутентификация hybrid (в Cisco VPN клиенте она называется mutual)
- Включается аутентификация xauth и указывается как она будет выполняться
- Настройки аутентификации устройств:
- В режиме general-attributes:
- Привязывается пул адресов, который соответствует этой tunnel-group
- Привязывается соответствующая групповая политика
|
В ASDM tunnel-group называется Connection Profile |
Пример настройки:
tunnel-group SALES type remote-access tunnel-group SALES general-attributes address-pool RVPN default-group-policy SALES_GROUP tunnel-group SALES ipsec-attributes pre-shared-key cisco123
[править] Tunnel-group DefaultRAGroup
В конфигурации существует tunnel-group DefaultRAGroup из которой наследуются все настройки, которые не были заданы явно в созданных tunnel-group. Её можно изменять.
По умолчанию она выглядит так (параметры webvpn и ppp удалены):
sh run all tunnel-group DefaultRAGroup tunnel-group DefaultRAGroup type remote-access tunnel-group DefaultRAGroup general-attributes no address-pool no ipv6-address-pool authentication-server-group LOCAL accounting-server-group RADIUS default-group-policy DfltGrpPolicy no dhcp-server no strip-realm no password-management no override-account-disable no strip-group no authorization-required authorization-dn-attributes CN OU tunnel-group DefaultRAGroup ipsec-attributes no pre-shared-key peer-id-validate req no chain no trust-point isakmp keepalive threshold 1500 retry 2 no radius-sdi-xauth isakmp ikev1-user-authentication xauth
[править] Групповая политика (group-policy)
После прохождения аутентификации (устройств и пользователей) на клиента назначаются параметры, которые указываются в групповой политике.
В group-policy можно задать, например, такие параметры:
- ACL для фильтрации трафика
- Политику туннелирования трафика и какой трафик попадет в туннель
- DNS-сервер
- и др.
Групповая политика может быть настроена локально или на RADIUS-сервере. Для того чтобы задать групповую политику на RADIUS, можно использовать несколько вариантов.
Внешняя group-policy:
Для того чтобы обращаться за параметрами для group-policy на RADIUS-сервер, необходимо указать в настройках ASA, что политика внешняя:
group-policy TEST_GROUP external server-group MY_RADIUS password cisco123
Для того чтобы задать соответствующие атрибуты на RADIUS, необходимо создать пользователя TEST_GROUP с паролем cisco123 и указать атрибуты для него.
Xauth на RADIUS-сервере:
Если аутентификация будет выполняться через RADIUS, который связан с существующим каталогом пользователей, например AD, то удобней будет сделать внешней аутентификацию xauth. Политики аутентификации на RADIUS-сервере можно привязать к группам пользователей в AD и для политики назначить атрибуты.
Настройка xauth на RADIUS-сервере:
tunnel-group TEST type remote-access tunnel-group TEST general-attributes authentication-server-group MY_RADIUS
Эти методы не исключают друг друга и могут использоваться вместе. Атрибуты привязанные к пользователю будут перебивать соответствующие атрибуты для групповой политики. Те атрибуты, которые не заданы для пользователя, будут наследоваться из групповой политики. Те, которые не заданы для групповой, будут наследоваться из политики по умолчанию
[править] Групповая политика по умолчанию DfltGrpPolicy
В конфигурации существует групповая политика по умолчанию DfltGrpPolicy из которой наследуются все настройки, которые не были заданы явно в созданных групповых политиках. Её можно изменять.
По умолчанию она выглядит так (параметры webvpn удалены):
sh run all DfltGrpPolicy group-policy DfltGrpPolicy internal group-policy DfltGrpPolicy attributes banner none wins-server none dns-server none dhcp-network-scope none vpn-access-hours none vpn-simultaneous-logins 2000 vpn-idle-timeout none vpn-session-timeout none vpn-filter none vpn-tunnel-protocol IPSec webvpn password-storage enable ip-comp disable re-xauth disable group-lock none pfs disable ipsec-udp disable ipsec-udp-port 10000 split-tunnel-policy tunnelall split-tunnel-network-list none default-domain none split-dns none intercept-dhcp 255.255.255.255 disable secure-unit-authentication disable user-authentication disable user-authentication-idle-timeout 30 ip-phone-bypass disable leap-bypass disable nem disable backup-servers keep-client-config msie-proxy server none msie-proxy method no-modify msie-proxy except-list none msie-proxy local-bypass disable nac disable nac-sq-period 300 nac-reval-period 36000 nac-default-acl none address-pools value vpn_users client-firewall none client-access-rule none
[править] Transform-set
Transform-set это объект, который описывает параметры второй фазы. В Cisco ASA не поддерживается протокол AH, есть только ESP.
В transform-set указывается:
- Протокол ESP
- Протокол шифрования (DES, 3DES, AES)
- Алгоритм хеширования (MD5, SHA)
[править] Crypto map. Dynamic crypto map
Crypto map это объект, в котором находятся наборы правил, относящиеся к разным туннелям IPsec. Так как к интерфейсу может быть применена только одна crypto map, то описать все туннели необходимо в одной и той же crypto map.
Для того чтобы отличать правила относящиеся в разным туннелям, правила группируются в наборы, которые объединяет общий порядковый номер правила в crypto map.
В каждом наборе правил crypto map можно указать такие параметры:
- Адрес удаленной стороны туннеля (peer)
- ACL, который указывает какие данные попадут в туннель
- Transform-set
- Группа DH для включения PFS
- Вставка обратного маршрута (RRI)
Однако, для Easy VPN необходимо использовать динамическую crypto map. Она отличается от обычной тем, что в ней указаны не все параметры. Для того чтобы применить динамическую crypto map к интерфейсу, она должна быть применена к обычной crypto map.
Пример настройки dynamic crypto map и применение её к обычной crypto map, а затем к внешнему интерфейсу:
crypto dynamic-map RVPN 10 set transform-set 3DES_SHA crypto dynamic-map RVPN 10 set reverse-route crypto map TEST_MAP 65535 ipsec-isakmp dynamic RVPN crypto map TEST_MAP interface outside
[править] Фильтрация данных VPN
По умолчанию в ASA включена команда sysopt connection permit-vpn, которая позволяет трафику VPN обходить входящий ACL интерфейса, на котором терминируется VPN. ACL присвоенные в процессе авторизации пользователей (group policy и per-user ACL) применяются.
Убедиться, что команда включена можно так:
ASA(config)# sh run all sysopt
Включить, если отключена:
ASA(config)# sysopt connection permit-vpn
[править]
[править] Пример пошаговой настройки
[править] Настройка ISAKMP
Включение ISAKMP (IKE) на интерфейсе:
ASA2(config)# isakmp enable outside
Настройка политики ISAKMP:
ASA2(config)# isakmp policy 10 ASA2(config-isakmp-policy)# authentication pre-share ASA2(config-isakmp-policy)# encryption 3des ASA2(config-isakmp-policy)# hash sha ASA2(config-isakmp-policy)# group 2
[править] Настройка назначения адресов
Пример создания пула адресов:
ip local pool SALES_POOL 172.16.2.1-172.16.2.100 mask 255.255.255.255
Назначение IP-адреса пользователю:
username SALES1 password FGxPirrtw9DRO2qS encrypted username SALES1 attributes vpn-framed-ip-address 172.16.2.101 255.255.255.255
[править] Настройка групповой политики
Создание внутренней групповой политики (настроен DNS-сервер, политика будет использоваться только для Easy VPN (не для SSLVPN)):
group-policy MANAGER_GROUP internal group-policy MANAGER_GROUP attributes dns-server value 10.0.2.10 vpn-tunnel-protocol IPSec
По умолчанию весь трафик клиента попадает в туннель, так как эта настройка наследуется из политики по умолчанию. Для того чтобы указать какой трафик должен попадать в туннель, необходимо создать ACL, который будет его описывать и изменить политику туннелирования.
Эта функция называется split tunneling.
Для групповой политики MANAGER_GROUP в туннель будет попадать только трафик, который идет в сеть 10.0.2.0/24:
access-list RVPN-SPLITT standard permit 10.0.2.0 255.255.255.0 group-policy MANAGER_GROUP attributes split-tunnel-policy tunnelspecified split-tunnel-network-list value RVPN-SPLITT
Если необходимо фильтровать трафик для того чтобы ограничить доступ к ресурсам локальной сети, то необходимо создать ACL, который будет описывать разрешенный доступ и применить его к групповой политике:
access-list RVPN-ALLOWED extended permit tcp any host 10.0.2.10 eq ftp access-list RVPN-ALLOWED extended permit tcp any host 10.0.2.10 eq www access-list RVPN-ALLOWED extended permit tcp any host 10.0.2.11 eq 3389 group-policy MANAGER_GROUP attributes vpn-filter value RVPN-ALLOWED
[править] Настройка tunnel-group
Настройка типа tunnel-group'ы:
ASA2(config)# tunnel-group SALES type remote-access
Настройка pre-shared key:
ASA2(config)# tunnel-group SALES ipsec-attributes ASA2(config-tunnel-ipsec)# pre-shared-key cisco123
Привязка пула адресов и групповой политики к tunnel-group:
ASA2(config)# tunnel-group SALES general-attributes ASA2(config-tunnel-general)# address-pool SALES_POOL ASA2(config-tunnel-general)# default-group-policy SALES_GROUP
[править] Настройка transform-set
ASA2(config)# crypto ipsec transform-set 3DES_SHA esp-3des esp-sha-hmac
[править] Настройка и применение crypto map
Настройка dynamic crypto map:
crypto dynamic-map RVPN 10 set transform-set 3DES_SHA crypto dynamic-map RVPN 10 set reverse-route
Применение crypto map:
crypto map TEST_MAP 65535 ipsec-isakmp dynamic RVPN ! crypto map TEST_MAP interface outside
[править] Пример конфигурации
Конфигурация ASA2 с комментариями:
interface GigabitEthernet0/0 nameif inside security-level 100 ip address 10.0.2.1 255.255.255.0 ! interface GigabitEthernet0/1 nameif outside security-level 0 ip address 192.168.2.2 255.255.255.0 ! route outside 0.0.0.0 0.0.0.0 192.168.2.1 ! # Включение ISAKMP на интерфейсе crypto isakmp enable outside ! # Настройка политики ISAKMP crypto isakmp policy 10 authentication pre-shared encryption 3des hash sha group 2 lifetime 86400 ! # Создание transform-set (параметры защиты данных передаваемых в туннеле) crypto ipsec transform-set 3DES_SHA esp-3des esp-sha-hmac ! # Применение transform-set к динамической crypto map crypto dynamic-map RVPN 10 set transform-set 3DES_SHA ! # Настройка вставки обратного статического маршрута к адресу выданному клиенту (RRI) crypto dynamic-map RVPN 10 set reverse-route ! # Применение динамической crypto map к статической crypto map TEST_MAP 65535 ipsec-isakmp dynamic RVPN ! # Применение crypto map к интерфейсу crypto map TEST_MAP interface outside ! # Создание пулов адресов для двух групп пользователей ip local pool SALES_POOL 172.16.2.1-172.16.2.100 mask 255.255.255.255 ip local pool MANAGER_POOL 172.16.3.3-172.16.3.5 mask 255.255.255.255 ! # Настройка ACL для указания какой трафик туннелировать access-list RVPN-SPLITT standard permit 10.0.2.0 255.255.255.0 ! # Настройка ACL для фильтрации трафика access-list RVPN-ALLOWED extended permit tcp any host 10.0.2.10 eq ftp access-list RVPN-ALLOWED extended permit tcp any host 10.0.2.10 eq www access-list RVPN-ALLOWED extended permit tcp any host 10.0.2.11 eq 3389 ! # Создание внутренней групповой политики group-policy MANAGER_GROUP internal ! # Настройка атрибутов политики group-policy MANAGER_GROUP attributes # DNS-сервер dns-server value 10.0.2.10 # Применение ACL для фильтрации трафика vpn-filter value RVPN-ALLOWED # Группа используется только для подключений Easy VPN vpn-tunnel-protocol IPSec # Туннелировать только трафик указанный в ACL split-tunnel-policy tunnelspecified # ACL указывающий какой трафик попадет в туннель split-tunnel-network-list value RVPN-SPLITT ! # Создание внутренней групповой политики group-policy SALES_GROUP internal ! # Настройка атрибутов политики group-policy SALES_GROUP attributes # DNS-сервер dns-server value 10.0.1.10 # Применение ACL для фильтрации трафика vpn-filter value RVPN-ALLOWED # Группа используется только для подключений Easy VPN vpn-tunnel-protocol IPSec # Туннелировать только трафик указанный в ACL split-tunnel-policy tunnelspecified # ACL указывающий какой трафик попадет в туннель split-tunnel-network-list value RVPN-SPLITT # По умолчанию будет использоваться домен cisco.com default-domain value cisco.com # DNS-запросы с указанными доменами отправлять в туннель split-dns value cisco.com example.com ! # Создание пользователя username MANAGER1 password cisco # Настройка атрибутов пользователя username MANAGER1 attributes # Групповая политика пользователя vpn-group-policy MANAGER_GROUP # Не применять к пользователю фильтр, несмотря на то что он есть в групповой политике vpn-filter none # Пользователь может принадлежать только группе MANAGER_GROUP group-lock value MANAGER_GROUP # Пользователь не может использоваться для управления ASA, например нельзя под ним подключаться к консоли service-type remote-access ! # Создание пользователя username ciscovpn password cisco # Настройка атрибутов пользователя (для данного пользователя все атрибуты наследуются из той групповой политики к которой он подключился) username ciscovpn attributes # Пользователь не может использоваться для управления ASA, например нельзя под ним подключаться к консоли service-type remote-access ! # Создание пользователя username SALES1 password cisco # Настройка атрибутов пользователя username SALES1 attributes # Групповая политика пользователя vpn-group-policy SALES_GROUP # Пользователь не может использоваться для управления ASA, например нельзя под ним подключаться к консоли service-type remote-access ! # Создание tunnel-group SALES (это имя будет вводиться в Cisco VPN client при подключении) tunnel-group SALES type remote-access # Настройка атрибутов tunnel-group SALES general-attributes # Привязка пула адресов address-pool SALES_POOL # Привязка групповой политики default-group-policy SALES_GROUP # Настройка атрибутов IPsec tunnel-group SALES ipsec-attributes # Настройка пароля pre-shared-key cisco123 ! # Создание tunnel-group MANAGER (это имя будет вводиться в Cisco VPN client при подключении) tunnel-group MANAGER type remote-access # Настройка атрибутов tunnel-group MANAGER general-attributes # Привязка пула адресов address-pool MANAGER_POOL # Привязка групповой политики default-group-policy MANAGER_GROUP # Настройка атрибутов IPsec tunnel-group MANAGER ipsec-attributes # Настройка