Объединение двух и более сегментов одной сети в топологии «звезда» с помощью «С-Терра L2» с разделением по VLAN
Сценарий иллюстрирует построение защищенного соединения между разными 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) не обязательно.
Начальная настройка шлюза в 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.
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 для шлюза
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.
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 происходит аналогично настройке шлюза GW2, с заменой IP-адресов в соответствующих разделах конфигурации.
Необходимо настроить 11 VLAN, одну крипто-карту до GW1, а также один конфигурационный файл config.conf для «С-Терра L2».
В настройках «С-Терра L2» необходимо указать соответствующий порт (10002) и remote-адрес.
В приложении представлен текст cisco-like конфигурации, текст LSP конфигурации и текст config.conf для шлюза GW3.
На устройстве Router1 необходимо настроить соответствующие IP-адреса.
На устройстве Host1 задайте IP-адрес.
Устройство должно находиться в VLAN 10.
На устройстве Host2 задайте IP-адрес.
Устройство должно находиться в VLAN 11.
На устройстве Host3 задайте IP-адрес.
Устройство должно находиться в VLAN 10.
На устройстве 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.
!
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
!
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
!
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
# 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
)
# 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
)
# 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
)
vif tap0
bridge br0
capture eth0.10
remote 10.1.2.2
port 10001
mssfix 1400
passtos
vif tap1
bridge br1
capture eth0.11
remote 10.1.3.2
port 10002
mssfix 1400
passtos
vif tap0
bridge br0
capture eth0.10
remote 10.1.1.2
port 10001
mssfix 1400
passtos
vif tap0
bridge br0
capture eth0.11
remote 10.1.1.2
port 10002
mssfix 1400
passtos