Объединение двух и более сегментов одной сети в топологии «звезда» с помощью «С-Терра L2» с разделением по VLAN

Скачать в формате PDF

Описание стенда

Сценарий иллюстрирует построение защищенного соединения между разными VLAN-ми одной сети, каналы между которыми защищается шлюзами безопасности «С-Терра Шлюз». Для защиты будет построен VPN туннель между устройствами GW1 и GW2, а также между устройствами GW1 и GW3.

В рамках данного сценария для аутентификации партнеры будут использовать сертификаты. В качестве криптопровайдера будет использована криптографическая библиотека, разработанная компанией «С-Терра СиЭсПи». Шлюзы безопасности «С-Терра Шлюз» версии 4.2 с программным модулем «С-Терра L2».

Параметры защищенного соединения:

Параметры протокола IKE:

·         Аутентификация при помощи цифровых сертификатов, алгоритм подписи – ГОСТ Р 34.10-2012;

·         Алгоритм шифрования – ГОСТ 28147-89 (ключ 256 бит);

·         Алгоритм вычисления хеш-функции – ГОСТ Р 34.11-2012 ТК26 (ключ 256 бит);

·         Алгоритм выработки общего ключа (аналог алгоритма Диффи-Хеллмана) – VKO_GOSTR3410_2012_256 (ключ 256 бит).

Параметры протокола ESP:

·         Комбинированный алгоритм шифрования и имитозащиты (контроль целостности) – ESP_GOST-4M-IMIT (ключ 256 бит).

Схема стенда (Рисунок 1):

Рисунок 1


 

Логика работы

Рассмотрим работу «С-Терра L2» на примере трафика, идущего от IPHost1 к IPHost3. Хосты находятся в одном VLAN (10). На GW1 запущен процесс l2svc, который захватывает фреймы канального уровня, приходящие на интерфейс eth0.10 (интерфейс находится в promisc mode), и инкапсулирует их в пакеты сетевого уровня (source IP – 10.1.1.2, destination IP – 10.1.2.2). Далее пакеты попадают под правила шифрования и передаются по IPsec туннелю между GW1 и GW2. На GW2 происходит обратный процесс.

Интерфейс Gi0/2 служит для удаленного управления.

Между шлюзами безопасности GW1 и GW2 могут находиться устройства 3 уровня (маршрутизаторы, межсетевые экраны и др.), то есть они не обязаны быть связаны на канальном уровне.

Также следует отметить, что при построении сети топологии «звезда» с использованием «С-Терра L2» разделение сети на виртуальные (VLAN) не обязательно.

 

 

Настройка стенда

Настройка шлюза безопасности GW1

Начальная настройка шлюза в S-Terra administrative console при первом включении состоит из следующих действий:

·         Пройдите процедуру аутентификации (пользователь по умолчанию – administrator, пароль по умолчанию – s-terra).

·         Пройдите процедуру инициализации (команда initialize).

·         Активируйте политику драйвера по умолчанию (команда run csconf_mgr activate).

·         Команда run csconf_mgr activate применяет текущую политику драйвера. При первичной настройке шлюза применится политика драйвера по умолчанию, при которой прохождение трафика не блокируется.

·         Для доступа через SSH установите пароль на пользователя root (команда run passwd).

Более подробно консоль разграничения доступа S-Terra administrative console описана в документации.

Настройка интерфейсов

1.    Перейдите из консоли разграничения доступа в консоль настройки шлюза. По умолчанию имя пользователя – cscons, пароль – csp:

administrator@sterragate] configure

sterragate login: cscons

Password:

...

sterragate#

2.    Перейдите в режим настройки:

sterragate#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

3.    В настройках интерфейсов задайте IP-адреса:

GW1(config)#interface GigabitEthernet 0/1

GW1(config-if)#ip address 10.1.1.2 255.255.255.0

GW1(config-if)#no shutdown

GW1(config-if)#exit

4.    Задайте адрес шлюза по умолчанию:

GW1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1

5.    Выйдите из cisco-like интерфейса:

sterragate(config)#end

sterragate#exit

6.    Настройте VLAN-интерфейсы:

root@sterragate:~# vi /etc/network/interfaces

В раздел перед ###netifcfg-begin### добавьте следующие строки (данные интерфейсы в cisco-like конфигурации будут недоступны):

auto eth0.10

iface eth0.10 inet manual

auto eth0.11

iface eth0.11 inet manual

В раздел ###netifcfg-begin### добавьте следующие строки (данный интерфейс в cisco-like конфигурации будет доступен, если выполнить действия, описанные в п. 8):

auto eth2.10

iface eth2.10 inet static

address 192.168.1.1

netmask 255.255.255.0

Таким образом, VLAN-интерфейсы eth0.10, eth0.11 будут в состоянии UP и без IP-адреса. VLAN-интерфейс eth2/10 будет в состоянии UP с IP-адресом 192.168.1.1/24.

VLAN-интерфейсы eth0.10 и eth0.11 будут в следующих разделах прописаны в конфигурации «С-Терра L2» и будут работать в promisc-режиме.

Важно! Обратите внимание, что для eth2.10 указывается опция inet static, так как на интерфейсе задается IP-адрес; у интерфейсов eth0.10 и eth0.11 указана опция inet manual, так как необходимо чтобы интерфейсы создавались, но IP-адреса на них не требуются.

6.1.     При использовании на VLAN-интерфейсах значений MTU отличных от 1500, необходимо прописать в файле /etc/network/interfaces строки для задания MTU физического интерфейса и VLAN-интерфейсов.

auto eth0

iface eth0 inte manual

post-up ifconfig eth0 mtu 1700

auto eth0.10

iface eth0.10 inet manual

post-up ifconfig eth0.10 mtu 1700

auto eth0.11

iface eth0.11 inet manual

post-up ifconfig eth0.11 mtu 1700

Важно! MTU VLAN-интерфейсов не может быть больше, чем MTU физического интерфейса.

6.2.     Также необходимо прописать параметр tun_mtu в разделе настройки L2 (Раздел "Настройка «С-Терра L2», п. 2 для шлюза GW1).

7.    Перезагрузите интерфейсы:

root@sterragate:~# /etc/init.d/networking restart

8.    Необязательный пункт. Для того чтобы интерфейс eth2.10 можно было изменять через cisco-like конфигурацию, необходимо выполнить следующие действия:

Важно! В данной версии изменение интерфейсов, заданных с помощью inet manual (как eth0.10 и eth0.11), в cisco-like конфигурации не поддерживается. Добавление данных интерфейсов в раздел ###netifcfg-begin### файла /etc/network/interfaces может привести к неработоспособности схемы.

8.1.     Добавьте в файл /etc/ifaliases.cf следующую строку:

interface (name="GigabitEthernet0/2.10" pattern="eth2.10")

8.2.     Пересчитайте хэш-сумму измененного файла ifaliases.cf:

root@sterragate:~# integr_mgr calc -f /etc/ifaliases.cf

8.3.     Перезапустите сервис vpngate:

/etc/init.d/vpngate restart

Регистрация сертификата УЦ

В данном сценарии для аутентификации используются сертификаты. Для корректной работы необходимо зарегистрировать доверенный сертификат УЦ и локальный сертификат, выданный данным УЦ.

1.    Подключитесь по SSH к шлюзу.

2.    Установите правильное системное время.

Например:

root@sterragate:~# date -s "01/31/2017 15:00"

Tue Jan 31 15:00:00 MSK 2017

Данная запись соответствует 31 января 2017 года 15:00.

В данном случае формат даты указывается в виде месяц/день/год (ММ/ДД/ГГГГ).

Для автоматической настройки правильного времени рекомендуется настроить NTP-клиент по соответствующей инструкции.

3.    Создайте папку /certs:

root@sterragate:~# mkdir /certs

4.    Перенесите доверенный сертификат УЦ на шлюз.

Способы передачи данных на шлюз описаны в документации.

5.    С помощью утилиты cert_mgr зарегистрируйте сертификат в базе продукта:

root@sterragate:~# cert_mgr import -f /certs/ca.cer -t

1 OK C=RU,O=S-Terra,CN=RootCA

Ключ -t в данной команде указывает на то, что импортируемый сертификат – доверенный сертификат УЦ.

Регистрация локального сертификата

Для регистрации локального сертификата в базе продукта выполните следующие действия:

1.    Сформируйте запрос на сертификат при помощи утилиты cert_mgr:

root@sterragate:~# cert_mgr create -subj "C=RU,O=S-Terra CSP,OU=Research,CN=GW1" -GOST_R341012_256 -fb64 /home/gw_req

·         Ключ -subj <DN> задает поля сертификата.

·         Ключ -GOST_R341012_256 предполагает использование ГОСТ Р 34.10-2012. На УЦ для его поддержки должно быть установлено СКЗИ «КриптоПро CSP» версии 4.0 или новее. При необходимости, есть возможность использовать старый алгоритм (ГОСТ Р 34.10-94), который задается ключом -GOST_R3410EL.

·         Ключ -fb64 <путь до файла> позволяет сохранить запрос в файл по указанному пути.

2.    Передайте полученный запрос сертификата на УЦ. Процедура выдачи сертификата на УЦ по запросу описана в документации.

3.    Зарегистрируйте локальный сертификат в базе продукта, применив утилиту cert_mgr:

root@sterragate:~# cert_mgr import -f /certs/GW1.cer

1 OK C=RU,O=S-Terra CSP,OU=Research,CN=GW1

4.    Убедитесь, что сертификаты импортированы успешно:

root@sterragate:~# cert_mgr show

Found 2 certificates. No CRLs found.

1 Status: trusted C=RU,O=S-Terra,CN=RootCA

2 Status: local   C=RU,O=S-Terra CSP,OU=Research,CN=GW1

Создание политики безопасности

После регистрации сертификатов необходимо создать политику безопасности для шлюза GW1

1.    Для входа в консоль запустите cs_console:

root@sterragate:~# cs_console

sterragate>enable

Password:

Пароль по умолчанию – csp.

Важно! Пароль по умолчанию необходимо сменить.

2.    Перейдите в режим настройки:

sterragate#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

3.    Смените пароль по умолчанию:

sterragate(config)#username cscons password <пароль>

4.    Смените название шлюза:

sterragate(config)#hostname GW1

5.    Задайте тип идентификации:

GW1(config)#crypto isakmp identity dn

В данном сценарии для идентификации будет использоваться поле DN сертификата.

6.    Задайте параметры DPD (dead peer detection)

GW1(config)#crypto isakmp keepalive 10 2

GW1(config)#crypto isakmp keepalive retry-count 5

Если в течение 10 секунд отсутствует входящий трафик в IPsec туннеле, то с интервалом в 2 секунды посылается 5 keepalive-пакетов в IKE туннеле, чтобы удостовериться в работоспособности туннеля. Если партнер не отвечает на keepalive-пакеты, то существующий IKE туннель переходит в состояние disabled, а связанные с ним IPsec туннели удаляются. В случае наличия исходящего трафика происходит попытка создать новый IKE туннель.

7.    Задайте параметры для IKE:

GW1(config)#crypto isakmp policy 1

GW1(config-isakmp)#authentication gost-sig

GW1(config-isakmp)#encr gost

GW1(config-isakmp)#hash gost341112-256-tc26

GW1(config-isakmp)#group vko2

GW1(config-isakmp)#exit

8.    Задайте параметры для IPsec:

GW1(config)#crypto ipsec transform-set TSET esp-gost28147-4m-imit

GW1(cfg-crypto-trans)#mode tunnel

GW1(cfg-crypto-trans)#exit

9.    Опишите трафик, который планируется защищать. Для этого создайте два расширенных списка доступа:

GW1(config)#ip access-list extended LIST

GW1(config-ext-nacl)#permit udp host 10.1.1.2 host 10.1.2.2

GW1(config-ext-nacl)#exit

GW1(config)#ip access-list extended LIST2

GW1(config-ext-nacl)#permit udp host 10.1.1.2 host 10.1.3.2

GW1(config-ext-nacl)#exit

Так как «С-Терра L2» инкапсулирует захватываемые фреймы в UDP, то и в списке доступа указан протокол UDP.

10.  Создайте 2 раздела крипто-карты. Один раздел – для построения туннеля со шлюзом GW2, второй – со шлюзом GW3.

GW1(config)#crypto map CMAP 1 ipsec-isakmp

GW1(config-crypto-map)#match address LIST

GW1(config-crypto-map)#set transform-set TSET

GW1(config-crypto-map)#set peer 10.1.2.2

GW1(config-crypto-map)#exit

GW1(config)#crypto map CMAP 2 ipsec-isakmp

GW1(config-crypto-map)#match address LIST2

GW1(config-crypto-map)#set transform-set TSET

GW1(config-crypto-map)#set peer 10.1.3.2

GW1(config-crypto-map)#exit

11.  Привяжите крипто-карту к интерфейсу, на котором будет туннель:

GW1(config)#interface GigabitEthernet 0/1

GW1(config-if)#crypto map CMAP

GW1(config-if)#exit

12.  Настройте получение списка отозванных сертификатов (CRL) по HTTP:

GW1(config)#crypto pki trustpoint s-terra_technological_trustpoint

GW1(ca-trustpoint)#crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl

GW1(ca-trustpoint)#exit

Предполагается, что CRL выкладывается на общедоступное место (доступ к которому обеспечен без использования IPsec) для всех шлюзов. При указании имени домена, вместо IP-адреса, необходимо настроить адрес DNS-сервера в системном файле /etc/resolv.conf.

Также необходимо учитывать, что у CRL есть срок действия и нужно обеспечивать своевременное их обновление в данном общедоступном месте.

По умолчанию CRL будет запрашиваться раз в сутки (раз в 1440 минут), для изменения интервала запросов можно воспользоваться командой crl download time <интервал в минутах>.

При необходимости отключения CRL (не рекомендуется отключать CRL) воспользуйтесь командой revocation-check none.

13.  Настройка устройства GW1 в cisco-like консоли завершена. При выходе из конфигурационного режима происходит загрузка конфигурации:

GW1(config)#end

GW1#exit

В приложении представлен текст cisco-like конфигурации и текст LSP конфигурации для шлюза GW1.

Настройка «С-Терра L2»

1.    Для работы продукта необходимо поместить файл лицензии l2.lic в директорию /opt/l2svc/etc/.

Синтаксис файла l2.lic:

[license]

CustomerCode=TEST

ProductCode=L2VPN

LicenseNumber=1

LicenseCode=1234567890ABCDEF

Для задания лицензии можно воспользоваться скриптом:

root@GW1:~# /opt/l2svc/bin/license.sh

2.    Создайте два файла конфигурации «С-Терра L2» в каталоге /opt/l2svc/etc/:

root@GW1:~# vi /opt/l2svc/etc/config.conf

vif tap0

bridge br0

capture eth0.10

remote 10.1.2.2

port 10001

mssfix 1400

passtos

root@GW1:~# vi /opt/l2svc/etc/config2.conf

vif tap1

bridge br1

capture eth0.11

remote 10.1.3.2

port 10002

mssfix 1400

passtos

Важно! Каждый VLAN будет на отдельном bridge-интерфейсе.

Где:

·         vif <name> – название виртуального интерфейса (TAP). Обязательный параметр. Рекомендуется использовать tapN, где N – цифра.

·         bridge <name> – название виртуального интерфейса моста. Обязательный параметр. Рекомендуется использовать brN, где N – цифра.

·         capture <name> – имя сетевого интерфейса, с которого будет осуществляться захват Ethernet-фреймов. Обязательный параметр.

·         remote <host> [port] – IP-адрес или имя и порт удаленного хоста. Обязательный параметр (адрес, номер порта опционально).

·         fragment <n> – все пакеты большие n байт, будут фрагментироваться самим продуктом на примерно равные части. Опциональный параметр.

·         mssfix <n> – при включении данной опции поле MSS всех проходящих через туннель TCP-пакетов будет выставлено в n. При этом TCP/IP стек отправителя и получателя сам уменьшит максимальный размер пакета, не прибегая к использованию ICMP. Это позволит избежать фрагментации. Если параметр n отсутствует, будет взято значение параметра fragment, если оно задано. Работает только для TCP-трафика. Опциональный параметр. Значение по умолчанию – 1450.

·         passtos – параметр, позволяющий сохранять поле TOS у передаваемых пакетов. Опциональный параметр. По умолчанию - отключен.

·         tun_mtu <n> - MTU туннельного интерфейса. При загрузке конфигурации с параметром tun_mtu <n>, значения MTU интерфейсов, указанных в опциях capture <name>, vif <name>, bridge <name>, устанавливаются в n. Значение по умолчанию – 1500. При использовании VLAN-интерфейсов, смотрите соответствующий сценарий.

3.    Запустите «С-Терра L2»:

root@GW1:~# /etc/init.d/l2svc start

Starting l2svc:

Configuration successfully loaded from config.conf

4.    Чтобы при перезагрузке демон стартовал автоматически, выполните команду:

root@GW1:~# update-rc.d l2svc enable

В приложении представлены тексты config.conf и config2.conf для шлюза

Настройка шлюза безопасности GW2

Настройка интерфейсов

1.    Перейдите из консоли разграничения доступа в консоль настройки шлюза. По умолчанию имя пользователя – cscons, пароль – csp:

administrator@sterragate] configure

sterragate login: cscons

Password:

...

sterragate#

2.    Перейдите в режим настройки:

sterragate#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

3.    В настройках интерфейсов задайте IP-адреса:

GW2(config)#interface GigabitEthernet 0/1

GW2(config-if)#ip address 10.1.2.2 255.255.255.0

GW2(config-if)#no shutdown

GW2(config-if)#exit

4.    Задайте адрес шлюза по умолчанию:

GW2(config)#ip route 0.0.0.0 0.0.0.0 10.1.2.1

5.    Выйдите из cisco-like интерфейса:

sterragate(config)#end

sterragate#exit

6.    Настройте VLAN-интерфейсы:

root@sterragate:~# vi /etc/network/interfaces

В раздел перед ###netifcfg-begin### добавьте следующие строки (данные интерфейсы в cisco-like конфигурации будут недоступны):

auto eth0.10

iface eth0.10 inet manual

В раздел ###netifcfg-begin### добавьте следующие строки (данный интерфейс в cisco-like конфигурации будет доступен, если выполнить действия, описанные в п. 8):

auto eth2.10

iface eth2.10 inet static

address 192.168.1.2

netmask 255.255.255.0

7.    Перезагрузите интерфейсы:

root@sterragate:~# /etc/init.d/networking restart

8.    Необязательный пункт. Для того чтобы интерфейс eth2.10 можно было изменять через cisco-like конфигурацию, необходимо выполнить следующие действия:

Важно! В данной версии изменение интерфейсов, заданных с помощью inet manual (как eth0.10 и eth0.11), в cisco-like конфигурации не поддерживается. Добавление данных интерфейсов в раздел ###netifcfg-begin### файла /etc/network/interfaces может привести к неработоспособности схемы.

8.1.     Добавьте в файл /etc/ifaliases.cf следующую строку:

interface (name="GigabitEthernet0/2.10" pattern="eth2.10")

8.2.     Пересчитайте хэш-сумму измененного файла ifaliases.cf:

root@sterragate:~# integr_mgr calc -f /etc/ifaliases.cf

8.3.     Перезапустите сервис vpngate:

/etc/init.d/vpngate restart

Регистрация сертификатов

Регистрация локального сертификата и сертификата УЦ на шлюзе GW2 происходит аналогично описанному для шлюза GW1.

Создание политики безопасности

После регистрации сертификатов необходимо создать политику безопасности для шлюза GW2

1.    Для входа в консоль запустите cs_console:

root@sterragate:~# cs_console

sterragate>enable

Password:

Пароль по умолчанию – csp.

Важно! Пароль по умолчанию необходимо сменить.

2.    Перейдите в режим настройки:

sterragate#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

3.    Смените пароль по умолчанию:

sterragate(config)#username cscons password <пароль>

4.    Смените название шлюза:

sterragate(config)#hostname GW2

5.    Задайте тип идентификации:

GW2(config)#crypto isakmp identity dn

В данном сценарии для идентификации будет использоваться поле DN сертификата.

6.    Задайте параметры DPD (dead peer detection)

GW2(config)#crypto isakmp keepalive 10 2

GW2(config)#crypto isakmp keepalive retry-count 5

Если в течение 10 секунд отсутствует входящий трафик в IPsec туннеле, то с интервалом в 2 секунды посылается 5 keepalive-пакетов в IKE туннеле, чтобы удостовериться в работоспособности туннеля. Если партнер не отвечает на keepalive-пакеты, то существующий IKE туннель переходит в состояние disabled, а связанные с ним IPsec туннели удаляются. В случае наличия исходящего трафика происходит попытка создать новый IKE туннель.

7.    Задайте параметры для IKE:

GW2(config)#crypto isakmp policy 1

GW2(config-isakmp)#authentication gost-sig

GW2(config-isakmp)#encr gost

GW2(config-isakmp)#hash gost341112-256-tc26

GW2(config-isakmp)#group vko2

GW2(config-isakmp)#exit

8.    Задайте параметры для IPsec:

GW2(config)#crypto ipsec transform-set TSET esp-gost28147-4m-imit

GW2(cfg-crypto-trans)#mode tunnel

GW2(cfg-crypto-trans)#exit

9.    Опишите трафик, который планируется защищать. Для этого создайте расширенный список доступа:

GW2(config)#ip access-list extended LIST

GW2(config-ext-nacl)#permit udp host 10.1.2.2 host 10.1.1.2

GW2(config-ext-nacl)#exit

10.  Создайте крипто-карту:

GW2(config)#crypto map CMAP 1 ipsec-isakmp

GW2(config-crypto-map)#match address LIST

GW2(config-crypto-map)#set transform-set TSET

GW2(config-crypto-map)#set peer 10.1.1.2

GW2(config-crypto-map)#exit

11.  Привяжите крипто-карту к интерфейсу, на котором будет туннель:

GW2(config)#interface GigabitEthernet 0/1

GW2(config-if)#crypto map CMAP

GW2(config-if)#exit

12.  Настройте получение списка отозванных сертификатов (CRL) по HTTP:

GW2(config)#crypto pki trustpoint s-terra_technological_trustpoint

GW2(ca-trustpoint)#crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl

GW2(ca-trustpoint)#exit

Предполагается, что CRL выкладывается на общедоступное место (доступ к которому обеспечен без использования IPsec) для всех шлюзов. При указании имени домена, вместо IP-адреса, необходимо настроить адрес DNS-сервера в системном файле /etc/resolv.conf.

Также необходимо учитывать, что у CRL есть срок действия и нужно обеспечивать своевременное их обновление в данном общедоступном месте.

По умолчанию CRL будет запрашиваться раз в сутки (раз в 1440 минут), для изменения интервала запросов можно воспользоваться командой crl download time <интервал в минутах>.

При необходимости отключения CRL (не рекомендуется отключать CRL) воспользуйтесь командой revocation-check none.

13.  Настройка устройства GW2 в cisco-like консоли завершена. При выходе из конфигурационного режима происходит загрузка конфигурации:

GW2(config)#end

GW2#exit

В приложении представлен текст cisco-like конфигурации и текст LSP конфигурации для шлюза GW2.

Настройка «С-Терра L2»

1.    Для работы продукта необходимо поместить файл лицензии l2.lic в директорию /opt/l2svc/etc/.

Синтаксис файла l2.lic:

[license]

CustomerCode=TEST

ProductCode=L2VPN

LicenseNumber=1

LicenseCode=1234567890ABCDEF

Для задания лицензии можно воспользоваться скриптом:

root@GW1:~# /opt/l2svc/bin/license.sh

2.    Создайте файл конфигурации «С-Терра L2» в каталоге /opt/l2svc/etc/:

root@GW1:~# vi /opt/l2svc/etc/config.conf

vif tap0

bridge br0

capture eth0.10

remote 10.1.1.2

port 10001

mssfix 1400

passtos

3.    Запустите «С-Терра L2»:

root@GW1:~# /etc/init.d/l2svc start

Starting l2svc:

Configuration successfully loaded from config.conf

4.    Чтобы при перезагрузке демон стартовал автоматически, выполните команду:

root@GW1:~# update-rc.d l2svc enable

В приложении представлен текст config.conf для шлюза

Настройка шлюза безопасности GW3

Настройка шлюза безопасности GW3 происходит аналогично настройке шлюза GW2, с заменой IP-адресов в соответствующих разделах конфигурации.

Необходимо настроить 11 VLAN, одну крипто-карту до GW1, а также один конфигурационный файл config.conf для «С-Терра L2».

В настройках «С-Терра L2» необходимо указать соответствующий порт (10002) и remote-адрес.

В приложении представлен текст cisco-like конфигурации, текст LSP конфигурации и текст config.conf для шлюза GW3.

Настройка устройства Router1

На устройстве Router1 необходимо настроить соответствующие IP-адреса.

Настройка устройства Host1

На устройстве Host1 задайте IP-адрес.

Устройство должно находиться в VLAN 10.

Настройка устройства Host2

На устройстве Host2 задайте IP-адрес.

Устройство должно находиться в VLAN 11.

Настройка устройства Host3

На устройстве Host3 задайте IP-адрес.

Устройство должно находиться в VLAN 10.

Настройка устройства Host4

На устройстве Host4 задайте IP-адрес.

Устройство должно находиться в VLAN 11.

 

Проверка работоспособности стенда

После того, как настройка всех устройств завершена, инициируйте создание защищенного соединения.

На устройстве Host3 выполните команду ping:

root@Host3:~#  ping -c 5 192.168.1.100

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=64 time=1.21 ms

64 bytes from 192.168.1.100: icmp_req=2 ttl=64 time=0.774 ms

64 bytes from 192.168.1.100: icmp_req=3 ttl=64 time=0.610 ms

64 bytes from 192.168.1.100: icmp_req=4 ttl=64 time=0.714 ms

64 bytes from 192.168.1.100: icmp_req=5 ttl=64 time=0.707 ms

 

--- 192.168.1.100 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4000ms

rtt min/avg/max/mdev = 0.610/0.804/1.217/0.214 ms

На устройстве Host4 выполните команду ping:

root@Host4:~#  ping -c 5 192.168.2.100

PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data.

64 bytes from 192.168.2.100: icmp_req=1 ttl=64 time=1.02 ms

64 bytes from 192.168.2.100: icmp_req=2 ttl=64 time=0.818 ms

64 bytes from 192.168.2.100: icmp_req=3 ttl=64 time=0.856 ms

64 bytes from 192.168.2.100: icmp_req=4 ttl=64 time=0.727 ms

64 bytes from 192.168.2.100: icmp_req=5 ttl=64 time=0.871 ms

 

--- 192.168.2.100 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4002ms

rtt min/avg/max/mdev = 0.727/0.858/1.020/0.098 ms

Счетчики туннелей можно посмотреть, выполнив на устройстве GW1 команду sa_mgr show:

root@GW1:~#  sa_mgr show

ISAKMP sessions: 0 initiated, 0 responded

 

ISAKMP connections:

Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd

1 4 (10.1.1.2,500)-(10.1.2.2,500) active 2924 2716

2 5 (10.1.1.2,500)-(10.1.3.2,500) active 2424 2516

 

IPsec connections:

Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd

1 2 (10.1.1.2,*)-(10.1.2.2,*) 17 ESP tunn 2784 2416

2 3 (10.1.1.2,*)-(10.1.3.2,*) 17 ESP tunn 2448 2424

 

Выявление ошибок

Чтобы разобраться на каком этапе возникла ошибка можно воспользоваться руководством, которое представлено на портале документации: http://doc.s-terra.ru/rh_output/4.2/Scenarios/output/mergedProjects/1main/ver_4_2_troubleshooting_guide.pdf.

 

Приложение

Текст cisco-like конфигурации для шлюза GW1

!

version 12.4

no service password-encryption

!

crypto ipsec df-bit copy

crypto isakmp identity dn

crypto isakmp keepalive 10

crypto isakmp keepalive retry-count 5

username cscons privilege 15 password 0 csp

aaa new-model

!

!

hostname GW1

enable password csp

!

!

!

!

!

crypto isakmp policy 1

 encr gost

 hash gost341112-256-tc26

 authentication gost-sig

 group vko2

!

crypto ipsec transform-set TSET esp-gost28147-4m-imit

!

ip access-list extended LIST

 permit udp host 10.1.1.2 host 10.1.2.2

!

ip access-list extended LIST2

 permit udp host 10.1.1.2 host 10.1.3.2

!

!

crypto map CMAP 1 ipsec-isakmp

 match address LIST

 set transform-set TSET

 set peer 10.1.2.2

crypto map CMAP 2 ipsec-isakmp

 match address LIST2

 set transform-set TSET

 set peer 10.1.3.2

!

interface GigabitEthernet0/0

 no ip address

!

interface GigabitEthernet0/1

 ip address 10.1.1.2 255.255.255.0

 crypto map CMAP

!

interface GigabitEthernet0/2

 no ip address

!

interface GigabitEthernet0/3

 no ip address

 shutdown

!

!

ip route 0.0.0.0 0.0.0.0 10.1.1.1

!

crypto pki trustpoint s-terra_technological_trustpoint

 revocation-check crl

 crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl

crypto pki certificate chain s-terra_technological_trustpoint

certificate 65EF45E1A9E6EAB54D5C69591D470E06

3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630

0A06082A850307010103033030310B30090603550406130252553110300E0603

55040A1307532D5465727261310F300D06035504031306526F6F744341301E17

0D3137313031303037323833355A170D3232313031303037333833315A303031

0B30090603550406130252553110300E060355040A1307532D5465727261310F

300D06035504031306526F6F7443413081AA302106082A850307010101023015

06092A850307010201020106082A850307010102030381840004818001C2286D

3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E

12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979

DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8

DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F

300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D

0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006

092B06010401823715010403020100300A06082A850307010103030381810011

110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236

DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F

6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA

E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A

 

quit

!

end

Текст cisco-like конфигурации для шлюза GW2

!

version 12.4

no service password-encryption

!

crypto ipsec df-bit copy

crypto isakmp identity dn

crypto isakmp keepalive 10

crypto isakmp keepalive retry-count 5

username cscons privilege 15 password 0 csp

aaa new-model

!

!

hostname GW2

enable password csp

!

!

!

!

!

crypto isakmp policy 1

 encr gost

 hash gost341112-256-tc26

 authentication gost-sig

 group vko2

!

crypto ipsec transform-set TSET esp-gost28147-4m-imit

!

ip access-list extended LIST

 permit udp host 10.1.2.2 host 10.1.1.2

!

!

crypto map CMAP 1 ipsec-isakmp

 match address LIST

 set transform-set TSET

 set peer 10.1.1.2

!

interface GigabitEthernet0/0

 no ip address

!

interface GigabitEthernet0/1

 ip address 10.1.2.2 255.255.255.0

 crypto map CMAP

!

interface GigabitEthernet0/2

 no ip address

!

interface GigabitEthernet0/3

 no ip address

 shutdown

!

!

ip route 0.0.0.0 0.0.0.0 10.1.2.1

!

crypto pki trustpoint s-terra_technological_trustpoint

 revocation-check crl

 crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl

crypto pki certificate chain s-terra_technological_trustpoint

certificate 65EF45E1A9E6EAB54D5C69591D470E06

3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630

0A06082A850307010103033030310B30090603550406130252553110300E0603

55040A1307532D5465727261310F300D06035504031306526F6F744341301E17

0D3137313031303037323833355A170D3232313031303037333833315A303031

0B30090603550406130252553110300E060355040A1307532D5465727261310F

300D06035504031306526F6F7443413081AA302106082A850307010101023015

06092A850307010201020106082A850307010102030381840004818001C2286D

3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E

12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979

DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8

DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F

300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D

0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006

092B06010401823715010403020100300A06082A850307010103030381810011

110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236

DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F

6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA

E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A

 

quit

!

end

Текст cisco-like конфигурации для шлюза GW3

!

version 12.4

no service password-encryption

!

crypto ipsec df-bit copy

crypto isakmp identity dn

crypto isakmp keepalive 10

crypto isakmp keepalive retry-count 5

username cscons privilege 15 password 0 csp

aaa new-model

!

!

hostname GW3

enable password csp

!

!

!

!

!

crypto isakmp policy 1

 encr gost

 hash gost341112-256-tc26

 authentication gost-sig

 group vko2

!

crypto ipsec transform-set TSET esp-gost28147-4m-imit

!

ip access-list extended LIST

 permit udp host 10.1.3.2 host 10.1.1.2

!

!

crypto map CMAP 1 ipsec-isakmp

 match address LIST

 set transform-set TSET

 set peer 10.1.1.2

!

interface GigabitEthernet0/0

 no ip address

!

interface GigabitEthernet0/1

 ip address 10.1.3.2 255.255.255.0

 crypto map CMAP

!

interface GigabitEthernet0/2

 no ip address

!

interface GigabitEthernet0/3

 no ip address

 shutdown

!

!

ip route 0.0.0.0 0.0.0.0 10.1.3.1

!

crypto pki trustpoint s-terra_technological_trustpoint

 revocation-check crl

 crl download group GROUP http://10.0.221.179/certsrv/certcrl.crl

crypto pki certificate chain s-terra_technological_trustpoint

certificate 65EF45E1A9E6EAB54D5C69591D470E06

3082023B308201A7A003020102021065EF45E1A9E6EAB54D5C69591D470E0630

0A06082A850307010103033030310B30090603550406130252553110300E0603

55040A1307532D5465727261310F300D06035504031306526F6F744341301E17

0D3137313031303037323833355A170D3232313031303037333833315A303031

0B30090603550406130252553110300E060355040A1307532D5465727261310F

300D06035504031306526F6F7443413081AA302106082A850307010101023015

06092A850307010201020106082A850307010102030381840004818001C2286D

3943038F86C66502A8B0A8DBD15636D33E865085D901EE3ACA500CFEFCBD578E

12AEFA90F6F30624C6D1442DFFFEC31C613E6D8D3483828C430FA52168BB1979

DD2DE02338EA2D61C9B1F9F58BA3CC2CE6C1CDE78D2D4C9E966E62BFD94B17B8

DF2F53F38CB75D63514306A0D7A0BCBC6E6775D69AC3C99B0C054F2BA351304F

300B0603551D0F040403020186300F0603551D130101FF040530030101FF301D

0603551D0E0416041461175C3B503AB1E2DC5A49FE10EDB3218F7D7392301006

092B06010401823715010403020100300A06082A850307010103030381810011

110C24B65B47838EE49DC612CE81AB8E6F7BBB6B994033FCD54807BEF7467236

DE9D6F813229AD20BD9D520217A014719646A64296250F8BD93C5F4AB502844F

6FD8CBE1035A32A95E0F184569EF6DA2BD2A340985CB6DFEB544036D38490CCA

E1528C540B2DFB9E7CE9AF2FD95D8D3738371359281FA8CD5C70D00919356A

 

quit

!

end

Текст LSP конфигурации для шлюза GW1

#   This is automatically generated LSP

#

#   Conversion Date/Time:   Sun Mar  4 00:30:07 2018

 

GlobalParameters(

    Title                       = "This LSP was automatically generated by CSP Converter at Sun Mar  4 00:30:07 2018"

    Version                     = LSP_4_2

    CRLHandlingMode             = ENABLE

    PreserveIPsecSA             = FALSE

)

 

IKEParameters(

    FragmentSize = 0

)

 

RoutingTable(

    Routes =

        Route(

            Destination = 0.0.0.0/0

            Gateway = 10.1.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 TSET:ESP

(

    Transform* = ESPTransform

    (

        CipherAlg*          = "G2814789CPRO2-K288-CNTMAC-253"

        LifetimeSeconds     = 3600

        LifetimeKilobytes   = 4608000

    )

)

 

AuthMethodGOSTSign GOST:Sign

(

    LocalID        =  IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )

    SendRequestMode    =  ALWAYS

    SendCertMode       =  ALWAYS

)

 

IKERule IKERule:CMAP:1

(

    IKEPeerIPFilter = 10.1.2.2

    Transform = crypto:isakmp:policy:1

    AggrModeAuthMethod  = GOST:Sign

    MainModeAuthMethod  = GOST:Sign

    DPDIdleDuration     = 10

    DPDResponseDuration = 2

    DPDRetries          = 5

    Priority            = 10

)

 

IKERule IKERule:CMAP:2

(

    IKEPeerIPFilter = 10.1.3.2

    Transform = crypto:isakmp:policy:1

    AggrModeAuthMethod  = GOST:Sign

    MainModeAuthMethod  = GOST:Sign

    DPDIdleDuration     = 10

    DPDResponseDuration = 2

    DPDRetries          = 5

    Priority            = 20

)

 

IPsecAction IPsecAction:CMAP:1

(

    TunnelingParameters = TunnelEntry(

        PeerAddress = 10.1.2.2

        DFHandling=COPY

        Assemble=TRUE

    )

    ContainedProposals = ( TSET:ESP )

    IKERule = IKERule:CMAP:1

)

 

IPsecAction IPsecAction:CMAP:2

(

    TunnelingParameters = TunnelEntry(

        PeerAddress = 10.1.3.2

        DFHandling=COPY

        Assemble=TRUE

    )

    ContainedProposals = ( TSET:ESP )

    IKERule = IKERule:CMAP:2

)

 

FilterChain IPsecPolicy:CMAP (

    Filters = Filter (

        ProtocolID = 17

        SourcePort = 500, 4500

        Action = PASS

        PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED

    ),

    Filter (

        SourceIP = 10.1.1.2

        DestinationIP = 10.1.2.2

        ProtocolID = 17

        Action = PASS

        ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >

        LogEventID = "IPsec:Protect:CMAP:1:LIST"

    ),

    Filter (

        Label = "CMAP:2:LIST2"

        SourceIP = 10.1.1.2

        DestinationIP = 10.1.3.2

        ProtocolID = 17

        Action = PASS

        ExtendedAction = ipsec< sa = IPsecAction:CMAP:2 >

        LogEventID = "IPsec:Protect:CMAP:2:LIST2"

    )

)

 

NetworkInterface (

    LogicalName = "GigabitEthernet0/1"

    IPsecPolicy = IPsecPolicy:CMAP

)

 

Текст LSP конфигурации для шлюза GW2

#   This is automatically generated LSP

#

#   Conversion Date/Time:   Sun Mar  4 00:31:03 2018

 

GlobalParameters(

    Title                       = "This LSP was automatically generated by CSP Converter at Sun Mar  4 00:31:03 2018"

    Version                     = LSP_4_2

    CRLHandlingMode             = ENABLE

    PreserveIPsecSA             = FALSE

)

 

IKEParameters(

    FragmentSize = 0

)

 

RoutingTable(

    Routes =

        Route(

            Destination = 0.0.0.0/0

            Gateway = 10.1.2.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 TSET:ESP

(

    Transform* = ESPTransform

    (

        CipherAlg*          = "G2814789CPRO2-K288-CNTMAC-253"

        LifetimeSeconds     = 3600

        LifetimeKilobytes   = 4608000

    )

)

 

AuthMethodGOSTSign GOST:Sign

(

    LocalID        =  IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )

    SendRequestMode    =  ALWAYS

    SendCertMode       =  ALWAYS

)

 

IKERule IKERule:CMAP:1

(

    IKEPeerIPFilter = 10.1.1.2

    Transform = crypto:isakmp:policy:1

    AggrModeAuthMethod  = GOST:Sign

    MainModeAuthMethod  = GOST:Sign

    DPDIdleDuration     = 10

    DPDResponseDuration = 2

    DPDRetries          = 5

    Priority            = 10

)

 

IPsecAction IPsecAction:CMAP:1

(

    TunnelingParameters = TunnelEntry(

        PeerAddress = 10.1.1.2

        DFHandling=COPY

        Assemble=TRUE

    )

    ContainedProposals = ( TSET:ESP )

    IKERule = IKERule:CMAP:1

)

 

FilterChain IPsecPolicy:CMAP (

    Filters = Filter (

        ProtocolID = 17

        SourcePort = 500, 4500

        Action = PASS

        PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED

    ),

    Filter (

        SourceIP = 10.1.2.2

        DestinationIP = 10.1.1.2

        ProtocolID = 17

        Action = PASS

        ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >

        LogEventID = "IPsec:Protect:CMAP:1:LIST"

    )

)

 

NetworkInterface (

    LogicalName = "GigabitEthernet0/1"

    IPsecPolicy = IPsecPolicy:CMAP

)

 

Текст LSP конфигурации для шлюза GW3

#   This is automatically generated LSP

#

#   Conversion Date/Time:   Sun Mar  4 00:32:00 2018

 

GlobalParameters(

    Title                       = "This LSP was automatically generated by CSP Converter at Sun Mar  4 00:32:00 2018"

    Version                     = LSP_4_2

    CRLHandlingMode             = ENABLE

    PreserveIPsecSA             = FALSE

)

 

IKEParameters(

    FragmentSize = 0

)

 

RoutingTable(

    Routes =

        Route(

            Destination = 0.0.0.0/0

            Gateway = 10.1.3.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 TSET:ESP

(

    Transform* = ESPTransform

    (

        CipherAlg*          = "G2814789CPRO2-K288-CNTMAC-253"

        LifetimeSeconds     = 3600

        LifetimeKilobytes   = 4608000

    )

)

 

AuthMethodGOSTSign GOST:Sign

(

    LocalID        =  IdentityEntry( DistinguishedName* = USER_SPECIFIC_DATA )

    SendRequestMode    =  ALWAYS

    SendCertMode       =  ALWAYS

)

 

IKERule IKERule:CMAP:1

(

    IKEPeerIPFilter = 10.1.1.2

    Transform = crypto:isakmp:policy:1

    AggrModeAuthMethod  = GOST:Sign

    MainModeAuthMethod  = GOST:Sign

    DPDIdleDuration     = 10

    DPDResponseDuration = 2

    DPDRetries          = 5

    Priority            = 10

)

 

IPsecAction IPsecAction:CMAP:1

(

    TunnelingParameters = TunnelEntry(

        PeerAddress = 10.1.1.2

        DFHandling=COPY

        Assemble=TRUE

    )

    ContainedProposals = ( TSET:ESP )

    IKERule = IKERule:CMAP:1

)

 

FilterChain IPsecPolicy:CMAP (

    Filters = Filter (

        ProtocolID = 17

        SourcePort = 500, 4500

        Action = PASS

        PacketType = LOCAL_UNICAST, LOCAL_MISDIRECTED

    ),

    Filter (

        SourceIP = 10.1.3.2

        DestinationIP = 10.1.1.2

        ProtocolID = 17

        Action = PASS

        ExtendedAction = ipsec< sa = IPsecAction:CMAP:1 >

        LogEventID = "IPsec:Protect:CMAP:1:LIST"

    )

)

 

NetworkInterface (

    LogicalName = "GigabitEthernet0/1"

    IPsecPolicy = IPsecPolicy:CMAP

)

 

Текст /opt/l2svc/etc/config.conf для шлюза GW1

vif tap0

bridge br0

capture eth0.10

remote 10.1.2.2

port 10001

mssfix 1400

passtos

Текст /opt/l2svc/etc/config2.conf для шлюза GW1

vif tap1

bridge br1

capture eth0.11

remote 10.1.3.2

port 10002

mssfix 1400

passtos

Текст /opt/l2svc/etc/config.conf для шлюза GW2

vif tap0

bridge br0

capture eth0.10

remote 10.1.1.2

port 10001

mssfix 1400

passtos

Текст /opt/l2svc/etc/config.conf для шлюза GW3

vif tap0

bridge br0

capture eth0.11

remote 10.1.1.2

port 10002

mssfix 1400

passtos