Инспекция трафика в центре c филиалов и мобильных клиентов
Настоящий документ содержит описание способа совместного использования Продуктов компании ООО «С-Терра СиЭсПи» и Продуктов третьих производителей.
ООО «С-Терра СиЭсПи» осуществляет сопровождение настоящего сценария в части настроек Продуктов Компании. Упоминание наименований, продуктов, торговых марок третьих организаций исключительно неформально и не является поддержкой, рекомендацией либо рекламой. ООО «С-Терра СиЭсПи» не несет какой-либо ответственности в отношении работоспособности и использования этих продуктов. Документ имеет статус вспомогательного материала, который может быть использован технологическими партнерами, компаниями-интеграторами, при разработке собственных решений.
Решения, разработанные на базе данного сценария, могут применяться в действующих сетях/системах только после тестовой и/или опытной эксплуатации.
Данная инструкция описывает настройку Policy-based routing.Предполагается, что перед началом настройки стенд собран и настроен в соответствии со сценарием «Звезда с перешифрованием в центре».
Для переноса запросов и сертификатов между криптошлюзами и центром выпуска сертификатов требуется USB Flash накопитель.
Требования к квалификации администратора
Администратор должен обладать обширными знаниями в области сетевой информационной безопасности, иметь опыт работы с аналогичным оборудованием/программным обеспечением, знать и понимать следующие технологии и протоколы: PKI, IPsec, NAT, Firewall, routing, switching.
1. Требования к устройствам.
1.1. С-Терра Шлюз.
1.1.1 Устройства С-Терра Шлюз должны быть инициализированы (подробнее на http://doc.s-terra.ru раздел С-Терра Шлюз -> С-Терра Шлюз 4.3 -> «Подключение ПАК и инициализация С-Терра Шлюз на вычислительных системах архитектуры Intel x86/x86-64»).
1.2. Центр выпуска сертификатов.
1.2.1 Должен быть настроен центр выпуска сертификатов (удостоверяющий центр, далее УЦ) для IPsec. Устройство с именем Certification_authority на схеме.
1.2.2 Для выпуска цифровых сертификатов допускается использование встроенного в OC Windows Server 2008R2 (или новее) удостоверяющего центра совместно с сертифицированным СКЗИ «КриптоПро» CSP 4.0 (или новее).
1.2.3 Для тестовых целей можно использовать тестовый УЦ от «КриптоПро» (веб-интерфейс: https://www.cryptopro.ru/certsrv/certrqxt.asp).
Категорически запрещено использование тестового УЦ от «КриптоПро» в производственной (боевой) эксплуатации, так как в данном случае отсутствует возможность контролировать процесс выпуска сертификатов и, соответственно, процедуру аутентификации.
1.3. HTTP сервер для распространения списка отозванных сертификатов.
1.3.1 Функционирующий HTTP сервер для распространения списка отозванных сертификатов (СОС). Устройство с именем CRL_distribution_point на схеме. Если по объективным причинам использование СОС не представляется возможным или не требуется, то проверку СОС можно отключить в CLI.
Доставка нового списка отозванных сертификатов с удостоверяющего центра на HTTP сервер должна происходить заблаговременно, до истечения срока действия предыдущего списка.
2. Требования к сетевому взаимодействию.
2.1. Между устройствами стенда должна быть обеспечена IP связность.
Рисунок 1. Схема взаимодействия
1. Размещение устройств.
1.1. В центральном офисе размещаются: центр выпуска сертификатов (Certification_authority), криптошлюз С-Терра Шлюз (Hub1), устройство, осуществляющее инспекцию трафика, (Traffic_Inspection) и персональный компьютер (host_behind_hub1).
1.2. В филиале размещаются: криптошлюз С-Терра Шлюз (Spoke1) и персональные компьютеры (host1_behind_spoke1 и host2_behind_spoke1).
1.3. В неконтролируемом сегменте (синее облако на схеме) размещаются: HTTP сервер для распространения списка отозванных сертификатов (CRL_distribution_point), маршрутизатор (Router1), устройство мобильного клиента «С-Терра Клиент» (Client1).
2. Подключение к сети Интернет.
2.В данном сценарии для эмуляции сети Интернет используются маршрутизатор Router1.
Подключение к сети Интернет на устройствах С-Терра Шлюз будет считаться успешным, если по протоколу ICMP (или «ping») будет доступен HTTP сервер для распространения списка отозванных сертификатов (устройство CRL_distribution_point на схеме).
2.1. Криптошлюз Hub1 подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию через маршрутизатор Router1).
2.2. Криптошлюз Spoke1 подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию через маршрутизатор Router1).
2.3. Клиент Client1 подключается к сети Интернет с помощью статической маршрутизации (маршрут по умолчанию через маршрутизатор Router1).
3. Параметры безопасного взаимодействия.
В ходе построения защищенного соединения мобильный клиент получает адрес из заранее определенного на шлюзе пула (192.168.254.0/24).
Весь IP трафик между подсетями центрального офиса (192.168.100.0/24), филиала (192.168.1.0/24 и 192.168.2.0/24) и клиента (192.168.254.1/32) защищается с использованием алгоритмов ГОСТ и протокола IPsec в туннельном режиме.
Инициировать защищенное соединение между криптошлюзами Hub1 и Spoke1 может трафик из подсети филиала (192.168.1.0/24 или 192.168.2.0/24) в подсеть центра (192.168.100.0/24) и наоборот из центра в филиал, трафик между подсетями филиала (между 192.168.1.0/24 и 192.168.2.0/24), так и трафик от клиента (192.168.254.1/32) до подсети филиала.
Инициировать защищенное соединение между клиентом Client1 и криптошлюзом Hub1 может трафик от клиента до подсети центра или до подсети филиала.
3.1. Параметры протокола IKE:
· Аутентификация при помощи цифровых сертификатов, алгоритм подписи - ГОСТ Р 34.10-2012 (ключ 256 бит);
· Алгоритм шифрования - ГОСТ 28147-89 (ключ 256 бит);
· Алгоритм вычисления хеш-функции - ГОСТ Р 34.11-2012 ТК26 (ключ 256 бит);
· Алгоритм выработки общего ключа (аналог алгоритма Диффи-Хеллмана) - VKO_GOSTR3410_2012_256 (ключ 256 бит).
3.2. Параметры протокола ESP:
· Комбинированный алгоритм шифрования и имитозащиты (контроль целостности) - ESP_GOST-4M-IMIT (ключ 256 бит).
4. Настройка маршрутизации на основе политик.
4.1. Трафик, приходящий на устройство Hub1 через интерфейс g0/0 (eth0), попадает под правило PBR и направляется в соответствующую таблицу маршрутизации. В данной таблице присутствует только маршрут по умолчанию через устройство Traffic_Inspection (192.168.255.2).
4.2. Трафик, приходящий на устройство Spoke1 через интерфейс g0/1.10 (eth1.10) или через интерфейс g0/1.11 (eth1.11), попадает под правило PBR и направляется в соответствующую таблицу маршрутизации. В данной таблице присутствует только маршрут по умолчанию через устройство Router1 (172.16.1.1).
Важно! Для устройства, осуществляющую инспекцию трафика, в данном сценарии настраивается только IP адресация.
1. Настройте IP адрес - 172.16.100.1 и маску - 255.255.255.0 на сетевом интерфейсе ens32.
2. Настройте IP адрес - 172.16.1.1 и маску - 255.255.255.0 на сетевом интерфейсе ens34.
3. Настройте IP адрес - 172.16.2.1 и маску - 255.255.255.0 на сетевом интерфейсе ens35.
4. Разрешите прохождение IPsec трафика.
1. Настройте IP адрес - 192.168.255.2 и маску - 255.255.255.0 на сетевом интерфейсе ens32.
2. Настройте IP адрес - 192.168.100.1 и маску - 255.255.255.0 на сетевом интерфейсе ens34.
3. Задайте маршрут по умолчанию через 192.168.255.1.
4. Разрешите прием и отправку ICMP пакетов.
1. Настройте IP адрес - 192.168.100.100 и маску - 255.255.255.0 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.100.1.
3. Разрешите прием и отправку ICMP пакетов.
1. Настройте IP адрес - 192.168.1.100, маску - 255.255.255.0 и VLAN 10 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.1.1.
3. Разрешите прием и отправку ICMP пакетов.
1. Настройте IP адрес - 192.168.2.100, маску - 255.255.255.0 и VLAN 11 на сетевом интерфейсе.
2. Задайте маршрут по умолчанию через 192.168.2.1.
3. Разрешите прием и отправку ICMP пакетов.
Настройка будет происходить локально при помощи консольного подключения. Основная настройка устройства была произведена в соответствии со сценарием «Звезда с перешифрованием в центре».
Настройка может осуществляться и удаленно (по SSH), но исключительно по доверенному каналу связи. Доверенным каналом связи может считаться канал в пределах контролируемой зоны в случае отсутствия в нем нарушителя (в нашем примере это подсеть 192.168.100.0/24 или 192.168.255.0/24 для центрального офиса).
1. Войдите в CLI разграничения доступа. Для этого, после появления сообщения:
S-Terra administrative console
введите логин и пароль для CLI разграничения доступа:
Пользователь и пароль по умолчанию: administrator, s-terra. Пароль мог быть изменен в сценарии «Звезда с перешифрованием в центре».
login as: administrator
administrator's password:
administrator@Hub1]
2. Войдите в cisco-like консоль из CLI разграничения доступа:
Пользователь и пароль по умолчанию cscons, csp. Пароль мог быть изменен в сценарии «Звезда с перешифрованием в центре».
administrator@Hub1] configure
Hub1 login: cscons
Password:
Last login: Thu Nov28 11:45:25 MSK 2019 on pts/0
S-Terra Gate 4.3.XXXXX (amd64)
Hub1#
3. Задайте IP адрес в соответствии со схемой стенда на внутреннем GigabitEthernet0/1 интерфейсе:
Hub1#configure terminal
Hub1(config)#interface GigabitEthernet 0/1
Hub1(config-if)#ip address 192.168.255.1 255.255.255.0
Hub1(config-if)#exit
4. Задайте маршрут до 192.168.100.0/24 через устройство Traffic_Inspection:
Hub1(config)#ip route 192.168.100.0 255.255.255.0 192.168.255.2
5. Проверьте доступность устройства Traffic_Inspection:
Hub1(config)#do ping 192.168.255.2
PING 192.168.255.2 (192.168.255.2) 100(128) bytes of data.
108 bytes from 192.168.255.2: icmp_seq=1 ttl=64 time=0.461 ms
108 bytes from 192.168.255.2: icmp_seq=2 ttl=64 time=0.513 ms
108 bytes from 192.168.255.2: icmp_seq=3 ttl=64 time=0.449 ms
108 bytes from 192.168.255.2: icmp_seq=4 ttl=64 time=0.464 ms
108 bytes from 192.168.255.2: icmp_seq=5 ttl=64 time=0.391 ms
--- 192.168.255.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4102ms
rtt min/avg/max/mdev = 0.391/0.455/0.513/0.045 ms
1. Задайте пул из которого будет выбран адрес клиенту:
Hub1(config)#ip local pool POOL 192.168.254.1 192.168.254.254
2. Удалите старые списки доступа (ACL):
Hub1(config)#no ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
Hub1(config)#no ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE2
3. Создайте новый список доступа для трафика, который нужно защищать между центральным офисом и филиалом:
Hub1(config)#ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
Hub1(config-ext-nacl)#permit ip 192.168.100.0 0.0.0.255 192.168.1.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.254.0 0.0.0.255 192.168.1.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.100.0 0.0.0.255 192.168.2.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.254.0 0.0.0.255 192.168.2.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Hub1(config-ext-nacl)#exit
Hub1(config)#
4. Создайте новый список доступа для трафика, который нужно защищать между центральным офисом и клиентом:
Hub1(config)#ip access-list extended IPSEC_ACl_HUB1_AND_CLIENT1
Hub1(config-ext-nacl)#permit ip 192.168.100.0 0.0.0.255 192.168.254.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.254.0 0.0.0.255
Hub1(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.254.0 0.0.0.255
Hub1(config-ext-nacl)#exit
Hub1(config)#
5. Создайте динамическую крипто-карту (имя DMAP, раздел 1):
Hub1(config)#crypto dynamic-map DMAP 1
5.1. Укажите список доступа для защищаемого трафика:
Hub1(config-crypto-map)#match address IPSEC_ACl_HUB1_AND_CLIENT1
5.2. Укажите при помощи какого набора алгоритмов нужно защищать трафик:
Hub1(config-crypto-map)#set transform-set GOST_ENCRYPT_AND_INTEGRITY
5.3. Укажите имя пула криптографической карты:
Hub1(config-crypto-map)#set pool POOL
5.4. Включите механизм Reverse Route Injection (RRI):
Hub1(config-crypto-map)#reverse-route
5.5. Обязательно отключите историю удаленных туннелей (если не отключить, то могут быть проблемы с построением IPsec туннелей с устройствами, которые находятся за NAT):
Hub1(config-crypto-map)#set dead-connection history off
Hub1(config-crypto-map)#exit
6. Удалите раздел криптократы с партнером 172.16.2.2.
Hub1(config)#no crypto map VPN 2
7. Привяжите созданную динамическую крипто-карту DMAP к статической крипто-карте (имя VPN, раздел 2):
Hub1(config)#crypto map VPN 2 ipsec-isakmp dynamic DMAP
8. Примените настройки:
Hub1(config-if)#end
Hub1#exit
PBR настраивается через консоль сервиса FRR.
1. Перейдите в linux bash, для этого выполните следующую команду в CLI разграничения доступа:
administrator@hub1] system
Entering system shell...
root@Hub1:~#
2. Добавьте сервис FRR в автозагрузку и запустите его:
root@Hub1:~# systemctl enable frr
Synchronizing state of frr.service with SysV service script with /lib/system/system-sysv-install.
Executing: /lib/system/system-sysv-install enable frr
root@Hub1:~# systemctl start frr
При старте могут возникать сообщения:
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] zebra state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] bgpd state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] ripd state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] ospfd state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] pbrd state -> down : initial connection attempt failedstaticd
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] zebra state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 100663303] Forked background command [pid 832]: /usr/lib/frr/watchfrr.sh restart all
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop bgpd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop ripd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop zebra: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop ospfd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop pbrd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop staticd: pid file not found
Данные сообщения не являются ошибкой при старте сервиса.
3. Войдите в консоль сервиса FRR, для этого нужно из linux bash набрать следующую команду:
root@Hub1:~# vtysh
Hello, this is FRRouting (version 7.3).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
Hub1#
4. Настройте PBR (см. описание http://docs.frrouting.org):
Hub1# configure terminal
4.1. Создайте PBR-карту (имя PBR, раздел 1):
Hub1(config)# pbr-map PBR seq 1
4.2. Укажите для каких пакетов нужно применять политику PBR:
Hub1(config-pbr-map)# match src-ip 192.168.1.0/24
Пакеты с адресом отправителя из подсети 192.168.1.0/24 будут попадать под политику PBR.
4.3. Укажите куда надо перенаправлять пакеты:
Hub1(config-pbr-map)# set nexthop 192.168.255.2
Hub1(config-pbr-map)# exit
4.4. Создайте раздел 2 и раздел 3 PBR-карты для подсетей 192.168.2.0/24 и 192.168.254.0/24:
Hub1(config)# pbr-map PBR seq 2
Hub1(config-pbr-map)# match src-ip 192.168.2.0/24
Hub1(config-pbr-map)# set nexthop 192.168.255.2
Hub1(config-pbr-map)# exit
Hub1(config)# pbr-map PBR seq 3
Hub1(config-pbr-map)# match src-ip 192.168.254.0/24
Hub1(config-pbr-map)# set nexthop 192.168.255.2
Hub1(config-pbr-map)# exit
4.5. Прикрепите PBR-карту к интерфейсу:
Hub1(config)# interface eth0
Hub1(config-if)# pbr-policy PBR
Hub1(config-if)# exit
Hub1(config)# exit
4.6. Сохраните настройки сервиса FRR:
Hub1# write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Warning: /etc/frr/frr.conf.sav unlink failed
Integrated configuration saved to /etc/frr/frr.conf
[OK]
В Приложении представлены тексты конфигураций для криптошлюза Hub1:
· текст консоли cisco-like;
· текст LSP;
· текст консоли FRR.
Настройка будет происходить локально при помощи консольного подключения. Основная настройка устройства была произведена в соответствии со сценарием «Звезда с перешифрованием в центре».
Настройка может осуществляться и удаленно (по SSH), но исключительно по доверенному каналу связи. Доверенным каналом связи может считаться канал в пределах контролируемой зоны в случае отсутствия в нем нарушителя (в нашем примере это подсеть 192.168.1.0/24 или подсеть 192.168.2.0/24 для филиала). Доверенным каналом связи также считается канал, защищенный при помощи протокола IPsec (например, между подсетями 192.168.1.0/24 и 192.168.100.0/24 или между подсетями 192.168.2.0/24 и 192.168.100.0/24 разрешается выполнять настройку критошлюза Spoke1 из подсети 192.168.100.0/24 центрального офиса).
1. Войдите в CLI разграничения доступа. Для этого, после появления сообщения:
S-Terra administrative console
введите логин и пароль для CLI разграничения доступа:
Пользователь и пароль по умолчанию: administrator, s-terra. Пароль мог быть изменен в сценарии «Звезда с перешифрованием в центре».
login as: administrator
administrator's password:
administrator@sterragate]
2. Настройки VLAN интерфейсов осуществляются из linux bash, чтобы попасть в linux bash выполните следующую команду в CLI разграничения доступа:
administrator@hub1] system
Entering system shell...
root@Spoke1:~#
3. Войдите в cisco-like консоль из linux bash:
root@Spoke1:~# cs_console
Spoke1>
4. Войдите в привилегированный режим:
Пароль по умолчанию csp. Пароль мог быть изменен в сценарии «Звезда с перешифрованием в центре».
Spoke1>enable
Password:
Spoke1#
5. Удалите IP адрес на внутреннем GigabitEthernet0/1 интерфейсе:
Hub1#configure terminal
Hub1(config)#interface GigabitEthernet 0/1
Hub1(config-if)#no ip address
Hub1(config-if)#end
Hub1#exit
6. Добавьте в содержимое /etc/network/interfaces интерфейсы eth1.10 и eth1.11 следующие перед ###netifcfg-begih###:
############################################################
# CAUTION: lines under special marker: ###netifcfg-*###
# contains autogenerated information. You can add/modify
# lines outside of those markers
############################################################
# loopback configuration
auto lo
iface lo inet loopback
auto eth1.10
iface eth1.10 inet static
mtu 1500
address 192.168.1.1
netmask 255.255.255.0
auto eth1.11
iface eth1.11 inet static
mtu 1500
address 192.168.2.1
netmask 255.255.255.0
###netifcfg-begin###
auto eth0
iface eth0 inet static
mtu 1500
address 172.16.1.2
netmask 255.255.255.0
broadcast 172.16.1.255
auto eth1
iface eth1 inet manual
mtu 1500
###netifcfg-end###
7. Перезапустите сервис networking и перезагрузите LSP конфигурацию:
Если после настройки сетевых интерфейсов в «Звезда с перешифрованием в центре». криптошлюз не перезагружался, то перезагрузите его. В таком случае перезапускать сервис networking и перезагружать LSP конфигурацию не требуется.
Из-за того, что маршрут по умолчанию до Router1 описан в cisco-like конфигурации, то после перезапуска сервиса networking данный маршрут по умолчанию будет отсутствовать в таблице маршрутизации. Чтобы его добавить достаточно перезагрузить LSP конфигурацию.
root@Hub1:~# systemctl restart networking
При рестарте могут возникать сообщения:
Nov 15 15:31:54 Spoke1 ntpdate[1462]: name server cannot be used: Temporary failure in name resolution (-3)
Nov 15 15:31:54 Spoke1 ntpdate[1552]: name server cannot be used: Temporary failure in name resolution (-3)
Nov 15 15:31:54 Spoke1 ntpdate[1607]: name server cannot be used: Temporary failure in name resolution (-3)
Nov 15 15:31:54 Spoke1 ntpdate[1715]: name server cannot be used: Temporary failure in name resolution (-3)
root@Hub1:~# lsp_mgr reload
Данные сообщения не являются ошибкой при рестарте сервиса.
Параметры IPsec изменяются из cisco-like консоли.
1. Удалите старый список доступа (ACL):
Spoke1#configure terminal
Spoke1(config)#no ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
2. Создайте новый список доступа для трафика, который нужно защищать между центральным офисом и филиалом:
Spoke1(config)#ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
Spoke1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.100.0 0.0.0.255
Spoke1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.254.0 0.0.0.255
Spoke1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Spoke1(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.100.0 0.0.0.255
Spoke1(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.254.0 0.0.0.255
Spoke1(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
Spoke1(config-ext-nacl)#exit
Spoke1(config)#
3. Примените настройки:
Hub1(config-if)#end
Hub1#exit
PBR настраивается через консоль сервиса FRR.
1. Добавьте сервис FRR в автозагрузку и запустите его из linux bash:
root@Spoke1:~# systemctl enable frr
Synchronizing state of frr.service with SysV service script with /lib/system/system-sysv-install.
Executing: /lib/system/system-sysv-install enable frr
root@Spoke1:~# systemctl start frr
При старте могут возникать сообщения:
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] zebra state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] bgpd state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] ripd state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] ospfd state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] pbrd state -> down : initial connection attempt failedstaticd
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 268435467] zebra state -> down : initial connection attempt failed
Nov 15 15:01:54 sterrragate watchfrr[831]: [EC 100663303] Forked background command [pid 832]: /usr/lib/frr/watchfrr.sh restart all
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop bgpd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop ripd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop zebra: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop ospfd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop pbrd: pid file not found
Nov 15 15:01:54 sterrragate watchfrr.sh: Cannot stop staticd: pid file not found
Данные сообщения не являются ошибкой при старте сервиса.
2. Войдите в консоль сервиса FRR, для этого нужно из linux bash набрать следующую команду:
root@Spoke1:~# vtysh
Hello, this is FRRouting (version 7.3).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
Hub1#
3. Настройте PBR (см. описание http://docs.frrouting.org):
Spoke1# configure terminal
3.1. Создайте PBR-карту для VLAN10 (имя PBR.10, раздел 1):
Spoke1(config)# pbr-map PBR.10 seq 1
3.2. Укажите для каких пакетов нужно применять политику PBR:
Spoke1(config-pbr-map)# match src-ip 192.168.1.0/24
Пакеты с адресом отправителя из подсети 192.168.1.0/24 будут попадать под политику PBR
3.3. Укажите куда надо перенаправлять пакеты:
Spoke1(config-pbr-map)# set nexthop 172.16.1.1
Spoke1(config-pbr-map)# exit
3.4. Создайте аналогичную PBR-карту для VLAN11 (имя PBR.11, раздел 1):
Spoke1(config)# pbr-map PBR.11 seq 1
Spoke1(config-pbr-map)# match src-ip 192.168.2.0/24
Spoke1(config-pbr-map)# set nexthop 172.16.1.1
Spoke1(config-pbr-map)# exit
3.5. Прикрепите PBR-карты к интерфейсам:
Spoke1(config)# interface eth1.10
Spoke1(config-if)# pbr-policy PBR.10
Spoke1(config-if)# exit
Spoke1(config)# interface eth1.11
Spoke1(config-if)# pbr-policy PBR.11
Spoke1(config-if)# exit
Spoke1(config)# exit
3.6. Сохраните настройки сервиса FRR:
Spoke1# write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Warning: /etc/frr/frr.conf.sav unlink failed
Integrated configuration saved to /etc/frr/frr.conf
[OK]
Spoke1# exit
В Приложении представлены тексты конфигураций для криптошлюза Spoke1:
· текст консоли cisco-like;
· содержимое /etc/network/interface;
· текст LSP;
· текст консоли FRR.
Настройка выполняется в соответствии со сценарием «Клиент с выдачей адреса из пула + NAT». Во вкладке IPsec Rules в разделе Remote IP Address укажите адреса подсетей 192.168.100.0/24, 192.168.1.0/24 и 192.168.2.0/24 и адрес партнера 172.16.100.2.
Настройте IP адрес - 172.16.2.100 и маску - 255.255.255.0 на сетевом интерфейсе.
В Приложении представлен тексты LSP конфигурации для Client1.
Проверку работоспособности нужно выполнять после завершения настройки всех устройств стенда.
1. Проверьте, что с криптошлюзов Hub1 и Spoke1 по ICMP доступен шлюз по умолчанию (Router1). Для этого выполните команду ping из cisco-like консоли криптошлюзов.
Hub1#ping 172.16.100.1
PING 172.16.100.1 (172.16.100.1) 100(128) bytes of data.
108 bytes from 172.16.100.1: icmp_seq=1 ttl=64 time=0.349 ms
108 bytes from 172.16.100.1: icmp_seq=2 ttl=64 time=0.239 ms
108 bytes from 172.16.100.1: icmp_seq=3 ttl=64 time=0.394 ms
108 bytes from 172.16.100.1: icmp_seq=4 ttl=64 time=0.412 ms
108 bytes from 172.16.100.1: icmp_seq=5 ttl=64 time=0.550 ms
--- 172.16.100.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4100ms
rtt min/avg/max/mdev = 0.239/0.388/0.550/0.103 ms
Spoke1#ping 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 100(128) bytes of data.
108 bytes from 172.16.1.1: icmp_seq=1 ttl=64 time=0.591 ms
108 bytes from 172.16.1.1: icmp_seq=2 ttl=64 time=0.400 ms
108 bytes from 172.16.1.1: icmp_seq=3 ttl=64 time=0.430 ms
108 bytes from 172.16.1.1: icmp_seq=4 ttl=64 time=0.395 ms
108 bytes from 172.16.1.1: icmp_seq=5 ttl=64 time=0.360 ms
--- 172.16.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4086ms
rtt min/avg/max/mdev = 0.360/0.435/0.591/0.082 ms
Видно, что устройство Router1 доступно по ICMP как с Hub1, так и со Spoke1.
2. Проверьте, что с клиента Client1 по ICMP доступен шлюз по умолчанию (Router1). Для этого выполните команду ping из командной строки:
C:\Users\Client1>ping 172.16.2.1
Обмен пакетами с 172.16.2.1 по с 32 байтами данных:
Ответ от 172.16.2.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.2.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.2.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.2.1: число байт=32 время<1мс TTL=64
Статистика Ping для 172.16.2.1:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мск, максимальное = 0 мсек, Среднее = 0 мсек
3. Проверьте, что с защищаемых устройств host1_behind_spoke1 и host2_behind_spoke1 доступен по ICMP криптошлюз Spoke1, который является шлюзом по умолчанию. Для этого выполните команду ping из linux bash консоли защищаемых устройств.
root@host1_behind_spoke1:~# ping 192.168.1.1 -c 5
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.308 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.443 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.390 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.403 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.307 ms
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4094ms
rtt min/avg/max/mdev = 0.307/0.370/0.443/0.055 ms
root@host2_behind_spoke1:~# ping 192.168.2.1 -c 5
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.395 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.411 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=0.370 ms
64 bytes from 192.168.2.1: icmp_seq=4 ttl=64 time=0.528 ms
64 bytes from 192.168.2.1: icmp_seq=5 ttl=64 time=0.473 ms
--- 192.168.2.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4080ms
rtt min/avg/max/mdev = 0.370/0.435/0.528/0.060 ms
Видно, что с защищаемых устройств host1_behind_spoke1 и host2_behind_spoke1 криптошлюз Spoke1 доступен по ICMP.
4. Проверьте, что с устройства Traffic_Inspection доступны по ICMP криптошлюз Hub1, который является шлюзом по умолчанию, и устройство host_behind_hub1. Для этого выполните команду ping из linux bash консоли защищаемых устройств.
root@Traffic_Inspection:~# ping 192.168.100.100 -c 5
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=64 time=0.149 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=64 time=0.728 ms
64 bytes from 192.168.100.100: icmp_seq=3 ttl=64 time=0.384 ms
64 bytes from 192.168.100.100: icmp_seq=4 ttl=64 time=0.433 ms
64 bytes from 192.168.100.100: icmp_seq=5 ttl=64 time=0.439 ms
--- 192.168.100.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4100ms
rtt min/avg/max/mdev = 0.149/0.426/0.728/0.185 ms
root@Traffic_Inspection:~# ping 192.168.255.1 -c 5
PING 192.168.255.1 (192.168.255.1) 56(84) bytes of data.
64 bytes from 192.168.255.1: icmp_seq=1 ttl=64 time=0.213 ms
64 bytes from 192.168.255.1: icmp_seq=2 ttl=64 time=0.410 ms
64 bytes from 192.168.255.1: icmp_seq=3 ttl=64 time=0.377 ms
64 bytes from 192.168.255.1: icmp_seq=4 ttl=64 time=0.411 ms
64 bytes from 192.168.255.1: icmp_seq=5 ttl=64 time=0.377 ms
--- 192.168.255.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4076ms
rtt min/avg/max/mdev = 0.213/0.357/0.411/0.076 ms
Видно, что с устройства Traffic_Inspection достпны криптошлюз Hub1 и устройство host_behind_hub1 по ICMP.
5. Проверьте, что с криптошлюза Hub1 доступен по ICMP криптошлюз Spoke1 (по внешним интерфейсам). Для этого выполните команду ping из cisco-like консоли криптошлюзов.
Hub1#ping 172.16.1.2
PING 172.16.1.2 (172.16.1.2) 100(128) bytes of data.
108 bytes from 172.16.1.2: icmp_seq=1 ttl=63 time=0.790 ms
108 bytes from 172.16.1.2: icmp_seq=2 ttl=63 time=0.723 ms
108 bytes from 172.16.1.2: icmp_seq=3 ttl=63 time=0.964 ms
108 bytes from 172.16.1.2: icmp_seq=4 ttl=63 time=0.804 ms
108 bytes from 172.16.1.2: icmp_seq=5 ttl=63 time=1.43 ms
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4054ms
rtt min/avg/max/mdev = 0.723/0.943/1.434/0.257 ms
Видно, что с криптошлюза Hub1 доступен по ICMP криптошлюз Spoke1.
6. Проверьте, что с криптошлюза Hub1 доступен по ICMP устройство host_behind_hub1. Для этого выполните команду ping из cisco-like консоли криптошлюзов.
Hub1#ping 192.168.100.100
PING 192.168.100.100 (192.168.100.100) 100(128) bytes of data.
108 bytes from 192.168.100.100: icmp_seq=1 ttl=63 time=0.480 ms
108 bytes from 192.168.100.100: icmp_seq=2 ttl=63 time=0.648 ms
108 bytes from 192.168.100.100: icmp_seq=3 ttl=63 time=0.891 ms
108 bytes from 192.168.100.100: icmp_seq=4 ttl=63 time=0.798 ms
108 bytes from 192.168.100.100: icmp_seq=5 ttl=63 time=0.955 ms
--- 192.168.100.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4102ms
rtt min/avg/max/mdev = 0.480/0.754/0.955/0.173 ms
Видно, что с криптошлюза Hub1 доступен по ICMP криптошлюз Spoke1.
7. Проверьте, что с клиента Client1 доступны по ICMP криптошлюзы Hub1 и Spoke1. Для этого выполните команду ping из командной строки:
C:\Users\Client1>ping 172.16.100.1
Обмен пакетами с 172.16.100.1 по с 32 байтами данных:
Ответ от 172.16.100.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.100.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.100.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.100.1: число байт=32 время<1мс TTL=64
Статистика Ping для 172.16.100.1:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мск, максимальное = 0 мсек, Среднее = 0 мсек
C:\Users\Client1>ping 172.16.1.1
Обмен пакетами с 172.16.1.1 по с 32 байтами данных:
Ответ от 172.16.1.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.1.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.1.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.1.1: число байт=32 время<1мс TTL=64
Статистика Ping для 172.16.1.1:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мск, максимальное = 0 мсек, Среднее = 0 мсек
1. Проверьте, что на криптошлюзах Hub1 и Spoke1 СОС импортирован в базу Продукта. Для этого выполните команду run cert_mgr show из cisco-like консоли криптошлюзов.
Hub1#run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: local C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
2 Status: trusted C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
3 Status: remote C=RU,O=S-Terra CSP,OU=Research,CN=Client1
4 CRL: C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Spoke1#run cert_mgr show
Found 2 certificates. Found 1 CRL.
1 Status: trusted C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 Status: local C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Spoke1
3 CRL: C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
Видно, что на криптошлюзах Hub1 и Spoke1 СОС импортирован в базу Продукта. Если этого не произошло, то проверьте файл журнала (команда run grep getcrls_daemon /var/log/cspvpngate.log) и, при необходимости, перезапустите сервис автоматической загрузки СОС (команда run systemctl restart getcrls.service).
2. Проверьте, что на криптошлюзах Hub1 и Spoke1 статус всех сертификатов Active. Для этого выполните команду run cert_mgr check из cisco-like консоли криптошлюзов.
Hub1#run cert_mgr check
1 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Hub1
2 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
3 State: Active C=RU,O=S-Terra CSP,OU=Research,CN=Client1
Spoke1#run cert_mgr check
1 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA
2 State: Active C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=Spoke1
Видно, что на криптошлюзах Hub1 и Spoke1 статус всех сертификатов Active. Если статус Inactive, то проверьте загружен ли СОС в базу Продукта и правильность установки даты и времени.
1. Инициируйте построение защищенного соединения между криптошлюзами Hub1 и Spoke1 при помощи ICMP трафика, посылаемого с устройства host1_behind_spoke1 на host_behind_hub1 (можно и наоборот) или с устройства host2_behind_spoke1 на host_behind_hub1 (можно и наоборот). Для этого выполните команду ping из linux bash консоли защищаемого устройства.
root@host1_behind_spoke1:~# ping 192.168.100.100 -c 5
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=61 time=339 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=61 time=1.79 ms
64 bytes from 192.168.100.100: icmp_seq=3 ttl=61 time=1.29 ms
64 bytes from 192.168.100.100: icmp_seq=4 ttl=61 time=2.03 ms
64 bytes from 192.168.100.100: icmp_seq=5 ttl=61 time=1.71 ms
--- 192.168.100.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 1.297/69.331/339.822/135.245 ms
2. Проверьте, что на криптошлюзах Hub1 и Spoke1 установлено защищенное IPsec соединение. Для этого выполните команду run sa_mgr show из cisco-like консоли криптошлюзов.
Hub1#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.100.2,500)-(172.16.2.100,500) active 1792 2872
2 2 (172.16.100.2,500)-(172.16.1.2,500) active 1692 1764
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.254.1,*) * ESP tunn 0 0
2 2 (192.168.100.0-192.168.100.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 440 440
Spoke1#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 3 (172.16.1.2,500)-(172.16.100.2,500) active 1764 1692
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 5 (192.168.1.0-192.168.1.255,*)-(192.168.100.0-192.168.100.255,*) * ESP tunn 440 440
Видно, что на криптошлюзах Hub1 и Spoke1 установлено защищенное IPsec соединение. Если этого не произошло, то проверьте файл журнала (команда run less /var/log/cspvpngate.log). При необходимости увеличьте уровень логирования с помощью (команда logging trap debugging в консоли cisco-like) и заново инициируйте защищенное соединение.
1. Инициируйте построение защищенного соединения между криптошлюзом Hub1 и Client1 при помощи ICMP трафика, посылаемого с устройства Client1 на host_behind_hub1. Для этого выполните команду ping из командной строки Client1.
C:\Users\Client1>ping 192.168.100.100
Обмен пакетами с 192.168.100.100 по с 32 байтами данных:
Ответ от 192.168.100.100: число байт=32 время=207мс TTL=61
Ответ от 192.168.100.100: число байт=32 время=1мс TTL=61
Ответ от 192.168.100.100: число байт=32 время=1мс TTL=61
Ответ от 192.168.100.100: число байт=32 время=1мс TTL=61
Статистика Ping для 192.168.100.100:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 1мск, максимальное = 207 мсек, Среднее = 52 мсек
2. Проверьте, что на криптошлюзе Hub1 установлено защищенное IPsec соединение. Для этого выполните команду run sa_mgr show из cisco-like консоли криптошлюза Hub1 или используйте VPN SA Monitor на Client1.
Hub1#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.100.2,500)-(172.16.2.100,500) active 2160 3296
2 2 (172.16.100.2,500)-(172.16.1.2,500) active 1692 1764
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.254.1,*) * ESP tunn 0 0
2 2 (192.168.100.0-192.168.100.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 440 440
3 3 (192.168.100.0-192.168.100.255,*)-(192.168.254.1,*) * ESP tunn 256 256
Рисунок 2
Видно, что между криптошлюзом Hub1 и Client1 установлено защищенное IPsec соединение. Если этого не произошло, то проверьте файл журнала (команда run less /var/log/cspvpngate.log). При необходимости увеличьте уровень логирования с помощью (команда logging trap debugging в консоли cisco-like) и заново инициируйте защищенное соединение.
1. Для проверки работоспособности PBR, на устройстве Traffic_Inspection из linux bash выполните команду tcpdump на интерфейсе ens32, и отправьте ICMP трафик с устройства host1_behind_spoke1 устройству host2_behind_spoke1.
root@Traffic_Inspection:~# tcpdump -i ens32 -n host 192.168.1.100 and host 192.168.2.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes
09:57:36.003398 IP 192.168.1.100 > 192.168.2.100: ICMP echo request, id 32727, seq 1, length 64
09:57:36.003415 IP 192.168.1.100 > 192.168.2.100: ICMP echo request, id 32727, seq 1, length 64
09:57:36.004305 IP 192.168.2.100 > 192.168.1.100: ICMP echo reply, id 32727, seq 1, length 64
09:57:36.004313 IP 192.168.2.100 > 192.168.1.100: ICMP echo reply, id 32727, seq 1, length 64
09:57:37.005058 IP 192.168.1.100 > 192.168.2.100: ICMP echo request, id 32727, seq 2, length 64
09:57:37.005083 IP 192.168.1.100 > 192.168.2.100: ICMP echo request, id 32727, seq 2, length 64
09:57:37.006258 IP 192.168.2.100 > 192.168.1.100: ICMP echo reply, id 32727, seq 2, length 64
09:57:37.006266 IP 192.168.2.100 > 192.168.1.100: ICMP echo reply, id 32727, seq 2, length 64
09:57:38.006534 IP 192.168.1.100 > 192.168.2.100: ICMP echo request, id 32727, seq 3, length 64
09:57:38.006550 IP 192.168.1.100 > 192.168.2.100: ICMP echo request, id 32727, seq 3, length 64
09:57:38.007263 IP 192.168.2.100 > 192.168.1.100: ICMP echo reply, id 32727, seq 3, length 64
09:57:38.007270 IP 192.168.2.100 > 192.168.1.100: ICMP echo reply, id 32727, seq 3, length 64
Видно, что трафик от host1_behind_spoke1 до host2_behind_spoke1 и обратно проходят через Traffic_Inspection. Из-за того пакет сначала передается от Hub1 устройству Traffic_Inspection, а потом Traffic_Inspection отправляет его обратно криптошлюзу Hub1, то каждый пакет наблюдается дважды.
2. Проверьте, что на криптошлюзах Hub1 и Spoke1 установлено защищенное IPsec соединение. Для этого выполните команду run sa_mgr show из cisco-like консоли криптошлюзов.
Hub1#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.100.2,500)-(172.16.2.100,500) active 2160 3296
2 2 (172.16.100.2,500)-(172.16.1.2,500) active 2380 2452
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.254.1,*) * ESP tunn 0 0
2 2 (192.168.100.0-192.168.100.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 440 440
3 3 (192.168.100.0-192.168.100.255,*)-(192.168.254.1,*) * ESP tunn 256 256
4 4 (192.168.2.0-192.168.2.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 528 528
5 5 (192.168.1.0-192.168.1.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 528 528
Spoke1#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.1.2,500)-(172.16.100.2,500) active 2452 2380
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.100.0-192.168.100.255,*) * ESP tunn 440 440
2 2 (192.168.1.0-192.168.1.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 528 528
3 3 (192.168.2.0-192.168.2.255,*)-(192.168.1.0-192.168.1.255,*) * ESP tunn 528 528
Видно, что на криптошлюзах Hub1 и Spoke1 установлено защищенное IPsec соединение. Если этого не произошло, то проверьте файл журнала (команда run less /var/log/cspvpngate.log). При необходимости увеличьте уровень логирования с помощью (команда logging trap debugging в консоли cisco-like) и заново инициируйте защищенное соединение.
3. Можно проверить работоспособность PBR для Client1. Для этого на устройстве Traffic_Inspection из linux bash выполните команду tcpdump на интерфейсе ens32, и отправьте ICMP трафик с устройства Client1 устройству host1_behind_spoke2.
root@Traffic_Inspection:~# tcpdump -i ens32 -n host 192.168.1.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens32, link-type EN10MB (Ethernet), capture size 262144 bytes
10:16:39.456564 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 107, length 40
10:16:39.456583 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 107, length 40
10:16:39.457516 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 107, length 40
10:16:39.457524 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 107, length 40
10:16:40.469209 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 108, length 40
10:16:40.469226 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 108, length 40
10:16:40.470228 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 108, length 40
10:16:40.470236 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 108, length 40
10:16:41.479642 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 109, length 40
10:16:41.479656 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 109, length 40
10:16:41.480582 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 109, length 40
10:16:41.480590 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 109, length 40
10:16:42.495418 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 110, length 40
10:16:42.495435 IP 192.168.254.1 > 192.168.1.100: ICMP echo request, id 1, seq 110, length 40
10:16:42.496394 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 110, length 40
10:16:42.496401 IP 192.168.1.100 > 192.168.254.1: ICMP echo reply, id 1, seq 110, length 40
Видно, что трафик от Client1 до host1_behind_spoke1 и обратно проходят через Traffic_Inspection. Из-за того пакет сначала передается от Hub1 устройству Traffic_Inspection, а потом Traffic_Inspection отправляет его обратно криптошлюзу Hub1, то каждый пакет наблюдается дважды.
1. Консоль cisco-like:
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp fragmentation
crypto isakmp security-association lifetime delta 50
crypto isakmp initiator-sessions-max 100
crypto isakmp responder-sessions-max 100
crypto isakmp keepalive 3
crypto isakmp keepalive retry-count 5
username cscons privilege 15 secret 5 $6$tHtq8SR6$t3CWE6udI6L/ARr9jQowUYR7wEbOWZlx61OvL
i7goonOFUYhNSGV49BA.RDGEZ7oKXBA1aTRi20ElR4wtMXTl0
aaa new-model
!
!
hostname Hub1
enable secret 5 PC9d7N5HlAyLrzuA3qRJvQ==
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
ip local pool POOL 192.168.254.1 192.168.254.254
!
crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY esp-gost28147-4m-imit
!
ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
permit ip 192.168.100.0 0.0.0.255 192.168.1.0 0.0.0.255
permit ip 192.168.254.0 0.0.0.255 192.168.1.0 0.0.0.255
permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
permit ip 192.168.100.0 0.0.0.255 192.168.2.0 0.0.0.255
permit ip 192.168.254.0 0.0.0.255 192.168.2.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
!
ip access-list extended IPSEC_ACl_HUB1_AND_CLIENT1
permit ip 192.168.100.0 0.0.0.255 192.168.254.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 192.168.254.0 0.0.0.255
permit ip 192.168.2.0 0.0.0.255 192.168.254.0 0.0.0.255
!
!
crypto dynamic-map DMAP 1
match address IPSEC_ACl_HUB1_AND_CLIENT1
set transform-set GOST_ENCRYPT_AND_INTEGRITY
set pool POOL
reverse-route
set dead-connection history off
!
crypto map VPN 1 ipsec-isakmp
match address IPSEC_ACl_HUB1_AND_SPOKE1
set transform-set GOST_ENCRYPT_AND_INTEGRITY
set peer 172.16.1.2
set dead-connection history off
crypto map VPN 2 ipsec-isakmp dynamic DMAP
!
interface GigabitEthernet0/0
ip address 172.16.100.2 255.255.255.0
crypto map VPN
!
interface GigabitEthernet0/1
ip address 192.168.255.1 255.255.255.0
!
!
ip route 0.0.0.0 0.0.0.0 172.16.100.1
ip route 192.168.100.0 255.255.255.0 192.168.255.2
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group ROOTCA http://172.16.101.15/certcrl.crl
crl download time 60
crypto pki certificate chain s-terra_technological_trustpoint
certificate 58E026BFD6D625BE4582C16C6189C183
30820227308201D4A003020102021058E026BFD6D625BE4582C16C6189C18330
...
AD4F8901771632E0A0AF83
quit
!
end
2. Конфигурация LSP:
# This is automatically generated LSP
#
# Conversion Date/Time: Fri Nov 29 13:45:56 2019
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Fri Nov 29 13:45:56 2019 (user: root)"
Version = LSP_4_3
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 172.16.100.1
),
Route(
Destination = 192.168.100.0/24
Gateway = 192.168.255.2
)
)
FirewallParameters(
TCPSynSentTimeout = 30
TCPFinTimeout = 5
TCPClosedTimeout = 30
TCPSynRcvdTimeout = 30
TCPEstablishedTimeout = 3600
TCPHalfOpenLow = 400
TCPHalfOpenMax = 500
TCPSessionRateLow = 400
TCPSessionRateMax = 500
)
IKETransform crypto:isakmp:policy:1
(
CipherAlg = "G2814789CPRO1-K256-CBC-65534"
HashAlg = "GR341112_256TC26-65128"
GroupID = VKO2_1B
RestrictAuthenticationTo = GOST_SIGN
LifetimeSeconds = 86400
)
ESPProposal GOST_ENCRYPT_AND_INTEGRITY:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
)
AddressPool POOL
(
IPAddresses = 192.168.254.1..192.168.254.254
)
IKEParameters(
FragmentSize = 576
SALifetimeDelta = 50
InitiatorSessionsMax = 100
ResponderSessionsMax = 100
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:VPN:1
(
IKEPeerIPFilter = 172.16.1.2
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 3
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IKERule IKERule:VPN:2:DMAP:1
(
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
IKECFGPool = POOL
DPDIdleDuration = 3
DPDResponseDuration = 2
DPDRetries = 5
Priority = 100
)
IPsecAction IPsecAction:VPN:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 172.16.1.2
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY:ESP )
NoDeadConnectionHistory = TRUE
IKERule = IKERule:VPN:1
)
IPsecAction IPsecAction:VPN:2:DMAP:1
(
TunnelingParameters = TunnelEntry(
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY:ESP )
ReverseRoute = TRUE
NoDeadConnectionHistory = TRUE
IKERule = IKERule:VPN:2:DMAP:1
)
FilterChain IPsecPolicy:VPN (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.100.0/24
DestinationIP = 192.168.1.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.254.0/24
DestinationIP = 192.168.1.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.1.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.100.0/24
DestinationIP = 192.168.2.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.254.0/24
DestinationIP = 192.168.2.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.2.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
Label = "VPN:2:DMAP:1:IPSEC_ACl_HUB1_AND_CLIENT1"
SourceIP = 192.168.100.0/24
DestinationIP = 192.168.254.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:2:DMAP:1 >
LogEventID = "IPsec:Protect:VPN:2:DMAP:1:IPSEC_ACl_HUB1_AND_CLIENT1"
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.254.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:2:DMAP:1 >
LogEventID = "IPsec:Protect:VPN:2:DMAP:1:IPSEC_ACl_HUB1_AND_CLIENT1"
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.254.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:2:DMAP:1 >
LogEventID = "IPsec:Protect:VPN:2:DMAP:1:IPSEC_ACl_HUB1_AND_CLIENT1"
)
)
NetworkInterface (
LogicalName = "GigabitEthernet0/0"
IPsecPolicy = IPsecPolicy:VPN
)
3. Консоль FRR:
!
frr version 7.3
frr defaults traditional
hostname Hub1
log syslog informational
service integrated-vtysh-config
!
interface eth0
pbr-policy PBR
!
pbr-map PBR seq 1
match src-ip 192.168.1.0/24
set nexthop 192.168.255.2
!
pbr-map PBR seq 2
match src-ip 192.168.2.0/24
set nexthop 192.168.255.2
!
pbr-map PBR seq 3
match src-ip 192.168.254.0/24
set nexthop 192.168.255.2
!
line vty
!
end
1. Консоль cisco-like:
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity dn
crypto isakmp fragmentation
crypto isakmp security-association lifetime delta 50
crypto isakmp initiator-sessions-max 100
crypto isakmp responder-sessions-max 100
crypto isakmp keepalive 3
crypto isakmp keepalive retry-count 5
username cscons privilege 15 secret 5 $6$tHtq8SR6$t3CWE6udI6L/ARr9jQowUYR7wEbOWZlx61OvL
i7goonOFUYhNSGV49BA.RDGEZ7oKXBA1aTRi20ElR4wtMXTl0
aaa new-model
!
!
hostname Spoke1
enable secret 5 PC9d7N5HlAyLrzuA3qRJvQ==
!
!
!
!
!
crypto isakmp policy 1
encr gost
hash gost341112-256-tc26
authentication gost-sig
group vko2
!
crypto ipsec transform-set GOST_ENCRYPT_AND_INTEGRITY esp-gost28147-4m-imit
!
ip access-list extended IPSEC_ACl_HUB1_AND_SPOKE1
permit ip 192.168.1.0 0.0.0.255 192.168.100.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 192.168.254.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
permit ip 192.168.2.0 0.0.0.255 192.168.100.0 0.0.0.255
permit ip 192.168.2.0 0.0.0.255 192.168.254.0 0.0.0.255
permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
!
!
crypto map VPN 1 ipsec-isakmp
match address IPSEC_ACl_HUB1_AND_SPOKE1
set transform-set GOST_ENCRYPT_AND_INTEGRITY
set peer 172.16.100.2
set dead-connection history off
!
interface GigabitEthernet0/0
ip address 172.16.1.2 255.255.255.0
crypto map VPN
!
interface GigabitEthernet0/1
no ip address
!
!
ip route 0.0.0.0 0.0.0.0 172.16.1.1
!
crypto pki trustpoint s-terra_technological_trustpoint
revocation-check crl
crl download group ROOTCA http://172.16.101.15/certcrl.crl
crl download time 60
crypto pki certificate chain s-terra_technological_trustpoint
certificate 58E026BFD6D625BE4582C16C6189C183
30820227308201D4A003020102021058E026BFD6D625BE4582C16C6189C18330
...
AD4F8901771632E0A0AF83
quit
!
end
2. Содержимое /etc/network/interfaces:
############################################################
# CAUTION: lines under special marker: ###netifcfg-*###
# contains autogenerated information. You can add/modify
# lines outside of those markers
############################################################
# loopback configuration
auto lo
iface lo inet loopback
auto eth1.10
iface eth1.10 inet static
mtu 1500
address 192.168.1.1
netmask 255.255.255.0
auto eth1.11
iface eth1.11 inet static
mtu 1500
address 192.168.2.1
netmask 255.255.255.0
###netifcfg-begin###
auto eth0
iface eth0 inet static
mtu 1500
address 172.16.1.2
netmask 255.255.255.0
broadcast 172.16.1.255
auto eth1
iface eth1 inet manual
mtu 1500
###netifcfg-end###
3. Конфигурация LSP:
# This is automatically generated LSP
#
# Conversion Date/Time: Fri Nov 29 14:17:34 2019
GlobalParameters(
Title = "This LSP was automatically generated by CSP Converter at Fri Nov 29 14:17:34 2019 (user: root)"
Version = LSP_4_3
CRLHandlingMode = ENABLE
PreserveIPsecSA = FALSE
)
RoutingTable(
Routes =
Route(
Destination = 0.0.0.0/0
Gateway = 172.16.1.1
)
)
FirewallParameters(
TCPSynSentTimeout = 30
TCPFinTimeout = 5
TCPClosedTimeout = 30
TCPSynRcvdTimeout = 30
TCPEstablishedTimeout = 3600
TCPHalfOpenLow = 400
TCPHalfOpenMax = 500
TCPSessionRateLow = 400
TCPSessionRateMax = 500
)
IKETransform crypto:isakmp:policy:1
(
CipherAlg = "G2814789CPRO1-K256-CBC-65534"
HashAlg = "GR341112_256TC26-65128"
GroupID = VKO2_1B
RestrictAuthenticationTo = GOST_SIGN
LifetimeSeconds = 86400
)
ESPProposal GOST_ENCRYPT_AND_INTEGRITY:ESP
(
Transform* = ESPTransform
(
CipherAlg* = "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
)
IKEParameters(
FragmentSize = 576
SALifetimeDelta = 50
InitiatorSessionsMax = 100
ResponderSessionsMax = 100
)
AuthMethodGOSTSign GOST:Sign
(
LocalID = IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )
SendRequestMode = ALWAYS
SendCertMode = ALWAYS
)
IKERule IKERule:VPN:1
(
IKEPeerIPFilter = 172.16.100.2
Transform = crypto:isakmp:policy:1
AggrModeAuthMethod = GOST:Sign
MainModeAuthMethod = GOST:Sign
DPDIdleDuration = 3
DPDResponseDuration = 2
DPDRetries = 5
Priority = 10
)
IPsecAction IPsecAction:VPN:1
(
TunnelingParameters = TunnelEntry(
PeerAddress = 172.16.100.2
DFHandling=COPY
Assemble=TRUE
)
ContainedProposals = ( GOST_ENCRYPT_AND_INTEGRITY:ESP )
NoDeadConnectionHistory = TRUE
IKERule = IKERule:VPN:1
)
FilterChain IPsecPolicy:VPN (
Filters = Filter (
ProtocolID = 17
SourcePort = 500, 4500
Action = PASS
PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.100.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.254.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.1.0/24
DestinationIP = 192.168.2.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.100.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.254.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
),
Filter (
SourceIP = 192.168.2.0/24
DestinationIP = 192.168.1.0/24
Action = PASS
ExtendedAction = ipsec< sa = IPsecAction:VPN:1 >
LogEventID = "IPsec:Protect:VPN:1:IPSEC_ACl_HUB1_AND_SPOKE1"
)
)
NetworkInterface (
LogicalName = "GigabitEthernet0/0"
IPsecPolicy = IPsecPolicy:VPN
)
4. Консоль FRR:
!
frr version 7.3
frr defaults traditional
hostname Spoke1
log syslog informational
service integrated-vtysh-config
!
interface eth1.10
pbr-policy PBR.10
!
interface eth1.11
pbr-policy PBR.11
!
pbr-map PBR.10 seq 1
match src-ip 192.168.1.0/24
set nexthop 172.16.1.1
!
pbr-map PBR.11 seq 1
match src-ip 192.168.2.0/24
set nexthop 172.16.1.1
!
line vty
!
end
1. Конфигурация LSP:
GlobalParameters (
Title = "This LSP was automatically generated by S-Terra Client AdminTool (st) at 2020.07.15 09:40:39"
Version = LSP_4_3
CRLHandlingMode = BEST_EFFORT
)
LDAPSettings (
ResponseTimeout = 200
HoldConnectTimeout = 60
DropConnectTimeout = 5
)
IdentityEntry auth_identity_01(
DistinguishedName *= CertDescription(
Subject *= COMPLETE,"CN=Client1"
)
)
CertDescription local_cert_dsc_01(
Subject *= COMPLETE,"CN=Client1"
Issuer *= COMPLETE,"C=RU,L=Zelenograd,O=S-Terra CSP,OU=RnD,CN=S-Terra CSP Test Root CA"
SerialNumber = "2F000003A70353EB67D8B8080B0000000003A7"
FingerprintMD5 = "374FCA9E2FA70405A38993F763009F0B"
)
CertDescription partner_cert_dsc_01(
)
AuthMethodGOSTSign auth_method_01(
LocalID = auth_identity_01
LocalCredential = local_cert_dsc_01
RemoteCredential = partner_cert_dsc_01
SendRequestMode = AUTO
SendCertMode = AUTO
)
IKEParameters (
DefaultPort = 500
SendRetries = 5
RetryTimeBase = 1
RetryTimeMax = 30
SessionTimeMax = 60
InitiatorSessionsMax = 30
ResponderSessionsMax = 20
BlacklogSessionsMax = 16
BlacklogSessionsMin = 0
BlacklogSilentSessions = 4
BlacklogRelaxTime = 120
IKECFGPreferDefaultAddress = FALSE
)
IKETransform ike_trf_01(
LifetimeSeconds = 28800
CipherAlg *= "G2814789CPRO1-K256-CBC-65534"
HashAlg *= "GR341112_256TC26-65128"
GroupID *= VKO2_1B
)
IKETransform ike_trf_02(
LifetimeSeconds = 28800
CipherAlg *= "GR341215K-K256-CFB-65528"
HashAlg *= "GR341112_256TC26-65128"
GroupID *= VKO2_1B
)
IKETransform ike_trf_03(
LifetimeSeconds = 28800
CipherAlg *= "G2814789CPRO1-K256-CBC-65534"
HashAlg *= "GR341194CPRO1-65534"
GroupID *= VKO_1B
)
IKETransform ike_trf_04(
LifetimeSeconds = 28800
CipherAlg *= "G2814789CPRO1-K256-CBC-65534"
HashAlg *= "GR341194CPRO1-65534"
GroupID *= MODP_1536
)
ESPTransform esp_trf_01(
CipherAlg *= "G2814789CPRO2-K288-CNTMAC-253"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
ESPProposal esp_proposal_01(
Transform *=esp_trf_01
)
ESPTransform esp_trf_02(
CipherAlg *= "GR341215K-K352-MGM-251"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
ESPProposal esp_proposal_02(
Transform *=esp_trf_02
)
ESPTransform esp_trf_03(
CipherAlg *= "G2814789CPRO1-K256-CBC-254"
IntegrityAlg *= "GR341194CPRO1-H96-HMAC-65534"
LifetimeSeconds = 3600
LifetimeKilobytes = 4608000
)
ESPProposal esp_proposal_03(
Transform *=esp_trf_03
)
IKERule ike_rule_with_ikecfg_01(
DoNotUseDPD = FALSE
DPDIdleDuration = 60
DPDResponseDuration = 5
DPDRetries = 3
MainModeAuthMethod *= auth_method_01
Transform *= ike_trf_01,ike_trf_02,ike_trf_03,ike_trf_04
IKECFGRequestAddress = TRUE
)
IPsecAction ipsec_action_01(
PersistentConnection = TRUE
TunnelingParameters *=
TunnelEntry(
PeerAddress = 172.16.100.2
Assemble = TRUE
ReRoute = FALSE
TCPEncapsulation = FALSE
)
ContainedProposals *= (esp_proposal_01),(esp_proposal_02),(esp_proposal_03)
IKERule = ike_rule_with_ikecfg_01
)
FilterChain filter_chain_input(
Filters *= Filter(
ProtocolID *= 17
DestinationPort *= 500
Action = PASS
LogEventID = "pass_action_02_01"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
ProtocolID *= 17
DestinationPort *= 4500
Action = PASS
LogEventID = "pass_action_02_02"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
SourceIP *= 172.16.100.2
ProtocolID *= 50
Action = PASS
LogEventID = "pass_action_03_01"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
SourceIP *= 172.16.100.2
ProtocolID *= 51
Action = PASS
LogEventID = "pass_action_03_02"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
Action = PASS
LogEventID = "pass_action_04"
)
)
FilterChain filter_chain_output(
Filters *= Filter(
ProtocolID *= 17
SourcePort *= 500
Action = PASS
LogEventID = "pass_action_05_01"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
ProtocolID *= 17
SourcePort *= 4500
Action = PASS
LogEventID = "pass_action_05_02"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
DestinationIP *= 172.16.100.2
ProtocolID *= 50
Action = PASS
LogEventID = "pass_action_06_01"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
DestinationIP *= 172.16.100.2
ProtocolID *= 51
Action = PASS
LogEventID = "pass_action_06_02"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
Action = PASS
LogEventID = "pass_action_07"
)
)
FilterChain filter_chain_classification_input(
Filters *= Filter(
Action = PASS
LogEventID = "pass_action_08"
)
)
FilterChain filter_chain_classification_output(
Filters *= Filter(
Action = PASS
LogEventID = "pass_action_09"
)
)
FilterChain filter_chain_ipsec(
Filters *= Filter(
ProtocolID *= 17
SourcePort *= 500
Action = PASS
LogEventID = "pass_action_10_01"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
ProtocolID *= 17
SourcePort *= 4500
Action = PASS
LogEventID = "pass_action_10_02"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
DestinationIP *= 172.16.100.2
ProtocolID *= 50
Action = PASS
LogEventID = "pass_action_11_01"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
DestinationIP *= 172.16.100.2
ProtocolID *= 51
Action = PASS
LogEventID = "pass_action_11_02"
PacketType = LOCAL_UNICAST,LOCAL_MISDIRECTED
),Filter(
DestinationIP *= 192.168.100.0/24,192.168.1.0/24,192.168.2.0/24
Action = PASS
ExtendedAction *= ipsec<sa=ipsec_action_01>
LogEventID = "ipsec_action_01"
),Filter(
Action = PASS
LogEventID = "pass_action_12"
)
)
NetworkInterface(
InputFilter = filter_chain_input
OutputFilter = filter_chain_output
InputClassification = filter_chain_classification_input
OutputClassification = filter_chain_classification_output
IPsecPolicy = filter_chain_ipsec
)