Описание интеграции с оборудованием Cisco ASA

Содержание


Описание конфигурации тестового стенда

Данная инструкция содержит информацию, которая поможет вам настроить Cisco ASA для совместного использования средств удаленного доступа и сервиса двухфакторной аутентификации Auth.as.

В качестве средств удаленного доступа рассматривается использование клиента Cisco AnyConnect, IPSec VPN с помощью сторонних клиентов (Shrew) и IPSec поверх L2TP.

В зависимости от версии ASA, настройки могут отличаться. При написании данной статьи использовалась Cisco ASA версии 9.6.

Ниже представлена диаграмма, соответствующая тестовому стенду:

назад к содержанию


Настройка шлюза


1. Базовая настройка ASA

На данном этапе необходимо произвести базовую настройку устройства, которое предполагается использовать в качестве VPN-сервера. Базовая настройка устройства остается неизменной для всех типов удаленного доступа, какой бы из них вы ни выбрали.

В базовую настройку включается:

  1. Конфигурирование и активация интерфейсов устройства. Пример:
  2. !Интерфейс внутренней сети:
    interface GigabitEthernet0/0
    nameif inside
    security-level 100
    ip address 192.168.10.1 255.255.255.0

    !Интерфейс внешней сети:
    interface GigabitEthernet0/1
    nameif outside
    security-level 0
    ip address 10.212.254.2 255.255.255.248

  3. Создание пула адресов для удаленных клиентов. Пример:
  4. ip local pool REMOTE 192.168.20.1-192.168.20.20 mask 255.255.255.0

  5. Определение объектов, соответствующих используемым сетевым сегментам. Пример:
  6. !Объект для внутренней сети:
    object network INSIDE-HOSTS
    subnet 192.168.10.0 255.255.255.0

    !Объект для удаленной сети:
    object network VPN-HOSTS
    subnet 192.168.20.0 255.255.255.0

  7. Конфигурирование NAT.
  8. Необходимо настроить трансляцию IP-адресов локальной сети в сторону Интернет, а также отключить NAT между пулами локальной сети и сети удаленных клиентов.

    Пример:
    object network NAT
    subnet 192.168.10.0 255.255.255.0
    nat (inside,outside) dynamic interface
    nat (inside,outside) source static INSIDE-HOSTS INSIDE-HOSTS destination static VPN-HOSTS VPN-HOSTS


2. Конфигурирование ACL:

На данном этапе необходимо явно описать сетевые взаимодействия по которым удаленные клиенты будут получать доступ подключаясь с помощью anyconnect либо иных клиентских приложений.

Для конфигураций, предусматривающих использование IPSec, необходимо также разрешить использование соответствующих портов.

Настройки ACL для ASA для различных типов удаленного доступа приведены ниже:

AnyConnect L2TP/IPSec Shrew и другие сторонние IPSec-клиенты
!Доступ для удаленных пользователей к внутренней сети:
access-list split_vpn extended permit ip object INSIDE-HOSTS object VPN-HOSTS

access-group outside in interface outside
!Открытие доступа для протоколов IPSec на внешнем интерфейсе:
access-list outside extended permit udp any host 10.212.254.2 eq isakmp

access-list outside extended permit udp any host 10.212.254.2 eq 4500

access-list outside extended permit esp any host 10.212.254.2

access-group outside in interface outside
!Открытие доступа для протоколов IPSec на внешнем интерфейсе:
access-list outside extended permit udp any host 10.212.254.2 eq isakmp

access-list outside extended permit udp any host 10.212.254.2 eq 4500

access-list outside extended permit esp any host 10.212.254.2

access-group outside in interface outside
!Доступ для удаленных пользователей к внутренней сети:
access-list RVPN-ALLOWED extended permit ip object VPN-HOSTS object INSIDE-HOSTS
!Доступ для удаленных пользователей к внутренней сети:
access-list RVPN-ALLOWED extended permit ip object VPN-HOSTS object INSIDE-HOSTS
!указываем какой трафик туннелировать:
access-list RVPN-SPLITT standard permit 192.168.10.0 255.255.255.0
!указываем какой трафик туннелировать:
access-list RVPN-SPLITT standard permit 192.168.10.0 255.255.255.0

назад к содержанию


Опредение RADIUS-серверов AUTH.AS

На данном шаге необходимо определить используемые для аутентификации RADIUS-сервера сервиса AUTH.AS.

Для авторизации пользователей посредством RADIUS сервис AUTH.AS использует порт UDP/1812, что требуется явно указать при настройке “aaa-server” на устройстве. Также в конфигурации aaa-server необходимо указать ключ (PSK), который будет использоваться при совершении RADIUS-запросов к серверам. Задать или узнать установленный ключ можно в системе AUTH.AS.

При необходимости указания группы серверов, следует поочередно определить их с помощью команды aaa-server AUTHAS (interface) host "ip"

Пример:
aaa-server AUTHAS protocol radius
aaa-server AUTHAS (outside) host 10.213.56.3
key 6N4q93to
authentication-port 1812
accounting-port 1813

назад к содержанию


Настройка параметров криптографии

Конфигурация устройства ASA на данном этапе существенно различается в зависимости от выбранного способа организации удаленного доступа.

В частности, для того, чтобы предоставить пользователю возможность аутентифицировать VPN-сервер на базе AnyConnect, а также обеспечить безопасное соединение между VPN-клиентом и шлюзом, необходимо произвести настройки RSA.

В ином случае, нужно произвести настройки IPSec на ASA. Настройки криптографии для различных типов удаленного доступа приведены ниже:

AnyConnect L2TP/IPSec Shrew и другие сторонние IPSec-клиенты
!Генерируем RSA ключи:
crypto key generate rsa label AnyConnect-KeyPair
!Выбор политики шифрования (параметры защиты данных, передаваемых в туннеле фаза 2):
crypto ipsec ikev1 transform-set 3DES_SHA esp-3des esp-sha-hmac
!Выбор политики шифрования (параметры защиты данных передаваемых в туннеле фаза 2):
crypto ipsec ikev1 transform-set 3DES_md5 esp-3des esp-md5-hmac
!Настройка самостоятельно выпускаемого сертификата:
crypto ca trustpoint AnyConnect_Trustpoint

enrollment self

subject-name CN=ASA-AnyConnect

keypair AnyConnect-KeyPair

proxy-ldc-issuer

crl configure

crypto ca enroll localtrust noconfirm

crypto ca certificate chain AnyConnect_Trustpoint

certificate ef9a8059
....
quit
!По умолчанию используется туннельный режим, Windows клиенты L2TP используют транспортный режим IPSec:
crypto ipsec ikev1 transform-set 3DES_SHA mode transport
!Применение transform-set к динамической crypto map:
crypto dynamic-map RVPN 10 set ikev1 transform-set 3DES_md5
!Привязываем trust-point для ssl соединений на внешний интерфейс:
ssl trust-point AnyConnect_Trustpoint outside
!Применение transform-set к динамической crypto map:
crypto dynamic-map L2TP 10 set ikev1 transform-set 3DES_SHA
!Настройка вставки обратного статического маршрута к адресу выданному клиенту (RRI):
crypto dynamic-map RVPN 10 set reverse-route
!Применение динамической crypto map к статической (динамическая карта не может быть напрямую привязана к интерфейсу):
crypto map L2TP 10 ipsec-isakmp dynamic L2TP
!Применение динамической crypto map к статической (динамическая карта не может быть напрямую привязана к интерфейсу):
crypto map vpn 20 ipsec-isakmp dynamic RVPN
!Применение crypto map к интерфейсу:
crypto map L2TP interface outside
! Применение crypto map к интерфейсу:
crypto map vpn interface outside
!Создание политики шифрования для фазы 1:
crypto isakmp identity address

crypto ikev1 enable outside

crypto ikev1 policy 20

authentication pre-share

encryption 3des

hash sha

group 2

lifetime 86400
!Создание политики шифрования для фазы 1:
crypto isakmp identity address

crypto ikev1 enable outside

crypto ikev1 policy 10

authentication pre-share

encryption 3des

hash md5

group 2

lifetime 86400

назад к содержанию


Загрузка AnyConnect-пакета на устройство

Данный шаг необходим только при настройке удаленного доступа с помощью AnyConnect.

Перед тем, как перейти к непосредственной настройке удаленного доступа на ASA, требуется загрузить на устройство пакет AnyConnect. Получить этот пакет можно на официальном портале Cisco. Загрузить AnyConnect на ASA можно, например, с помощью встроенных tftp, http(s)-клиентов.

Во время настройки доступа к AnyConnect на устройстве, следует указать расположение загруженного пакета AnyConnect, а также разрешить пользователю выбирать нужный “tunnel-group” с помощью команды tunnel-group-list enable.

Пример:
!Включение доступа к Anyconnect:
webvpn
enable outside
anyconnect image disk0:/anyconnect.pkg 1
anyconnect enable
tunnel-group-list enable

назад к содержанию


Настройка групповой политики

На данном шаге нужно определить групповую политику для удаленных пользователей. Особое внимание нужно уделить команде “vpn-tunnel-protocol”, указывающая, какой тип шифрования будет использован для клиентов, а также “split-tunnel-network-list”, которая указывает, что трафик будет шифроваться в том случае, если он будет соответствовать параметрам, указанным в acl “split_vpn”.

В разделе “group-policy” также возможна конфигурация дополнительных параметров, которые будут передаваться клиенту, например, адреса DNS, WINS и т.д.

Настройки групповых политик для различных типов удаленного доступа приведены ниже:

AnyConnect L2TP/IPSec Shrew и другие сторонние IPSec-клиенты
!Настройка групповой политики:
group-policy Default internal

group-policy Default attributes

vpn-tunnel-protocol ssl-client ssl-clientless

split-tunnel-policy tunnelspecified
!Настройка групповой политики:
group-policy HOSTS_L2TP internal

group-policy HOSTS_L2TP attributes

vpn-tunnel-protocol l2tp-ipsec
!Настройка групповой политики:
group-policy RVPN internal

group-policy RVPN attributes
!Указываем какой трафик попадет в туннель:
split-tunnel-network-list value split_vpn

address-pools value REMOTE
!Доступ только к внутренней сети:
vpn-filter value RVPN-ALLOWED
!Доступ только к внутренней сети:
vpn-filter value RVPN-ALLOWED

vpn-tunnel-protocol ikev1
!Туннелировать только трафик указанный в ACL:
split-tunnel-policy tunnelspecified
!Туннелировать только трафик указанный в ACL:
split-tunnel-policy tunnelspecified
!Указываем какой трафик попадет в туннель:
split-tunnel-network-list value RVPN-SPLITT

address-pools value REMOTE
!Указываем какой трафик попадет в туннель:
split-tunnel-network-list value RVPN-SPLITT

address-pools value REMOTE

назад к содержанию


Настройка tunnel-group и привязка к групповой политике

На финальном шаге следует определить “tunnel-group” и привязать ее к групповой политике.

Настройки “tunnel-groups” для различных типов удаленного доступа приведены ниже:

AnyConnect L2TP/IPSec Shrew и другие сторонние IPSec-клиенты
!Настройка tunnel-group и привязка к групповой политике:
tunnel-group ANYCONNECT type remote-access

tunnel-group ANYCONNECT general-attributes

address-pool REMOTE

authentication-server-group AUTHAS

authentication-server-group (outside) AUTHAS default-group-policy Default

tunnel-group ANYCONNECT webvpn-attributes
!Windows L2TP клиент не имеет опции определения туннельной группы, поэтому используем дефолтную туннельную группу DefaultRAGroup:
tunnel-group DefaultRAGroup general-attributes

address-pool REMOTE

authentication-server-group (outside) AUTHAS

default-group-policy HOSTS_L2TP

tunnel-group DefaultRAGroup ipsec-attributes

ikev1 pre-shared-key cisco

tunnel-group DefaultRAGroup ppp-attributes

authentication pap
!Настройка tunnel-group и привязка к групповой политике:
tunnel-group RVPN type remote-access

tunnel-group RVPN general-attributes

authentication-server-group AUTHAS

authentication-server-group (outside) AUTHAS

default-group-policy RVPN

tunnel-group RVPN ipsec-attributes

ikev1 pre-shared-key 0987654321
!Название группы в окне пользователя:
group-alias ANYCONNECT enable

назад к содержанию


Настройка клиента - Anyconnect

1. Установите и запустите Cisco AnyConnect Secure Mobility Client. Введите адрес или имя вашего VPN-шлюза в поле для ввода и нажмите кнопку “Connect”:

2. В случае, если для аутентификации шлюза вы используете самоподписанный сертификат, вам будет выведено информационное сообщение:

3. После установления соединения со шлюзом, вам будет предложено выбрать “tunnel-group”, а также ввести свой логин и пароль:

Для подключения, введите в поле “Username” ваш логин, а в поле “Password” - строку, первой частью которой является ваш пароль, а второй - шесть цифр, которые вы можете получить из вашего мобильного приложения auth.as: token. После регистрации пользователя в системе auth.as, ему будет отправлена подробная инструкция на электронную почту, как установить и настроить мобильное приложение для генерации паролей второго фактора. Введите 2 пароля подряд, без каких либо разделителей, и нажмите кнопку “Ok”.

назад к содержанию


Настройка клиента - IPSec/L2TP

1. Откройте центр управления сетями и общим доступом.

2. Выберите “Настройка нового подключения или сети”:

3. В появившемся окне выберите “Подключение к рабочему месту” -> “Использовать мое текущее подключение (VPN)”.

4. Введите параметры подключения. Обратите внимание, что производить подключение после настройки не следует, так как необходимо будет задать PSK, использующийся для установки IPSec-соединения. Вводить имя пользователя и пароль не нужно.

5. Откройте список ваших сетевых подключений и откройте свойства созданного подключения:

Во вкладке “Безопасность” нужно установить тип VPN так, как это показано на рисунке, а также задать ключ, используемый для подключения, в меню, вызвать которое можно нажатием кнопки “Дополнительные” параметры.

Так как аутентификация пользователя требует передачи RADIUS-серверу пароля пользователя, то необходимо установить PAP в качестве используемого протокола аутентификации и снять выделение со всех других пунктов:

6. После этого, запустите созданное подключение, введите свой логин, пароль и токен, и нажмите кнопку “Подключение”:

назад к содержанию


Настройка клиента - Shrew

В данном примере для удаленного доступа используется IPSec-клиент Shrew с открытым исходным кодом. Загрузить клиент можно по этой ссылке: https://www.shrew.net/download/vpn

1. После установки и запуска Shrew, нужно добавить новое соединение нажатием кнопки “Add”. В появившемся окне нужно будет ввести адрес или имя шлюза, к которому будет производиться подключение:

2. Во вкладке Authentication нужно изменить значение поля "Authentication Method" на “MutualPSK+XAuth”, для “Local Identity” задать “Identification Type” значение “Key Identifier” и для “Key ID String” значение, которое вы использовали при настройке crypto dynamic-map (в примере - “RVPN”):

3. Во вкладке “Remote Identity” выбрать “IP Address”.

4. Во вкладке “Credentials” нужно задать значение “Pre Shared Key” соответствующее тому значению PSK, которое вы использовали при настройке ASA.

5. После этого, выберите созданное только что подключение и нажмите “Connect” - появится окно, в котором вам нужно будет ввести ваш логин и пароль. В поле для ввода пароля необходимо ввести строку, где первая часть - ваш текущий пароль от учетной записи, а вторая - шесть цифр, полученные из приложения Auth.as.

6. После ввода логина и пароля нажмите “Connect”. Если все настройки произведены верно, то произойдет успешное подключение.

назад к содержанию