Cisco ASA/Easy VPN

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Наташа Самойленко


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)
  • В режиме general-attributes:
    • Привязывается пул адресов, который соответствует этой tunnel-group
    • Привязывается соответствующая групповая политика

Note-icon.gif

В 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 

[править] Настройка Easy VPN с аутентификацией по preshared key

RAVPN asa.png

[править] Пример пошаговой настройки

[править] Настройка 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

[править] Пример конфигурации

RAVPN asa.png

Конфигурация 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
# Настройка