Настройка VPN на Cisco ASA
Эта статья является логическим продолжением инструкции по настройке VPN между двумя маршрутизаторами Cisco, однако выделена в отдельный материал, так как в центре внимание здесь – настройка межсетевого экрана Cisco ASA.
По условию необходимо связать с помощью VPN соединения сети двух офисов – главного и дополнительного. Однако сейчас в головном офисе, вместо маршрутизатора Cisco 2800 будет использоваться межсетевой экран Cisco ASA 5510.
В распоряжении имеются:
Межсетевой экран Cisco ASA 5510 в главном офисе
- Пользователи расположены в сети 192.168.10.0 /24
- Внешний статический адрес 1.1.1.2 /30
- Шлюз провайдера 1.1.1.1 /30
Маршрутизатор Cisco 881 в дополнительном офисе.
- Пользователи расположены в сети 192.168.20.0 /24
- Внешний статический адрес 2.2.2.2 /30
- Шлюз провайдера 2.2.2.1 /30
Команды для маршрутизатора Cisco 881 рассмотрены в описании второго «универсального» способа настройки VPN тоннелей в статье «Настройка VPN между маршрутизаторами Cisco», поэтому здесь будет рассмотрена только конфигурацию Cisco ASA. На межсетевом экране уже будут выполнены предварительные настройки из статьи «Cisco ASA. Основы»: организовано удаленное управление и обеспечен доступ в Интернет из локальной сети офиса.
Шаг 0
Если версия операционной системы IOS старше, чем 8.3 (посмотреть текущую версию можно командой sh ver), то для упрощения конфигурации убираем настройку nat-control
FW-DELTACONFIG-1(config)#
no nat-control
Шаг 1. Проверка настройки интерфейсов
Проверяем, что на межсетевом экране корректно сконфигурированы внешний (outside) и внутренний (inside) интерфейсы. Из-за того, что в этой статье расссматривается модель Cisco ASA 5510 (вместо 5505) настройки чуть отличаются от тех, что приведены в упомянутой статье: ip адреса и иные параметры вместо виртуальных интерфейсов Vlan задаются сразу на физических интерфейсах Ethernet 0 и Ethernet 1.
Внешний интерфейс outside
FW-DELTACONFIG (config)#
interface Ethernet 0
nameif outside
security-level 0
ip address 1.1.1.2 255.255.255.252
no shut
Внутренний интерфейс inside для локальной сети.
FW-DELTACONFIG (config)#
interface Ethernet 1
nameif inside
security-level 100
ip address 192.168.10.1 255.255.255.0
no shut
Шаг 2. Настройка параметров шифрования
Вводим параметры для шифрования трафика межу головным и дополнительным офисами и включаем шифрование на внешнем интерфейсе outside. Они идентичны тем, которые используются на маршрутизаторе Cisco 881 в удаленном офисе.
Для версий IOS до 9.0
FW-DELTACONFIG-1(config)#
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto isakmp policy 1
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto isakmp enable outside
Для версий IOS после 9.0
FW-DELTACONFIG-1(config)#
crypto ipsec ikev1 transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto ikev1 policy 1
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto ikev1 enable outside
Шаг 3. Определение трафика, подлежащего шифрованию
Создаем список доступа ACL_CRYPTO_DO, в котором указываем трафик, подлежащий шифрованию. Остальные пакеты не будут отправляться в VPN тоннель.
FW-DELTACONFIG-1(config)#
access-list ACL_CRYPTO_DO extended permit ip 192.168.10.0 255.255.255.0 192.168.20.0 255.255.255.0
Шаг 4. Создание политики шифрования
Создаем политику шифрования (crypto map), в которой даем ссылки на все правила и параметры шифрования, которые были созданы в шаге 2 и 3.
Для версии IOS до 9.0
FW-DELTACONFIG-1(config)#
crypto map SECMAP 1 match address ACL_CRYPTO_DO
crypto map SECMAP 1 set peer 2.2.2.2
crypto map SECMAP 1 set transform-set ESP-3DES-SHA
Привязываем ее к внешнему интерфейсу outside.
FW-DELTACONFIG-1(config)#
crypto map SECMAP interface outside
Задаем ключ шифрования
FW-DELTACONFIG-1(config)#
tunnel-group 2.2.2.2 type ipsec-l2l
tunnel-group 2.2.2.2 ipsec-attributes
pre-shared-key XXXXX
Вместо XXXXX указываем сам ключ для VPN с удаленной площадкой. Он будет одинаковым и на Cisco ASA в головном офисе и на Cisco 881 на удаленной площадке. Рекомендую сделать его не менее 50 символов так, чтобы в него входили цифры, буквы и специальные символы.
Все то же самое для версии IOS после 9.0
FW-DELTACONFIG-1(config)#
crypto map SECMAP 1 match address ACL_CRYPTO_DO
crypto map SECMAP 1 set peer 2.2.2.2
crypto map SECMAP 1 set ikev1 transform-set ESP-3DES-SHA
crypto map SECMAP interface outside
tunnel-group 2.2.2.2 type ipsec-l2l
tunnel-group 2.2.2.2 ipsec-attributes
ikev1 pre-shared-key XXXXX
Шаг 5. Маршрутизация
Явно задаем маршрут до сети удаленного офиса через внешний интерфейс (outside) и шлюз провайдера Интернет (1.1.1.1)
FW-DELTACONFIG-1(config)#
route outside 192.168.20.0 255.255.255.0 1.1.1.1
Шаг 6. Предотвращение ненужной трансляции адресов (NO-NAT)
Если помимо VPN подключения Cisco ASA используется для доступа пользователей в сеть Интернет (настроен динамический NAT для трансляции внутренних адресов во внешний), то добавьте эти строки, чтобы не транслировать трафик, предназначенный для всех внутренних сетей с частными ip адресами.
Команды для новых версий IOS, начиная с 8.3
object-group network NET_PRIVATE_IP
network-object 10.0.0.0 255.0.0.0
network-object 172.16.0.0 255.240.0.0
network-object 192.168.0.0 255.255.0.0
nat (any,any) source static any any destination static NET_PRIVATE_IP NET_PRIVATE_IP no-proxy-arp description NO-NAT
Команды для старых версий IOS ниже 8.3
access-list NO-NAT extended permit ip any 10.0.0.0 255.0.0.0
access-list NO-NAT extended permit ip any 192.168.0.0 255.255.0.0
access-list NO-NAT extended permit ip any 172.16.0.0 255.240.0.0
nat (inside) 0 access-list NO-NAT
Если этого не сделать, то тоннель установится, но пакеты по нему передаваться не будут.
Шаг 7. Проверка работы VPN тоннеля
После выполнения настроек на маршрутизаторе Cisco 881 в дополнительном офисе проверяем работу VPN подключения, запустив ping с одного из хостов локальной сети головного офиса до одного из хостов дополнительного.
Проверить состояние тоннеля можно следующими командами:
- Просмотр активных тоннелей командой show crypto isakmp sa
FW-DELTACONFIG-1# sh cry isa sa
Active SA: 1
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1
1 IKE Peer: 2.2.2.2
Type : L2L Role : responder
Rekey : no State : MM_ACTIVE
Любое значение кроме(!) MM_ACTIVE означает, что тоннель не работает. Если он не устанавливается в течение минуты, следует проверить все введенные параметры и их полное соответствие на обоих устройствах, участвующих в шифровании.
Полное отсутствие информации при выводе этой команды скорее всего означает, что где-то пропущена какая-то строчка, например привязка crypto map ко внешнему интерфейсу.
Важно!
Обратите внимание, что построение VPN тоннеля начинается только после появления трафика, подлежащего шифрованию, между внутренними сетями.
- Команда show crypto ipsec sa показывает количество переданных и полученных пакетов внутри VPN тоннеля. Незаменима во время отладки подключения. Информация доступна только(!) в случае, когда тоннель установлен. Если тоннеля нет, то вывод будет пустым.
FW-DELTACONFIG-1# sh cry ips sa
interface: outside
/... вырезано .../
local ident (addr/mask/prot/port): (192.168.10.0/255.255.255.255/0/0)
remote ident (addr/mask/prot/port): (192.168.20.0/255.255.255.255/0/0)
current_peer: 2.2.2.2
#pkts encaps: 4748, #pkts encrypt: 4748, #pkts digest: 4748
#pkts decaps: 4432, #pkts decrypt: 4432, #pkts verify: 4432
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 4748, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#send errors: 0, #recv errors: 0
/... вырезано .../
Строчка с pkts encaps отображает количество пакетов, которые были зашифрованы и отправлены в сторону соседнего офиса
Строчка с pkts decaps отображает количество пакетов, которые пришли с другой стороны тоннеля и были расшифрованы.
- Команда clear crypto isakmp sa позволяет сбросить текущие vpn тоннели для их повторной инициализации. А команда clear crypto ipsec sa peer 2.2.2.2 сбросит счетчики входящих и исходящих пакетов.
Не стесняйтесь написать мне, если у Вас возникли вопросы или возникают трудности с настройкой подобных подключений. Буду рад помочь.
Важно!
Не забудьте сохранить конфигурацию на всех устройствах командой write или copy run start. Иначе после перезагрузки все изменения будут потеряны.
FW-DELTACONFIG-1#write
Building configuration...
[OK]
Здравствуйте, столкнулся с проблемой: сделал VPN site-to-site между двумя ASA, потом после 1 асы поставил маршрутизатор, и за ним компьютер и после этого VPN начал устанавливаться между асой и маршрутизатором и компьютер за 2 асой перестал пинговать компьютер за 1 асой и маршрутизатором, он пингует только внешний интерфейс маршрутизатора, в то время как комп за маршрутизатором всё также хорошо пингует комп за 2 асой.
Буду очень благодарен если ответите, если нужно могу уточнить некоторые моменты.
Напишите мне напрямую на почту smogdelta@gmail.com или в skype: nevidimkastd
День добрый, настроил ASA 5510 IPSEC, есть несколько соединений все работают нормально но вот с одним соединение есть проблемы трафик от него приходит но обратно не идет помогите пожалуйста!!!
Если со стороны ASA трафик идет нормально, а обратный нет, то нужно смотреть списки доступа на ней.
Попробуйте команду
sysopt connection permit-vpn
Это разрешит ЛЮБОЙ трафик, приходящий из VPN подключений.
Подскажите. Поднял туннель между A-B. Трафик из A в B идет, а наоборот не проходит. В чем проблема?
Маршрутизацию трогать действительно не стоит — не поможет.
Возьмем пример из этой статьи. Допустим, что нужно зашифровать не трафик между локальными сетями, а пускать ВЕСЬ трафик из левого офиса (за ASA) через VPN тоннель. Нужно изменить список доступа, который показывает что именно шифровать примерно так:
access-list ACL_CRYPTO_DO extended permit ip 192.168.10.0 255.255.255.0 0.0.0.0 0.0.0.0
т.е. трафик из локальной сети в Интернет.
На другой стороне — в обратную сторону (слева сеть 0.0.0.0 0.0.0.0, а справа сеть за ASA 192.168.10.0 255.255.255.0)
Добрый день! А как сделать чтобы ВЕСЬ трафик шел через VPN канал до центрального офиса? Cisco ASA 8.2 Если я делаю route 0.0.0.0 0.0.0.0.0 x.x.x.x. — ip address центрального офиса, то канал отваливается и ничего никуда не идёт.