Резервирование каналов связи без использования динамических протоколов маршрутизации. Failover MultiWAN
Данный сценарий содержит пример настойки криптомаршрутизаторов ESR-ST (далее ESR-ST) для обеспечения резервирования внешних каналов связи (интернет провайдеров или ISP) без использования динамических протоколов маршрутизации в режиме активный/резервный (active/passive).
Так же сценарий описывает настройку безопасного взаимодействия между защищаемыми подсетями центрального офиса и филиала. Обеспечение безопасного взаимодействия достигается путем шифрования и туннелирования трафика с применением отечественных отраслевых стандартов ГОСТ и протокола IPsec.
Оператор (или администратор) должен обладать обширными знаниями в области сетевой информационной безопасности, иметь опыт работы с аналогичным оборудованием, знать и понимать следующие технологии и протоколы: PKI, IPsec, NAT, Firewall, routing.
Оператор должен быть ознакомлен с документами:
· Консоли управления в ESR-ST;
· Процедура инициализации ESR-ST;
· Сетевые интерфейсы в ESR-ST;
· Порядок обработки пакетов в сетевых подсистемах ESR-ST;
· Обеспечение безопасного взаимодействия между защищаемыми подсетями центрального офиса и филиала путем шифрования трафика. Site-to-site IPsec (ГОСТ) VPN.
К представленной схеме взаимодействия (см. рисунок 1) предъявляются следующие предварительные требования:
1. Криптомаршрутизаторы Spoke и Hub должны быть инициализированы (см. документ «Процедура инициализации ESR-ST»).
2. Обеспеченность связностью на уровне IP между маршрутизаторами Spoke_ISP, Hub_ISP01, Hub_ISP02 и HTTP-сервером CRL_distribution_point.
3. Подготовленный к выпуску цифровых сертификатов корневой удостоверяющий центр (далее УЦ) Certification_authority.
Для выпуска цифровых сертификатов допускается использование встроенного в OC Windows Server 2008R2 (или новее) удостоверяющего центра совместно с СКЗИ «КриптоПро» CSP 4.0 (или новее).
В данном сценарии будет использоваться тестовый УЦ от «КриптоПро» (веб-интерфейс: https://www.cryptopro.ru/certsrv/certrqxt.asp).
Категорически запрещено использование тестового УЦ от «КриптоПро» в производственной (боевой) эксплуатации, так как в данном случае отсутствует возможность контролировать процесс выпуска сертификатов и, соответственно, процедуру аутентификации.
4. Функционирующий HTTP-сервер, устройство CRL_distribution_point, для распространения списка отозванных сертификатов (СОС) (если по объективным причинам использование СОС не представляется возможным, то проверку СОС можно отключить в CGW-CLI).
Доставка нового списка отозванных сертификатов с удостоверяющего центра на HTTP-сервер должна происходить заблаговременно, до истечения срока действия предыдущего списка.
Рисунок 1. Схема взаимодействия
1. Размещение устройств.
1.1. В центральном офисе размещаются УЦ (Certification_authority), криптомаршрутизатор ESR-1000-ST (Hub) и персональный компьютер (host_behind_hub).
1.2. В филиале размещаются криптомаршрутизатор ESR-200-ST (Spoke) и персональный компьютер (host_behind_spoke).
1.3. В неконтролируемом сегменте (синее облако на схеме) размещаются HTTP-сервер для распространения списка отозванных сертификатов (CRL_distribution_point), маршрутизаторы Spoke_ISP и Hub_ISP01, Hub_ISP02.
2. Подключение к сети Интернет.
В данном сценарии для эмуляции сети Интернет используются маршрутизаторы Spoke_ISP, Hub_ISP01, Hub_ISP02, а также промежуточное оборудование, которое на схеме не отражено.
Подключение к сети Интернет будет считаться успешным, если из защищаемых подсетей по протоколу ICMP (или «ping») будет доступен HTTP-сервер для распространения списка отозванных сертификатов (CRL_distribution_point).
2.1. Криптомаршрутизатор Hub подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию) через двух условных интернет провайдеров –маршрутизаторы Hub_ISP01 и Hub_ISP02. Маршрут по умолчанию добавляется только через одного интернет провайдера, канал которого считается рабочим и имеет наибольший приоритет. Работоспособность канала определяется по доступности или недоступности по протоколу ICMP заданной цели (в данном сценарии для такой цели будет выбран HTTP-сервер для распространения списка отозванных сертификатов).
2.2. Криптомаршрутизатор Spoke подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию через маршрутизатор Spoke_ISP).
2.3. На криптомаршрутизаторах Hub и Spoke для исходящего трафика, направляющегося в Интернет, выполняется замена IP-адресов источника на IP-адреса внешних сетевых интерфейсов (технология source NAT или source PAT).
3. Параметры безопасного взаимодействия.
Весь IP-трафик между подсетями Hub и Spoke (192.168.20.0/24 и 192.168.1.0/24) защищается с использованием алгоритмов ГОСТ и протокола IPsec в туннельном режиме.
Инициировать защищенное соединение может как трафик из подсети 192.168.1.0/24 в 192.168.20.0/24 (из филиала в центр), так и наоборот, из центра в филиал.
3.1. Параметры протокола IKE:
· Аутентификация при помощи цифровых сертификатов, алгоритм подписи – ГОСТ R 34.10-2001;
· Алгоритм шифрования – ГОСТ 28147-89 (ключ 256 бит);
· Алгоритм вычисления хеш-функции – ГОСТ R 34.11-2012 TC26 (ключ 256 бит);
· Алгоритм выработки общего ключа (аналог алгоритма Диффи-Хеллмана) – VKO2 ГОСТ R 34.10-2012 (ключ 256 бит).
3.2. Параметры протокола ESP:
· Комбинированный алгоритм шифрования и контроля целостности – ESP_GOST-4M-IMIT (ключ 256 бит).
1. Настройте IP-адрес – 192.168.20.100 и маску – 255.255.255.0 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.20.1.
3. Разрешите прием входящих ICMP пакетов.
В данном сценарии настройка будет происходить локально при помощи консольного подключения.
Настройка может осуществляться и удаленно (по SSH), но исключительно по доверенному каналу связи. Доверенным каналом связи может считаться канал в пределах контролируемой зоны в случае отсутствия в нем нарушителя (в нашем примере это подсеть 192.168.20.0/24 для центрального офиса и подсеть 192.168.1.0/24 для филиала). Доверенным каналом связи также считается канал, защищенный при помощи протокола IPsec (например, после настройки шифрования между подсетями 192.168.1.0/24 и 192.168.20.0/24 разрешается выполнять настройку критомаршрутизатора Spoke из подсети 192.168.20.0/24 центрального офиса).
1. Войдите в CLI разграничения доступа. Для этого, после появления сообщения:
S-Terra administrative console
введите логин и пароль для CLI разграничения доступа:
Пользователь и пароль по умолчанию: administrator, s-terra. Обязательно смените пароль для пользователя administrator при помощи команды change user password.
login as: administrator
administrator's password:
administrator@esr-1000]
2. Отключите автоматическое закрытие сессии CLI разграничения доступа по неактивности:
administrator@hub] session idle timeout disable
В производственной эксплуатации выполнять данную команду запрещено.
Пользователь admin является главным администратором (уровень привилегий 15) для консоли ESR CLI. Пользователь cscons является администратором (уровень привилегий 15) для консоли CGW CLI.
Для пользователей консоли CGW CLI существует по факту только два уровня привилегий – 1 и 15, поэтому разделение на главных и не главных администраторов нет (пользователь с уровнем 1 не может выполнять никаких административных действий без ввода enable пароля).
1. Перейдите в ESR CLI, введя логин и пароль для ESR CLI:
Пользователь и пароль по умолчанию: admin, password.Обязательно смените пароль для пользователей admin и cscons. Под данными пользователями также осуществляется удаленное управление (по SSH) криптомаршрутизатором ESR-ST.
administrator@esr-1000] configure
esr-1000 login: admin
Password:
********************************************
* Welcome to ESR-1000 *
********************************************
Welcome to ESR-1000 on Wed Feb 15 06:13:41 GMT 2017
esr:esr-1000#
1.1. Смените пароль для пользователя admin:
esr:esr-1000# configure
esr:esr-1000(config)# username admin
esr:esr-1000(config-user)# password <пароль>
esr:esr-1000(config-user)# exit
1.2. Смените пароль для пользователя cscons:
esr:esr-1000(config)# username cscons
esr:esr-1000(config-user)# password <пароль>
esr:esr-1000(config-user)# end
1.3. Примените настройки:
esr:esr-1000# commit
2017-02-15T06:36:41+00:00 %CLI-I-CRIT: user admin from console input: commit
Configuration has been successfully committed
esr:esr-1000# confirm
2017-02-15T06:36:50+00:00 %CLI-I-CRIT: user admin from console input: confirm
Configuration has been successfully confirmed
Дата и время на всех криптомаршрутизаторах и УЦ должны быть одинаковы, так как для аутентификации используются цифровые сертификаты, в которых зафиксированы дата и время начала их действия и окончания. Также одинаковые дата и время на всей инфраструктуре облегчают поиск неисправностей по лог-файлам.
Выполните следующую команду для настройки даты и времени:
esr:esr-1000# set date 10:09:00 15 February 2017
Wednesday 10:09:00 GMT February 15 2017
Установка даты и времени применяется автоматически, команды commit и confirm выполнять не нужно.
Для просмотра текущих значений даты и времени воспользуйтесь командой show date.
ESR CLI также позволяет настроить синхронизацию времени по NTP и выставить смещения (GMT).
1. Задайте имя устройства:
esr:esr-1000# configure
esr:esr-1000(config)# hostname hub
2. Задайте IP-адрес для первого внешнего интерфейса gi1/0/1, подключенного к маршрутизатору Hub_ISP01, выполняющего роль основного интернет провайдера (см. схему взаимодействия):
esr:esr-1000(config)# interface gigabitethernet 1/0/1
esr:esr-1000(config-if-gi)# no shutdown
esr:esr-1000(config-if-gi)# ip address 172.16.15.2/24
esr:esr-1000(config-if-gi)# exit
3. Задайте IP-адрес для второго внешнего интерфейса gi1/0/2, подключенного к маршрутизатору Hub_ISP02, выполняющего роль резервного интернет провайдера (см. схему взаимодействия):
esr:esr-1000(config)# interface gigabitethernet 1/0/2
esr:esr-1000(config-if-gi)# no shutdown
esr:esr-1000(config-if-gi)# ip address 172.16.16.2/24
esr:esr-1000(config-if-gi)# exit
4. Создайте мост (bridge), назначьте IP-адрес, VLAN и добавьте в него все интерфейсы с gi1/0/5 по gi1/0/24, после чего примените настройки:
В данном сценарии в качестве устройства Hub выступает ESR-1000-ST, у которого большое количество сетевых интерфейсов, если у Вас используются модель ESR-100-ST или ESR-200-ST, то скорректируйте диапазон сетевых интерфейсов самостоятельно.
esr:esr-1000(config)# bridge 1
esr:esr-1000(config-bridge)# ip address 192.168.20.1/24
esr:esr-1000(config-bridge)# vlan 1
esr:esr-1000(config-bridge)# enable
esr:esr-1000(config-bridge)# exit
esr:esr-1000(config)# interface gigabitethernet 1/0/5-24
esr:esr-1000(config-if-gi)# no shutdown
esr:esr-1000(config-if-gi)# switchport
esr:esr-1000(config-if-gi)# end
esr:esr-1000# commit
esr:hub# confirm
Все интерфейсы с gi1/0/5 по gi1/0/24 могут быть использованы для подключения защищаемых устройств, то есть на данных интерфейсах выполняются функции коммутатора.
5. Убедитесь, что базовые сетевые настройки выполнены верно. Для этого подключите первый внешний интерфейс gi1/0/1 криптомаршрутизатора Hub к маршрутизатору Hub_ISP01, второй интерфейс gi1/0/2 к маршрутизатору Hub_ISP02 и персональный компьютер host_behind_hub к любому интерфейсу криптомаршрутизатора Hub из диапазона gi1/0/5 – 24.
После чего выполните последовательно следующие команды ping c устройства Hub (если выполнить команду ping с Hub_ISP01/Hub_ISP02 или host_behind_hub с адресом назначения Hub, то Hub будет недоступен из-за предустановленных настроек в Eltex FW):
В производственной эксплуатации подключать криптомаршрутизтор к недоверенным сетям до настройки политики безопасности (СКЗИ и МЭ) запрещено.
5.1. Выполните команду ping с Hub на host_behind_hub:
esr:hub# ping 192.168.20.100 packets 4
PING 192.168.20.100 (192.168.20.100) 56(84) bytes of data.
!!!!
--- 192.168.20.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.292/0.303/0.315/0.019 ms
5.2. Выполните команду ping с Hub на Hub_ISP01:
esr:hub# ping 172.16.15.1 packets 4
PING 172.16.15.1 (172.16.15.1) 56(84) bytes of data.
!!!!
--- 172.16.15.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.294/0.416/0.625/0.124 ms
5.3. Выполните команду ping с Hub на Hub_ISP02:
esr:hub# ping 172.16.16.1 packets 4
PING 172.16.16.1 (172.16.16.1) 56(84) bytes of data.
!!!!
--- 172.16.16.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.347/0.369/0.378/0.018 ms
Видно, что устройства в защищаемой и недоверенной сетях доступны по ICMP. Если устройства недоступны – проверьте настройки и сетевые кабели, также в CLI разграничения доступа выполните команду run csconf_mgr activate, в том случае, если она не была выполнена ранее.
Резервирование внешних каналов связи (интернет провайдеров или ISP) обеспечивается без использования динамических протоколов маршрутизации в режиме активный/резервный (active/passive).
Переключение между каналами корректно функционирует только в том случае, если используется резервирование маршрута по умолчанию.
1. Задайте IP-адрес (цель), по доступности которого посредством протокола ICMP будет определяться состояние канала (в данном сценарии для такой цели будет выбран IP-адрес HTTP-сервера для распространения списка отозванных сертификатов):
esr:hub# configure
esr:hub(config)# wan load-balance target-list host_in_internet
esr:hub(config-wan-target-list)# target 1
esr:hub(config-wan-target)# ip address 172.17.10.100
esr:hub(config-wan-target)# enable
esr:hub(config-wan-target)# exit
esr:hub(config-wan-target-list)# exit
2. Задайте на внешних интерфейсах следующие настройки: IP-адрес маршрутизатора по умолчанию (nexthop); IP-адрес, который будет использоваться в качестве источника для ICMP пакетов (source-address); список с IP-адресами, доступность которых нужно контролировать (target-list):
esr:hub(config)# interface gigabitethernet 1/0/1
esr:hub(config-if-gi)# wan load-balance nexthop 172.16.15.1
esr:hub(config-if-gi)# wan load-balance source-address 172.16.15.2
esr:hub(config-if-gi)# wan load-balance target-list host_in_internet
esr:hub(config-if-gi)# wan load-balance enable
esr:hub(config-if-gi)# exit
esr:hub(config)# interface gigabitethernet 1/0/2
esr:hub(config-if-gi)# wan load-balance nexthop 172.16.16.1
esr:hub(config-if-gi)# wan load-balance source-address 172.16.16.2
esr:hub(config-if-gi)# wan load-balance target-list host_in_internet
esr:hub(config-if-gi)# wan load-balance enable
esr:hub(config-if-gi)# exit
3. Добавьте маршрут по умолчанию, ссылающийся на правило, в котором далее будут заданы сетевые интерфейсы и дополнительные параметры:
esr:hub(config)# ip route 0.0.0.0/0 wan load-balance rule 1
4. Создайте правило (параметр failover cgw-notify отвечает за удаление старых ISAKMP/IPsec SA и очистку таблицы NAT трансляций при переключении маршрута через интерфейс; цифра после имени интерфейса – вес/приоритет) и примените настройки:
esr:hub(config)# wan load-balance rule 1
esr:hub(config-wan-rule)# failover
esr:hub(config-wan-rule)# failover cgw-notify
esr:hub(config-wan-rule)# outbound interface gigabitethernet 1/0/1 255
esr:hub(config-wan-rule)# outbound interface gigabitethernet 1/0/2
esr:hub(config-wan-rule)# enable
esr:hub(config-wan-rule)# end
esr:hub# commit
esr:hub# confirm
Запрещено создавать несколько правил с параметром failover cgw-notify, так как корректная работа в этом случае не гарантируется.
В случае доступности по ICMP IP-адреса 172.17.10.100 через сетевой интерфейс gigabitethernet 1/0/1 на консоль будет выведено сообщение о добавлении маршрута через данный интерфейс (имя интерфейса выводится в cisco-like нотации, так как за удаление старых ISAKMP/IPsec SA и очистку таблицы NAT трансляций отвечает модуль CGW):
MultiWAN (cgw-notify): setting routes via GigabitEthernet1/1
5. Убедитесь, что маршрут по умолчанию добавлен через сетевой интерфейс gigabitethernet 1/0/1:
esr:hub# show ip route
Codes: C - connected, S - static, R - RIP derived,
O - OSPF derived, IA - OSPF inter area route,
E1 - OSPF external type 1 route, E2 - OSPF external type 2 route
B - BGP derived, D - DHCP derived, K - kernel route,
* - FIB route
S * 0.0.0.0/0 [1/0] via 172.16.15.1 on gi1/0/1 [static 09:18:39]
C * 192.168.20.0/24 [0/0] dev br1 [direct 15:03:39]
C * 172.16.15.0/24 [0/0] dev gi1/0/1 [direct 22:15:47]
C * 172.16.16.0/24 [0/0] dev gi1/0/2 [direct 15:03:40]
Eltex FW – это межсетевой экран с контролем состояния сессии (stateful) и поддержкой зон безопасности (zone-based). Политика по умолчанию разрешает все исходящие локальные соединения, а входящие только в рамках исходящих.
1. Создайте две зоны безопасности, одну для защищаемой подсети (trusted), другую для недоверенной (untusted):
esr:hub# configure
esr:hub(config)# security zone trusted
esr:hub(config-zone)# exit
esr:hub(config)# security zone untrusted
esr:hub(config-zone)# exit
2. Добавьте сетевые интерфейсы в созданные зоны безопасности:
esr:hub(config)# bridge 1
esr:hub(config-bridge)# security-zone trusted
esr:hub(config-bridge)# exit
esr:hub(config)# interface gigabitethernet 1/0/1-2
esr:hub(config-if-gi)# security-zone untrusted
esr:hub(config-if-gi)# exit
3. Создайте объекты, описывающие порты протоколов, для дальнейшего их использования в правилах фильтрации, разрешающих входящий на Hub трафик.
3.1. Для протокола SSH:
esr:hub(config)# object-group service SSH
esr:hub(config-object-group-service)# port-range 22
esr:hub(config-object-group-service)# exit
3.2. Для протоколов IKE и NAT-T (IPsec over UDP):
esr:hub(config)# object-group service IKE500
esr:hub(config-object-group-service)# port-range 500
esr:hub(config-object-group-service)# exit
esr:hub(config)# object-group service IKE4500
esr:hub(config-object-group-service)# port-range 4500
esr:hub(config-object-group-service)# exit
esr:hub(config)#
4. Настройте правила фильтрации между зонами безопасности.
4.1. Разрешите любой транзитный трафик из доверенной зоны/сети в недоверенную, то есть с портов коммутатора gi1/0/5-24 на внешние интерфейсы gi1/0/1, gi1/0/2 (trusted untrusted):
esr:hub(config)# security zone-pair trusted untrusted
esr:hub(config-zone-pair)# rule 10
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match protocol any
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair)# exit
esr:hub(config)#
Трафик, который необходимо шифровать из доверенной сети, будет определяться списками доступа СКЗИ в CGW CLI.
4.2. Разрешите любой транзитный трафик между сетевыми интерфейсами доверенной зоны/сети (trusted trusted):
esr:hub(config)# security zone-pair trusted trusted
esr:hub(config-zone-pair)# rule 10
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match protocol any
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair) exit
esr:hub(config)#
4.3. Разрешите прохождение любого транзитного расшифрованного трафика из недоверенной зоны/сети в доверенную, то есть с внешних сетевых интерфейсов gi1/0/1, gi1/0/2 на сетевые интерфейсы коммутатора gi1/0/5-24 (untrusted trusted):
esr:hub(config)# security zone-pair untrusted trusted
esr:hub(config-zone-pair)# rule 10
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# match protocol any
esr:hub(config-zone-pair-rule)# match ipsec-decrypted
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair)# exit
esr:hub(config)#
4.4. Разрешите подключение по протоколу SSH из доверенной зоны/сети к Hub (trusted self):
esr:hub(config)# security zone-pair trusted self
esr:hub(config-zone-pair)# rule 10
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match protocol tcp
esr:hub(config-zone-pair-rule)# match destination-port SSH
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match source-port any
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair)#
4.5. Разрешите пакеты протокола ICMP из доверенной зоны/сети к Hub (trusted self):
esr:hub(config-zone-pair)# rule 20
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match protocol icmp
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair)# exit
esr:hub(config)#
4.6. Разрешите пакеты протокола ICMP из недоверенной зоны/сети к Hub (untrusted self):
esr:hub(config)# security zone-pair untrusted self
esr:hub(config-zone-pair)# rule 10
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# match protocol icmp
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
4.7. Разрешите прохождение расшифрованного трафика из недоверенной зоны/сети на Hub (untrusted self):
esr:hub(config-zone-pair)# rule 20
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# match protocol any
esr:hub(config-zone-pair-rule)# match ipsec-decrypted
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
4.8. Разрешите пакеты протокола IKE и NAT-T (IPsec over UDP) из недоверенной зоны/сети на Hub (untrusted self):
esr:hub(config-zone-pair)# rule 30
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match protocol udp
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# match source-port any
esr:hub(config-zone-pair-rule)# match destination-port IKE500
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair)#
esr:hub(config-zone-pair)# rule 40
esr:hub(config-zone-pair-rule)# action permit
esr:hub(config-zone-pair-rule)# match protocol udp
esr:hub(config-zone-pair-rule)# match source-address any
esr:hub(config-zone-pair-rule)# match destination-address any
esr:hub(config-zone-pair-rule)# match source-port any
esr:hub(config-zone-pair-rule)# match destination-port IKE4500
esr:hub(config-zone-pair-rule)# enable
esr:hub(config-zone-pair-rule)# exit
esr:hub(config-zone-pair)# exit
esr:hub(config)#
1. Создайте объекты, описывающие подсети, для дальнейшего их использования в правилах NAT.
1.1. Для защищаемой подсети Hub:
esr:hub(config)# object-group network LAN_HUB
esr:hub(config-object-group-network)# ip prefix 192.168.20.0/24
esr:hub(config-object-group-network)# exit
1.2. Для защищаемой подсети Spoke:
esr:hub(config)# object-group network LAN_SPOKE
esr:hub(config-object-group-network)# ip prefix 192.168.1.0/24
esr:hub(config-object-group-network)# exit
2. Создайте набор правил для интерфейса gigabitethernet 1/0/1:
esr:hub(config)# nat source
esr:hub(config-snat)# ruleset SNAT_ON_GI101
esr:hub(config-snat-ruleset)# to interface gigabitethernet 1/0/1
2.1. Отключите Source NAT для локальных пакетов IKE от CGW:
esr:hub(config-snat-ruleset)# rule 10
esr:hub(config-snat-rule)# description "disable SNAT for local IKE packets
esr:hub(config-snat-rule)# action source-nat off
esr:hub(config-snat-rule)# match ike-local
esr:hub(config-snat-rule)# match source-address any
esr:hub(config-snat-rule)# match destination-address any
esr:hub(config-snat-rule)# enable
esr:hub(config-snat-rule)# exit
esr:hub(config-snat-ruleset)#
Если не отключить функции Source NAT для локальных пакетов IKE, то возможна ассиметричная передача зашифрованного трафика по интерфейсам gi1/0/1, gi1/0/2 (подробнее об этом будет указано при выполнении настроек в CGW CLI).
Так же если оставить функцию Source NAT включенной для локальных пакетов IKE, то может произойти замена стандартного порта 500/4500 на произвольный в диапазоне от 1024 до 65535.
Выполнение функций Source NAT на других транзитных устройствах разрешается и поддерживается (NAT-T).
2.2. Отключите Source NAT для защищаемого трафика из подсети 192.168.20.0/24 в подсеть 192.168.1.0/24:
esr:hub(config-snat-ruleset)# rule 20
esr:hub(config-snat-rule)# description "disable SNAT for traffic which must be protected by IPsec"
esr:hub(config-snat-rule)# action source-nat off
esr:hub(config-snat-rule)# match protocol any
esr:hub(config-snat-rule)# match source-address LAN_HUB
esr:hub(config-snat-rule)# match destination-address LAN_SPOKE
esr:hub(config-snat-rule)# enable
esr:hub(config-snat-rule)# exit
esr:hub(config-snat-ruleset)#
В силу того, что Source NAT отрабатывает до зашифрования, то для всего трафика, который требуется шифровать нужно отключать Source NAT.
2.3. Включите Source NAT для всего оставшегося трафика:
esr:hub(config-snat-ruleset)# rule 30
esr:hub(config-snat-rule)# description "enable dynamic SNAT for traffic to Internet"
esr:hub(config-snat-rule)# action source-nat netmap 172.16.15.2/32
esr:hub(config-snat-rule)# match protocol any
esr:hub(config-snat-rule)# match source-address any
esr:hub(config-snat-rule)# match destination-address any
esr:hub(config-snat-rule)# enable
esr:hub(config-snat-rule)# exit
esr:hub(config-snat-ruleset)# exit
3. Создайте набор правил для интерфейса gigabitethernet 1/0/2:
esr:hub(config-snat)# ruleset SNAT_ON_GI102
esr:hub(config-snat-ruleset)# to interface gigabitethernet 1/0/2
esr:hub(config-snat-ruleset)# rule 10
esr:hub(config-snat-rule)# description "disable SNAT for local IKE packets"
esr:hub(config-snat-rule)# match source-address any
esr:hub(config-snat-rule)# match destination-address any
esr:hub(config-snat-rule)# match ike-local
esr:hub(config-snat-rule)# action source-nat off
esr:hub(config-snat-rule)# enable
esr:hub(config-snat-rule)# exit
esr:hub(config-snat-ruleset)# rule 20
esr:hub(config-snat-rule)# description "disable SNAT for traffic which must be protected by IPsec"
esr:hub(config-snat-rule)# match protocol any
esr:hub(config-snat-rule)# match source-address LAN_HUB
esr:hub(config-snat-rule)# match destination-address LAN_SPOKE
esr:hub(config-snat-rule)# action source-nat off
esr:hub(config-snat-rule)# enable
esr:hub(config-snat-rule)# exit
esr:hub(config-snat-ruleset)# rule 30
esr:hub(config-snat-rule)# description "enable dynamic SNAT for traffic to Internet"
esr:hub(config-snat-rule)# match protocol any
esr:hub(config-snat-rule)# match source-address any
esr:hub(config-snat-rule)# match destination-address any
esr:hub(config-snat-rule)# action source-nat netmap 172.16.16.2/32
esr:hub(config-snat-rule)# enable
esr:hub(config-snat-rule)# exit
esr:hub(config-snat-ruleset)# exit
esr:hub(config-snat)# exit
1. Включите SSH-сервер:
esr:hub(config)# ip ssh server
2. Сохраните настройки и выйдите в CLI разграничения доступа:
esr:hub(config)# do commit
2017-03-29T18:06:05+00:00 %CLI-I-CRIT: user admin from console input: do commit
Configuration has been successfully committed
esr:hub(config)# do confirm
2017-03-29T18:06:09+00:00 %CLI-I-CRIT: user admin from console input: do confirm
Configuration has been successfully confirmed
esr:hub(config)# end
esr:hub# logout
administrator@hub]
После того как был включен SSH-сервер к устройству можно подключаться по SSH. Чтобы попасть в консоль ESR CLI при подключении к Hub нужно указывать имя пользователя admin, а для консоли CGW CLI – cscons. Удаленно напрямую в CLI разграничения доступа войти нельзя, но можно через CGW CLI.
Настройки в консоли ESR CLI завершены. Конфигурация устройства Hub приведена в Приложении.
Для аутентификации партнеров по IPsec можно использовать только цифровые сертификаты, выпущенные при помощи сертифицированного СКЗИ.
Аутентификация по предопределенным ключам запрещена и возможна только в тестовых целях.
Закрытый ключ для сертификата устройства Hub будет сгенерирован при помощи утилиты cert_mgr с использованием биологического датчика случайных чисел (БИО ДСЧ). Закрытый ключ может храниться либо на файловой системе устройства, либо на защищенном ключевом носителе (токен). В данном сценарии закрытый ключ будет располагаться в специальном контейнере на файловой системе устройства Hub.
В момент генерации ключевой пары будет также сгенерирован запрос на сертификат устройства Hub. Данный запрос для его последующей доставки на УЦ будет сохранен на USB-flash накопитель.
USB-flash накопитель должен содержать файловую систему FAT32. NTFS может использоваться только на чтение, запись на USB-flash накопитель с файловой системой NTFS невозможна.
1. Вставьте USB-flash накопитель в свободный USB порт устройства Hub (см. рисунок 2).
Рисунок 2. USB-flash накопитель, установленный в USB порт ESR-ST
На экране появятся следующие сообщения, которые свидетельствуют о нормальной работе USB-flash накопителя:
2017-03-30T09:17:21+00:00 %SYSTEM-E-KERNEL: [66075.864000] sd 0:0:0:0: [sda] No Caching mode page found
2017-03-30T09:17:21+00:00 %SYSTEM-E-KERNEL: [66075.864000] sd 0:0:0:0: [sda] Assuming drive cache: write through
2017-03-30T09:17:21+00:00 %SYSTEM-E-KERNEL: [66075.872000] sd 0:0:0:0: [sda] No Caching mode page found
2017-03-30T09:17:21+00:00 %SYSTEM-E-KERNEL: [66075.872000] sd 0:0:0:0: [sda] Assuming drive cache: write through
2017-03-30T09:17:21+00:00 %SYSTEM-E-KERNEL: [66075.880000] sd 0:0:0:0: [sda] No Caching mode page found
2017-03-30T09:17:21+00:00 %SYSTEM-E-KERNEL: [66075.880000] sd 0:0:0:0: [sda] Assuming drive cache: write through
2017-03-30T09:17:21+00:00 %USBFLASH-I-CHANGE: 'S-TERRA' has been inserted!
2017-03-30T09:17:21+00:00 %SYSTEM-W-KERNEL: [66076.060000] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
2. Определите имя USB-flash накопителя:
administrator@hub] dir media:
1 drwx 2048 Thu Jan 1 00:00:00 1970 S-TERRA
В данном сценарии USB-flash накопитель имеет имя S-TERRA.
3. Запустите процесс генерации ключевой пары и запроса на сертификат устройства с сохранением файла запроса на USB-flash накопителе:
administrator@hub] run cert_mgr create -subj "C=RU,O=S-Terra CSP,OU=Research,CN=Hub" -GOST_R341012_256 -fb64 media:S-TERRA/hub.request
· ключ –subj задает отличительное имя (Distinguished Name, DN) сертификата.
Отличительное имя сертификата должно быть уникальным для каждого устройства.
· ключ -GOST_R341012_256 задает использование алгоритма открытого ключа, в данном сценарии используется алгоритм ГОСТ R 34.10-2012-256.
На УЦ для поддержки алгоритма ГОСТ R 34.10-2012-256 должно быть установлено СКЗИ «КриптоПро CSP» версии 4.0 или новее.
· ключ -fb64 задает месторасположение и формат представления запроса на сертификат, в данном сценарии будет использован формат представления BASE64 с сохранением файла запроса в корень USB-flash накопителя под именем hub.request.
3.1. Нажимайте предлагаемые клавиши на клавиатуре:
Progress: [********* ]
Press key: U
После завершения работы БИО ДСЧ файл запроса будет сохранен в корне USB-flash накопителя:
administrator@hub] dir media:S-TERRA/
1 drwx 2048 Thu Jun 16 11:10:44 2016 System Volume Information
2 -rwx 473 Thu Mar 30 09:37:43 2017 hub.request
4. Извлеките USB-flash накопитель.
5. Доставьте файл запроса на УЦ и выпустите по нему сертификат (см. рисунок 3).
Рисунок 3. Пример выпуска сертификата при помощи тестового УЦ от «КриптоПро». Отправка запроса
6. Скопируйте выпущенный сертификат для Hub под именем hub.cer и сертификат УЦ под именем ca.cer (для тестового УЦ от «КриптоПро» данный сертификат можно загрузить по ссылке https://www.cryptopro.ru/certsrv/certcarc.asp, см. рисунок 4) в корень USB-flash накопителя (см. рисунок 5).
Рисунок 4. Страница загрузки сертификата УЦ (ЦС) для тестового УЦ от «КриптоПро»
Рисунок 5. Сертификаты УЦ и устройства Hub в корне USB-flash накопителя
7. Вновь вставьте USB-flash накопитель, содержащий файлы сертификатов, в соответствующий порт USB на устройстве Hub.
8. Убедитесь в наличии сертификатов на USB-flash накопителе:
administrator@hub] dir media:S-TERRA/
1 drwx 2048 Thu Jun 16 11:10:44 2016 System Volume Information
2 -rwx 592 Tue Jan 24 17:21:42 2017 ca.cer
3 -rwx 804 Thu Mar 30 10:12:08 2017 hub.cer
4 -rwx 473 Thu Mar 30 09:37:42 2017 hub.request
9. Импортируйте сертификат УЦ в базу продукта:
administrator@hub] run cert_mgr import -f media:S-TERRA/ca.cer -t
1 OK 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
· ключ –f задает месторасположение файла сертификата.
· ключ –t используется для импортирования доверенного (trusted) сертификата УЦ.
10. Импортируйте сертификат устройства Hub в базу продукта:
administrator@hub] run cert_mgr import -f media:S-TERRA/hub.cer
1 OK C=RU,O=S-Terra CSP,OU=Research,CN=Hub
11. Выполните проверку статуса сертификатов в базе продукта:
administrator@hub] run cert_mgr check
1 State: Inactive 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
Certificate can not be verified.
2 State: Inactive C=RU,O=S-Terra CSP,OU=Research,CN=Hub
Certificate can not be verified.
Видно, что все сертификаты имеют статус Inactive (неактивный) с пометкой: «Certificate can not be verified» (сертификат не может быть проверен). Причиной этому является включенный по умолчанию в CGW CLI механизм проверки списка отозванных сертификатов (далее СОС или CRL). Так как в базе продукта данный СОС отсутствует, поэтому проверка не может быть осуществлена.
Далее, в CGW CLI, загрузка СОС и импортирование его в базу продукта будут настроены автоматически по протоколу HTTP с сервера CRL_distribution_point.
Настройки в CLI разграничения доступа завершены.
1. Перейдите в CGW CLI, введя логин и пароль для CGW CLI.
Пользователь и пароль по умолчанию: cscons, password; пароль по умолчанию должен был быть изменен в соответствии с п. 1.2 раздела «Изменение паролей для пользователей admin и cscons»).
administrator@hub] configure
hub login: cscons
Password:
S-Terra Gate security console
cgw:hub#
2. Выполните команду по синхронизации сетевых интерфейсов между консолями CGW CLI и ESR CLI:
cgw:hub#synchronize network-interfaces
При выполнении данной команды из CGW CLI удалятся сетевые интерфейсы gi1/5 – 24, так как данные интерфейсы объединены в коммутатор (L2) и на них СКЗИ не может контролировать трафик.
Рекомендуется всегда выполнять данную команду перед конфигурированием СКЗИ.
3. Перейдите в режим конфигурирования:
cgw:hub#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
cgw:hub(config)#
4. Задайте пароль на enable (в данном примере в качестве пароля используется слово password):
cgw:hub(config)#enable secret 0 password
5. Укажите в качестве типа идентификатора, используемого в рамках протокола IKE, отличительное имя (Distinguished Name, DN):
cgw:hub(config)#crypto isakmp identity dn
По умолчанию отличительное имя будет взято из сертификата устройства, например, для Hub это «C=RU,O=S-Terra CSP,OU=Research,CN=Hub».
6. Настройте параметры DPD (deep peer detection):
cgw:hub(config)#crypto isakmp keepalive 1 3
cgw:hub(config)#crypto isakmp keepalive retry-count 3
Механизм DPD в случае детектирования того, что партнер по IKE не отвечает на пакеты keepalive за заданный интервал времени, удаляет неактивный IKE туннель и связанные с ним IPsec туннели.
7. Установите время, в течении которого протокол IKE будет ждать ответа от партнера на запрос об установлении первой фазы:
cgw:hub(config)#crypto isakmp session-time-max 10
8. Создайте политику, описывающую параметры IKE туннеля:
cgw:hub(config)#crypto isakmp policy 1
cgw:hub(config-isakmp)#encryption gost
cgw:hub(config-isakmp)#hash gost341112-256-tc26
cgw:hub(config-isakmp)#authentication gost-sig
cgw:hub(config-isakmp)#group vko2
Рекомендуется использовать одну политику для IKE туннелей. Несколько политик может потребоваться в том случае, если необходимо обеспечить совместимость со старыми версиями С-Терра Шлюз, в которых нет поддержки новых алгоритмов.
9. Задайте алгоритм шифрования и контроля целостности (набор преобразований) для трафика:
cgw:hub(config)#crypto ipsec transform-set GOST esp-gost28147-4m-imit
cgw:hub(cfg-crypto-trans)#exit
10. Создайте список доступа (ACL) для трафика, который нужно защищать между Hub и Spoke:
cgw:hub(config)#ip access-list extended hub_spoke
cgw:hub(config-ext-nacl)#permit ip 192.168.20.0 0.0.0.255 192.168.1.0 0.0.0.255
cgw:hub(config-ext-nacl)#exit
cgw:hub(config)#
В списках доступа используется обратная маска.
11. Создание крипто-карт.
Количество крипто-карт должно соответствовать количеству внешних интерфейсов (отличие между крипто-картами в данном сценарии будет только в значении параметра local-address).
Параметр local-address нужно использовать обязательно.
11.1. Создайте крипто-карту (имя ISP1, раздел 1) для интерфейса GigabitEthernet1/1:
cgw:hub(config)#crypto map ISP1 1 ipsec-isakmp
11.1.1 Укажите список доступа для трафика, который нужно шифровать:
cgw:hub(config-crypto-map)#match address hub_spoke
11.1.2 Укажите при помощи какого алгоритма нужно защищать трафик:
cgw:hub(config-crypto-map)#set transform-set GOST
11.1.3 Укажите IP-адрес партнера по IPsec, в данном сценарии – это внешний IP-адрес устройства Spoke:
cgw:hub(config-crypto-map)#set peer 172.16.10.2
11.1.4 Укажите локальный IP-адрес интерфейса GigabitEthernet1/1:
cgw:hub(config-crypto-map)#set local-address 172.16.15.2
cgw:hub(config-crypto-map)#exit
Если партнеров по IPsec несколько, то необходимо в другом разделе данной крипто-карты (например, crypto map ISP1 2 ipsec-isakmp) задать соответствующие параметры.
11.2. Создайте крипто-карту (имя ISP2, раздел 1) для интерфейса GigabitEthernet1/2:
cgw:hub(config)#crypto map ISP2 1 ipsec-isakmp
11.2.1 Укажите список доступа для защищаемого трафика:
cgw:hub(config-crypto-map)#match address hub_spoke
11.2.2 Укажите при помощи какого алгоритма нужно защищать трафик:
cgw:hub(config-crypto-map)#set transform-set GOST
11.2.3 Укажите IP-адрес партнера по IPsec, в данном сценарии это внешний IP-адрес устройства Spoke:
cgw:hub(config-crypto-map)#set peer 172.16.10.2
11.2.4 Укажите локальный IP-адрес интерфейса GigabitEthernet1/2:
cgw:hub(config-crypto-map)#set local-address 172.16.16.2
cgw:hub(config-crypto-map)#exit
12. Создайте списки доступа для блокировки исходящих IKE/NAT-T пакетов, которые имеют IP-адрес источника отличный от того, что задан на том внешнем интерфейсе, к которому данные списки доступа будут прикрепляться:
cgw:hub(config)#ip access-list extended DROP_IKE_FROM_GI1/1
cgw:hub(config-ext-nacl)# deny udp host 172.16.15.2 eq isakmp any
cgw:hub(config-ext-nacl)# deny udp host 172.16.15.2 eq non500-isakmp any
cgw:hub(config-ext-nacl)# permit ip any any
cgw:hub(config-ext-nacl)#exit
cgw:hub(config-ext-nacl)#ip access-list extended DROP_IKE_FROM_GI1/2
cgw:hub(config-ext-nacl)# deny udp host 172.16.16.2 eq isakmp any
cgw:hub(config-ext-nacl)# deny udp host 172.16.16.2 eq non500-isakmp any
cgw:hub(config-ext-nacl)# permit ip any any
cgw:hub(config-ext-nacl)#exit
Список доступа DROP_IKE_FROM_GI1/2 будет использоваться для блокировки на интерфейсе GigabitEthernet1/1 исходящих IKE/NAT-T пакетов, которые имеют IP-адрес источника, принадлежащий к интерфейсу GigabitEthernet1/2 (для DROP_IKE_FROM_GI1/1 аналогично).
Цель данных ACL – запрещать Spoke (или любым другим партнерам) строить ISAKMP/IPsec SA с Hub через резервные каналы, если основной находится в рабочем состоянии.
ВАЖНО: Данные списки доступа должны применяться в паре с настройками в ESR CLI, которые отключают source NAT для локальных IKE пакетов.
13. Прикрепите созданные крипто-карты и списки доступа к внешним интерфейсам GigabitEthernet1/1 и GigabitEthernet1/2:
cgw:hub(config)#interface GigabitEthernet 1/1
cgw:hub(config-if)#crypto map ISP1
cgw:hub(config-if)#ip access-group DROP_IKE_FROM_GI1/2 out
cgw:hub(config-if)#exit
cgw:hub(config)#interface gigabitEthernet 1/2
cgw:hub(config-if)#crypto map ISP2
cgw:hub(config-if)#ip access-group DROP_IKE_FROM_GI1/1 out
cgw:hub(config-if)#exit
Интерфейсы GigabitEthernet1/1, GigabitEthernet1/2 в консоли CGW CLI соответствуют интерфейсам gigabitethernet 1/0/1, gigabitethernet 1/0/2 в консоли ESR CLI.
14. Настройте автоматическую загрузку и импортирование в базу продукта списка отозванных сертификатов с сервера CRL_distribution_point:
cgw:hub(config)#crypto pki trustpoint s-terra_technological_trustpoint
cgw:hub(ca-trustpoint)#crl download group CA http://172.17.10.100/crl.crl
cgw:hub(ca-trustpoint)#crl download time 60
cgw:hub(ca-trustpoint)#exit
Загрузка СОС будет происходить раз в 60 минут.
Разностные списки отозванных сертификатов (delta CRL) не поддерживаются.
Если использование СОС не предполагается, то отключите их проверку:
cgw:hub(config)#crypto pki trustpoint s-terra_technological_trustpoint
cgw:hub(ca-trustpoint)#revocation-check none
15. Примените настройки консоли CGW CLI:
cgw:hub(config)#end
cgw:hub#
Настройки CGW CLI применяются при выходе из режима конфигурирования.
Настройки в CGW CLI завершены. Конфигурация устройства Hub приведена в Приложении.
1. Настройте IP-адрес – 192.168.1.100 и маску – 255.255.255.0 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.1.1.
3. Разрешите прием входящих ICMP пакетов.
Устройство Spoke настраивается аналогично устройству Hub, за исключением:
1. ESR CLI.
1.1. Используются соответствующие IP-адреса (см. схему взаимодействия).
1.2. Source NAT настраивается для одного интерфейса (так как на Spoke только один внешний интерфейс).
1.3. MultiWAN не настраивается.
2. CGW CLI.
Не забудьте перед началом настройки выполнить команду synchronize network-interfaces.
2.1. Используется только одна крипто-карта, в которой указываются два пира для Hub (сначала с основным провайдером, потом с резервным) и не указывается параметр local-address:
cgw:spoke(config)#crypto map VPN 1 ipsec-isakmp
cgw:spoke(config-crypto-map)#match address hub_spoke
cgw:spoke(config-crypto-map)#set transform-set GOST
cgw:spoke(config-crypto-map)#set peer 172.16.15.2
cgw:spoke(config-crypto-map)#set peer 172.16.16.2
cgw:spoke(config-crypto-map)#exit
Конфигурация консоли ESR CLI приведена в Приложении.
Конфигурация консоли CGW CLI приведена в Приложении.
1. Выполните команду с устройства host_behind_hub:
root@host_behind_hub:~# ping 172.17.10.100 -c 4
PING 172.17.10.100 (172.17.10.100) 56(84) bytes of data.
64 bytes from 172.17.10.100: icmp_req=1 ttl=61 time=1.15 ms
64 bytes from 172.17.10.100: icmp_req=2 ttl=61 time=1.27 ms
64 bytes from 172.17.10.100: icmp_req=3 ttl=61 time=1.21 ms
64 bytes from 172.17.10.100: icmp_req=4 ttl=61 time=1.03 ms
--- 172.17.10.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.033/1.169/1.270/0.094 ms
1.1. Убедитесь, что данные ICMP пакеты попадают под правила Source NAT.
1.1.1 Войдите в ESR CLI устройства Hub.
1.1.2 Выполните команду:
esr:hub# show ip nat translations
Рисунок 6. Таблица трансляций NAT на Hub
Видно, что доступ в Интернет успешно осуществляется из подсети 192.168.20.0/24 устройства Hub. Правила Source NAT отрабатывают верно (см. рисунок 6).
1. Выполните команду с устройства host_behind_spoke:
root@host_behind_spoke:~# ping 172.17.10.100 -c 4
PING 172.17.10.100 (172.17.10.100) 56(84) bytes of data.
64 bytes from 172.17.10.100: icmp_req=1 ttl=61 time=2.25 ms
64 bytes from 172.17.10.100: icmp_req=2 ttl=61 time=1.42 ms
64 bytes from 172.17.10.100: icmp_req=3 ttl=61 time=1.28 ms
64 bytes from 172.17.10.100: icmp_req=4 ttl=61 time=1.15 ms
--- 172.17.10.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.154/1.528/2.253/0.430 ms
1.1. Убедитесь, что данные ICMP пакеты попадают под правила Source NAT.
1.1.1 Войдите в ESR CLI устройства Spoke.
1.1.2 Выполните команду:
esr:spoke# show ip nat translations
Рисунок 7. Таблица трансляций NAT на Spoke
Видно, что доступ в Интернет успешно осуществляется из подсети 192.168.1.0/24 устройства Spoke. Правила Source NAT отрабатывают верно (см. рисунок 7).
С устройства Hub из консоли ESR CLI выполните команду ping на внешний IP-адрес устройства Spoke:
esr:hub# ping 172.16.10.2 packets 4
PING 172.16.10.2 (172.16.10.2) 56(84) bytes of data.
!!!!
--- 172.16.10.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.675/1.094/1.368/0.270 ms
Видно, что ICMP пакеты между Hub и Spoke успешно проходят.
1. Проверьте, что СОС на устройствах Hub и Spoke импортирован в базу продукта.
1.1. Проверьте, что СОС на устройстве Hub импортирован в базу продукта:
administrator@hub] run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: trusted 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
2 Status: local C=RU,O=S-Terra CSP,OU=Research,CN=Hub
3 CRL: 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
1.2. Проверьте, что СОС на устройстве Spoke импортирован в базу продукта:
administrator@spoke] run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: trusted 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
2 Status: local C=RU,O=S-Terra CSP,OU=Research,CN=Spoke
3 CRL: 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
2. Проверьте статусы сертификатов на устройствах Hub и Spoke.
2.1. Проверьте, что на устройстве Hub все сертификаты имеют статус Active:
administrator@hub] run cert_mgr check
1 State: Active 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
2 State: Active C=RU,O=S-Terra CSP,OU=Research,CN=Hub
2.2. Проверьте, что на устройстве Spoke все сертификаты имеют статус Active:
administrator@spoke] run cert_mgr check
1 State: Active 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2
2 State: Active C=RU,O=S-Terra CSP,OU=Research,CN=Spoke
Видно, что на всех устройствах СОС импортирован в базу продукта и все сертификаты находятся в активном состоянии.
3. Инициируйте построение защищенного соединения с устройства host_behind_hub, выполнив команду ping с IP адресом назначения устройства host_behind_spoke:
root@host_behind_hub:~# ping 192.168.1.100 -c 4
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_req=1 ttl=62 time=3389 ms
64 bytes from 192.168.1.100: icmp_req=2 ttl=62 time=2381 ms
64 bytes from 192.168.1.100: icmp_req=3 ttl=62 time=1373 ms
64 bytes from 192.168.1.100: icmp_req=4 ttl=62 time=365 ms
--- 192.168.1.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3023ms
rtt min/avg/max/mdev = 365.861/1877.807/3389.635/1126.901 ms, pipe 4
Большие задержки (RTT) только у первых пакетов, так как в этот момент происходит построение защищенного соединения.
3.1. Убедитесь в наличии защищенного соединения на устройстве Hub:
administrator@hub] run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.15.2,500)-(172.16.10.2,500) active 1968 1876
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (192.168.20.0-192.168.20.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 352 352
3.2. Убедитесь в наличии защищенного соединения на устройстве Spoke:
administrator@spoke] run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.10.2,500)-(172.16.15.2,500) active 1876 1968
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (192.168.1.0-192.168.1.255,*)-(192.168.20.0-192.168.20.255,*) * ESP tunn 352 352
Видно, что защищенное соединение между устройствами Hub и Spoke успешно установлено.
1. Запустите бесконечный пинг с устройства host_behind_spoke на host_behind_hub:
root@host_behind_spoke:~# ping 192.168.20.100
2. Приведите основной канал (интерфейс gi1/0/1) устройства Hub в неработоспособное состояние (например отключите кабель или заблокируйте ICMP пакеты на IP-адрес 172.17.10.100).
3. Подождите 15-20 секунд до появления следующего сообщения на консоли устройства Hub:
MultiWAN (cgw-notify): switching routes from GigabitEthernet1/1 to GigabitEthernet1/2
4. В выводе программы ping на устройстве host_behind_spoke видны потери пакетов, после чего связь успешно восстанавливается:
64 bytes from 192.168.20.100: icmp_req=364 ttl=62 time=1.85 ms
64 bytes from 192.168.20.100: icmp_req=365 ttl=62 time=1.93 ms
64 bytes from 192.168.20.100: icmp_req=366 ttl=62 time=2.03 ms
64 bytes from 192.168.20.100: icmp_req=380 ttl=62 time=12106 ms
64 bytes from 192.168.20.100: icmp_req=383 ttl=62 time=9082 ms
64 bytes from 192.168.20.100: icmp_req=386 ttl=62 time=6058 ms
64 bytes from 192.168.20.100: icmp_req=384 ttl=62 time=8074 ms
64 bytes from 192.168.20.100: icmp_req=381 ttl=62 time=11098 ms
64 bytes from 192.168.20.100: icmp_req=385 ttl=62 time=7066 ms
64 bytes from 192.168.20.100: icmp_req=387 ttl=62 time=5050 ms
64 bytes from 192.168.20.100: icmp_req=382 ttl=62 time=10090 ms
64 bytes from 192.168.20.100: icmp_req=393 ttl=62 time=2.04 ms
64 bytes from 192.168.20.100: icmp_req=394 ttl=62 time=1.46 ms
5. Проверьте на устройстве Hub, что маршрут по умолчанию добавлен через резервный интерфейс gi1/0/2:
esr:hub# show ip route
Codes: C - connected, S - static, R - RIP derived,
O - OSPF derived, IA - OSPF inter area route,
E1 - OSPF external type 1 route, E2 - OSPF external type 2 route
B - BGP derived, D - DHCP derived, K - kernel route,
* - FIB route
S * 0.0.0.0/0 [1/0] via 172.16.16.1 on gi1/0/2 [static 09:46:12]
C * 192.168.20.0/24 [0/0] dev br1 [direct 2017-11-16]
C * 172.16.15.0/24 [0/0] dev gi1/0/1 [direct 2017-11-16]
C * 172.16.16.0/24 [0/0] dev gi1/0/2 [direct 2017-11-16]
6. Проверьте на устройстве Hub состояние MultiWAN (основной интерфейс должен быть неактивен, а маршрут по умолчанию должен быть добавлен через резервный интерфейс):
esr:hub# show wan interfaces status
Interface Nexthop Status Uptime/Downtime
------------- ----------------------- -------- ------------------------------------------
gi1/0/1 172.16.15.1 Inactive --
gi1/0/2 172.16.16.1 Active --
esr:hub# show wan rules
Rule 1 detailed information:
Failover: Enabled
Network: 0.0.0.0/0 Metric: 0
gi1/0/2 Weight: 1 Nexthop: 172.16.16.1 [Active]
7. Проверьте на устройстве Hub информацию о защищенных соединениях:
administrator@hub] run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 9 (172.16.16.2,500)-(172.16.10.2,500) active 1876 1968
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 2 (192.168.20.0-192.168.20.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 54648 54648
Видно, что переключение выполнено успешно: маршрут по умолчанию добавлен через резервный интерфейс; защищенное соединение также успешно построено с IP-адреса, принадлежащего резервному интерфейсу gi1/0/2.
1. Восстановите основной канал.
2. Подождите 10-15 секунд до появления следующего сообщения на консоли устройства Hub:
MultiWAN (cgw-notify): switching routes from GigabitEthernet1/2 to GigabitEthernet1/1
3. В выводе программы ping на устройстве host_behind_spoke видны потери пакетов, после чего связь успешно восстанавливается:
64 bytes from 192.168.20.100: icmp_req=1647 ttl=62 time=1.68 ms
64 bytes from 192.168.20.100: icmp_req=1648 ttl=62 time=1.86 ms
64 bytes from 192.168.20.100: icmp_req=1649 ttl=62 time=1.94 ms
64 bytes from 192.168.20.100: icmp_req=1650 ttl=62 time=1.77 ms
64 bytes from 192.168.20.100: icmp_req=1665 ttl=62 time=13376 ms
64 bytes from 192.168.20.100: icmp_req=1667 ttl=62 time=11360 ms
64 bytes from 192.168.20.100: icmp_req=1666 ttl=62 time=12368 ms
64 bytes from 192.168.20.100: icmp_req=1668 ttl=62 time=10352 ms
64 bytes from 192.168.20.100: icmp_req=1669 ttl=62 time=9344 ms
64 bytes from 192.168.20.100: icmp_req=1670 ttl=62 time=8336 ms
64 bytes from 192.168.20.100: icmp_req=1671 ttl=62 time=7328 ms
4. Проверьте на устройстве Hub, что маршрут по умолчанию снова добавлен через основной интерфейс gi1/0/1:
esr:hub# show ip route
Codes: C - connected, S - static, R - RIP derived,
O - OSPF derived, IA - OSPF inter area route,
E1 - OSPF external type 1 route, E2 - OSPF external type 2 route
B - BGP derived, D - DHCP derived, K - kernel route,
* - FIB route
S * 0.0.0.0/0 [1/0] via 172.16.15.1 on gi1/0/1 [static 10:07:38]
C * 192.168.20.0/24 [0/0] dev br1 [direct 2017-11-16]
C * 172.16.15.0/24 [0/0] dev gi1/0/1 [direct 2017-11-16]
C * 172.16.16.0/24 [0/0] dev gi1/0/2 [direct 2017-11-16]
5. Проверьте на устройстве Hub состояние MultiWAN (основной интерфейс должен быть снова активен, маршрут по умолчанию должен быть добавлен через основной интерфейс):
esr:hub# show wan interfaces status
Interface Nexthop Status Uptime/Downtime
------------- ----------------------- -------- ------------------------------------------
gi1/0/1 172.16.15.1 Active --
gi1/0/2 172.16.16.1 Active --
esr:hub# show wan rules
Rule 1 detailed information:
Failover: Enabled
Network: 0.0.0.0/0 Metric: 0
gi1/0/1 Weight: 255 Nexthop: 172.16.15.1 [Active]
6. Проверьте на устройстве Hub информацию о защищенных соединениях:
administrator@hub] run sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 15 (172.16.15.2,500)-(172.16.10.2,500) active 1876 1968
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 3 (192.168.20.0-192.168.20.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 8624 8624
Видно, что обратное переключение также выполнено успешно: маршрут по умолчанию снова добавлен через основной интерфейс; защищенное соединение также успешно построено с IP-адреса, принадлежащего основному интерфейсу gi1/0/1.
hostname hub
username admin
password encrypted $6$2/q4OFeT5PVnj8Ma$88EfPcF1wjdzGgWXsLY5Pq7JTwIt7SQrgvvojeAkxAwgnsba8IwnqV7lJQJ8n2oykjA1jlH0rIGLYhgybW/8H/
exit
username cscons
password encrypted $6$gL1pRiCEODthUFN6$vUmSnA4LBTLFc5Dm6iJougHHYWVJDbLowhOOVwinMwbomLLYpHrmy/12gm8bVhAWs2c6QAFWg6fMMYMQ8Ch2i0
exit
security zone trusted
exit
security zone untrusted
exit
object-group service SSH
port-range 22
exit
object-group service IKE500
port-range 500
exit
object-group service IKE4500
port-range 4500
exit
object-group network LAN_HUB
ip prefix 192.168.20.0/24
exit
object-group network LAN_SPOKE
ip prefix 192.168.1.0/24
exit
wan load-balance target-list host_in_internet
target 1
ip address 172.17.10.100
enable
exit
exit
bridge 1
vlan 1
security-zone trusted
ip address 192.168.20.1/24
enable
exit
interface gigabitethernet 1/0/1
security-zone untrusted
ip address 172.16.15.2/24
wan load-balance nexthop 172.16.15.1
wan load-balance source-address 172.16.15.2
wan load-balance target-list host_in_internet
wan load-balance enable
exit
interface gigabitethernet 1/0/2
security-zone untrusted
ip address 172.16.16.2/24
wan load-balance nexthop 172.16.16.1
wan load-balance source-address 172.16.16.2
wan load-balance target-list host_in_internet
wan load-balance enable
exit
interface gigabitethernet 1/0/3
shutdown
exit
interface gigabitethernet 1/0/4
shutdown
exit
interface gigabitethernet 1/0/5
switchport
exit
interface gigabitethernet 1/0/6
switchport
exit
interface gigabitethernet 1/0/7
switchport
exit
interface gigabitethernet 1/0/8
switchport
exit
interface gigabitethernet 1/0/9
switchport
exit
interface gigabitethernet 1/0/10
switchport
exit
interface gigabitethernet 1/0/11
switchport
exit
interface gigabitethernet 1/0/12
switchport
exit
interface gigabitethernet 1/0/13
switchport
exit
interface gigabitethernet 1/0/14
switchport
exit
interface gigabitethernet 1/0/15
switchport
exit
interface gigabitethernet 1/0/16
switchport
exit
interface gigabitethernet 1/0/17
switchport
exit
interface gigabitethernet 1/0/18
switchport
exit
interface gigabitethernet 1/0/19
switchport
exit
interface gigabitethernet 1/0/20
switchport
exit
interface gigabitethernet 1/0/21
switchport
exit
interface gigabitethernet 1/0/22
switchport
exit
interface gigabitethernet 1/0/23
switchport
exit
interface gigabitethernet 1/0/24
switchport
exit
interface tengigabitethernet 1/0/1
shutdown
exit
interface tengigabitethernet 1/0/2
shutdown
exit
security zone-pair trusted untrusted
rule 10
action permit
match protocol any
match source-address any
match destination-address any
enable
exit
exit
security zone-pair trusted trusted
rule 10
action permit
match protocol any
match source-address any
match destination-address any
enable
exit
exit
security zone-pair untrusted trusted
rule 10
action permit
match protocol any
match source-address any
match destination-address any
match ipsec-decrypted
enable
exit
exit
security zone-pair trusted self
rule 10
action permit
match protocol tcp
match source-address any
match destination-address any
match source-port any
match destination-port SSH
enable
exit
rule 20
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
exit
security zone-pair untrusted self
rule 10
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 20
action permit
match protocol any
match source-address any
match destination-address any
match ipsec-decrypted
enable
exit
rule 30
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port IKE500
enable
exit
rule 40
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port IKE4500
enable
exit
exit
nat source
ruleset SNAT_ON_GI101
to interface gigabitethernet 1/0/1
rule 10
description "disable SNAT for local IKE packets"
match source-address any
match destination-address any
match ike-local
action source-nat off
enable
exit
rule 20
description "disable SNAT for traffic which must be protected by IPsec"
match protocol any
match source-address LAN_HUB
match destination-address LAN_SPOKE
action source-nat off
enable
exit
rule 30
description "enable dynamic SNAT for traffic to Internet"
match protocol any
match source-address any
match destination-address any
action source-nat netmap 172.16.15.2/32
enable
exit
exit
ruleset SNAT_ON_GI102
to interface gigabitethernet 1/0/2
rule 10
description "disable SNAT for local IKE packets"
match source-address any
match destination-address any
match ike-local
action source-nat off
enable
exit
rule 20
description "disable SNAT for traffic which must be protected by IPsec"
match protocol any
match source-address LAN_HUB
match destination-address LAN_SPOKE
action source-nat off
enable
exit
rule 30
description "enable dynamic SNAT for traffic to Internet"
match protocol any
match source-address any
match destination-address any
action source-nat netmap 172.16.16.2/32
enable
exit
exit
exit
ip route 0.0.0.0/0 wan load-balance rule 1
wan load-balance rule 1
failover
failover cgw-notify
outbound interface gigabitethernet 1/0/1 255
outbound interface gigabitethernet 1/0/2
enable
exit
ip ssh server
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp session-time-max 10
crypto isakmp keepalive 1 3
crypto isakmp keepalive retry-count 3
aaa new-model
!
!
hostname hub
enable secret 5 X03MO1qnZdYdgyfeuILPmQ==
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set GOST esp-gost28147-4m-imit
!
ip access-list extended hub_spoke
permit ip 192.168.20.0 0.0.0.255 192.168.1.0 0.0.0.255
!
ip access-list extended DROP_IKE_FROM_GI1/1
deny udp host 172.16.15.2 eq isakmp any
deny udp host 172.16.15.2 eq non500-isakmp any
permit ip any any
!
ip access-list extended DROP_IKE_FROM_GI1/2
deny udp host 172.16.16.2 eq isakmp any
deny udp host 172.16.16.2 eq non500-isakmp any
permit ip any any
!
!
crypto map ISP1 1 ipsec-isakmp
match address hub_spoke
set transform-set GOST
set local-address 172.16.15.2
set peer 172.16.10.2
!
crypto map ISP2 1 ipsec-isakmp
match address hub_spoke
set transform-set GOST
set local-address 172.16.16.2
set peer 172.16.10.2
!
interface GigabitEthernet1/1
ip address 172.16.15.2 255.255.255.0
ip access-group DROP_IKE_FROM_GI1/2 out
crypto map ISP1
!
interface GigabitEthernet1/2
ip address 172.16.16.2 255.255.255.0
ip access-group DROP_IKE_FROM_GI1/1 out
crypto map ISP2
!
interface GigabitEthernet1/3
no ip address
shutdown
!
interface GigabitEthernet1/4
no ip address
shutdown
!
interface TenGigabitEthernet1/1
no ip address
shutdown
!
interface TenGigabitEthernet1/2
no ip address
shutdown
!
interface Bridge1
ip address 192.168.20.1 255.255.255.0
!
!
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group CA http://172.17.10.100/crl.crl
crl download time 60
crypto pki certificate chain s-terra_technological_trustpoint
certificate 2B6E3351FD6EB2AD48200203CB5BA141
3082024C308201FBA00302010202102B6E3351FD6EB2AD48200203CB5BA14130
...
E34EE9640D905032C1F1E3B4491257D5
quit
!
end
hostname spoke
username admin
password encrypted $6$2/q4OFeT5PVnj8Ma$88EfPcF1wjdzGgWXsLY5Pq7JTwIt7SQrgvvojeAkxAwgnsba8IwnqV7lJQJ8n2oykjA1jlH0rIGLYhgybW/8H/
exit
username cscons
password encrypted $6$gL1pRiCEODthUFN6$vUmSnA4LBTLFc5Dm6iJougHHYWVJDbLowhOOVwinMwbomLLYpHrmy/12gm8bVhAWs2c6QAFWg6fMMYMQ8Ch2i0
exit
security zone trusted
exit
security zone untrusted
exit
object-group service SSH
port-range 22
exit
object-group service IKE500
port-range 500
exit
object-group service IKE4500
port-range 4500
exit
object-group network LAN_HUB
ip prefix 192.168.20.0/24
exit
object-group network LAN_SPOKE
ip prefix 192.168.1.0/24
exit
bridge 1
vlan 1
security-zone trusted
ip address 192.168.1.1/24
enable
exit
interface gigabitethernet 1/0/1
security-zone untrusted
ip address 172.16.10.2/24
exit
interface gigabitethernet 1/0/2
shutdown
exit
interface gigabitethernet 1/0/3
switchport
exit
interface gigabitethernet 1/0/4
switchport
exit
interface gigabitethernet 1/0/5
switchport
exit
interface gigabitethernet 1/0/6
switchport
exit
interface gigabitethernet 1/0/7
switchport
exit
interface gigabitethernet 1/0/8
switchport
exit
security zone-pair trusted untrusted
rule 10
action permit
match protocol any
match source-address any
match destination-address any
enable
exit
exit
security zone-pair trusted trusted
rule 10
action permit
match protocol any
match source-address any
match destination-address any
enable
exit
exit
security zone-pair untrusted trusted
rule 10
action permit
match protocol any
match source-address any
match destination-address any
match ipsec-decrypted
enable
exit
exit
security zone-pair trusted self
rule 10
action permit
match protocol tcp
match source-address any
match destination-address any
match source-port any
match destination-port SSH
enable
exit
rule 20
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
exit
security zone-pair untrusted self
rule 10
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 20
action permit
match protocol any
match source-address any
match destination-address any
match ipsec-decrypted
enable
exit
rule 30
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port IKE500
enable
exit
rule 40
action permit
match protocol udp
match source-address any
match destination-address any
match source-port any
match destination-port IKE4500
enable
exit
exit
nat source
ruleset SNAT_ON_GI101
to interface gigabitethernet 1/0/1
rule 10
description "disable SNAT for local IKE packets"
match source-address any
match destination-address any
match ike-local
action source-nat off
enable
exit
rule 20
description "disable SNAT for traffic which must be protected by IPsec"
match protocol any
match source-address LAN_SPOKE
match destination-address LAN_HUB
action source-nat off
enable
exit
rule 30
description "enable dynamic SNAT for traffic to Internet"
match protocol any
match source-address any
match destination-address any
action source-nat netmap 172.16.10.2/32
enable
exit
exit
exit
ip route 0.0.0.0/0 172.16.10.1
ip ssh server
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp session-time-max 10
crypto isakmp keepalive 1 3
crypto isakmp keepalive retry-count 3
aaa new-model
!
!
hostname spoke
enable secret 5 X03MO1qnZdYdgyfeuILPmQ==
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set GOST esp-gost28147-4m-imit
!
ip access-list extended hub_spoke
permit ip 192.168.1.0 0.0.0.255 192.168.20.0 0.0.0.255
!
!
crypto map VPN 1 ipsec-isakmp
match address hub_spoke
set transform-set GOST
set peer 172.16.15.2
set peer 172.16.16.2
!
interface GigabitEthernet1/1
ip address 172.16.10.2 255.255.255.0
crypto map VPN
!
interface GigabitEthernet1/2
no ip address
shutdown
!
interface Bridge1
ip address 192.168.1.1 255.255.255.0
!
!
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group CA http://172.17.10.100/crl.crl
crl download time 60
crypto pki certificate chain s-terra_technological_trustpoint
certificate 2B6E3351FD6EB2AD48200203CB5BA141
3082024C308201FBA00302010202102B6E3351FD6EB2AD48200203CB5BA14130
...
E34EE9640D905032C1F1E3B4491257D5
quit
!
end