Теорию по VPN туннелям и используемым протоколам вкратце можно почитать тут.
Для начала главное, что построение туннеля происходит в два этапа (фазы):
1 фаза - два узла договариваются о методе идентификации, алгоритме шифрования, хэш алгоритме и группе Diffie Hellman. а так же узлы идентифицируют друг друга.
2 фаза - генерируются данные ключей, узлы договариваются насчёт используемой политики.
VPN-тунели могут быть статические или динамические, в зависимости от того, известен ли нам второй узел или нет. В данной статье рассмотрим настройку динамического варианта, когда у нас есть несколько удаленных сотрудников, которые должны подключаться из разных мест. Сразу скажу, в ASA предусмотрен более гибкий вариант, построение VPN туннеля через Web при использовании anyconnect и если у вас есть куча менеджеров, которым необходимо по максимуму упростить доступ в сеть - лучше использовать именно его.
Для построения VPN туннеля с использованием динамической карты (dynamic-map) необходимо следующее:
Для начала главное, что построение туннеля происходит в два этапа (фазы):
1 фаза - два узла договариваются о методе идентификации, алгоритме шифрования, хэш алгоритме и группе Diffie Hellman. а так же узлы идентифицируют друг друга.
2 фаза - генерируются данные ключей, узлы договариваются насчёт используемой политики.
VPN-тунели могут быть статические или динамические, в зависимости от того, известен ли нам второй узел или нет. В данной статье рассмотрим настройку динамического варианта, когда у нас есть несколько удаленных сотрудников, которые должны подключаться из разных мест. Сразу скажу, в ASA предусмотрен более гибкий вариант, построение VPN туннеля через Web при использовании anyconnect и если у вас есть куча менеджеров, которым необходимо по максимуму упростить доступ в сеть - лучше использовать именно его.
Для построения VPN туннеля с использованием динамической карты (dynamic-map) необходимо следующее:
- Подготовить политики первой фазы. Если вы точно не знаете какое шифрование использует второй узел - то можно заготовить политики на все случаи жизни. При установке связи будут перебираться все политики начиная с меньшего порядкового номера. Для того, что бы в будущем иметь возможность "вклинить" какую-нибудь политику можно нумеровать через 5-10 позиций. Для первой фазы можно использовать как IKEv1 так и IKEv2 политики. Для IKEv1 это выглядит следующим образом:
crypto ikev1 policy 10
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto ikev1 policy 15
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
Можно добавить до 200 вариантов политики. Для IKEv2 это выглядит так:
crypto ikev2 policy 10
encryption 3des
integrity sha
group 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 20
encryption aes
integrity sha
group 2
prf sha
lifetime seconds 86400 - Не забываем привязать эти политики к интерфейсам:
crypto ikev1 enable internet
crypto ikev2 enable internet client-services port 443
- Теперь создаем transform set для IKEv1, в которых указываем возможные варианты комбинации шифрования трафика и аутентификации узлов:
crypto ipsec ikev1 transform-set tset_AesSha esp-aes esp-sha-hmac
Для IKEv2 создаем предложение (аналогичная функция transform set):
crypto ipsec ikev2 ipsec-proposal proposal_ikev2
protocol esp encryption aes 3des des
protocol esp integrity sha-1 md5
- Теперь создадим динамическую карту, в которой все это объединим(в данном случае используется IKEv1):
crypto dynamic-map DMAP_REMACC 10 set ikev1 transform-set tset_AesSha
- Динамическую карту нельзя прикрепить напрямую к интерфейсу, поэтому мы создаем еще и статическую карту, к которую и привязываем к интерфейсу. Если вы предполагаете, что на этом интерфейсе будут и другие туннели, то лучше указать приоритет побольше, тогда динамическая карта будет применяться в последнюю очередь:
crypto map outside 100 ipsec-isakmp dynamic DMAP_REMACC
crypto map outside interface internet
- Перед завершением настройки самого VPN подготовим отдельные сети для удаленных пользователей. Для этого
- Создадим объект с подсетью, в которой будут удаленные пользователи:
object network obj_VPN
subnet 172.16.17.0 255.255.255.0
- Создаем пул адресов, выдаваемых клиентам:
ip local pool POOL_VPN 172.16.17.1-172.16.17.254
- Создаем так называемый SPLIT ACL, который укажет нашему маршрутизатору где удаленные адреса, а где локальные(можно использовать стандартные ACL указав в них только permit удаленных узлов):
access-list ACL_VPN extended permit ip object obj_LAN object obj_VPN
- Если у нас в локальной сети работает NAT, что бы он не действовал для адресов удаленной подсети необходимо прописать еще одно правило:
nat (LAN,internet) source static obj_LAN obj_LAN destination static obj_VPN obj_VPN route-lookup
- Создадим объект с подсетью, в которой будут удаленные пользователи:
- Создадим групповые политики:
group-policy GP_VPN internal
group-policy GP_VPN attributes
banner value Welcom to office network
vpn-tunnel-protocol ikev1
password-storage enable
split-tunnel-policy tunnelspecified
split-tunnel-network-list value ACL_VPN
- Создаем туннельную группу:
tunnel-group TG_VPN type remote-access
tunnel-group TG_VPN general-attributes
address-pool POOL_VPN
authentication-server-group
default-group-policy GP_VPN
tunnel-group TG_VPN ipsec-attributes
ikev1 pre-shared-key *****
isakmp keepalive threshold infinite
!
Последняя команда полезна, ну пути между узлами стоит куча NAT или есть другие причины длительной установки связи. Это удобно на стадии отладки, но на постоянный вариант, лучше указать конкретный таймаут.
- Создать пользователей на ASA, или использовать удаленный сервер.
Комментариев нет:
Отправить комментарий