S-Terra VPN — первоначальное знакомство и создание Site2Site VPN-подключения между двумя виртуальными С-Терра Шлюз 4.2 в среде EVE-NG.
Если есть желание и/или потребность разобраться в работе S-Terra Gate, то придётся потратить 5-6 часов на выполнение лабораторных работ. Это разумный минимум. Чтобы разобраться с установкой сертификатов и траблшутингом всего этого дела, уже будет 20 часов. Просто чтение этой статьи, других статей, мануалов с официального сайта, ничего не даст.
Предварительные сведения
- Зачем это надо?
В связи с импортозамещением в России компании как госсектора, так и частные, активно внедряют оборудование российской разработки. С-Терры тут довольно ходовое решение.
- Где взять образы и лицензии?
В рамках продвижения продукта С-Терра Шлюз 4.2 получить образ и демо-лицензию не составляет труда. Для получения нужно отписать на почту presale@s-terra.ru, указав свои ФИО, организацию и желаемое количество лицензий. Мне дали без организации как arny.ru. Демо-лицензия действует 3 месяца.
- Где взять документацию?
Виртуальный Шлюз и программно-аппаратный по своей функциональности идентичны. Документации полно на официальном сайте, плюс есть канал на Youtube с видеоуроками.
Отдельно есть канал Telegram, там можно потупить, если что-то не получается (как это делаю я). Отвечают довольно охотно и подробно.
- Зачем рассказывать ещё раз, если есть отдельный видео-урок?
Вот он этот видео-урок. Одно дело когда кто-то всё быстро-быстро тебе на видео показывает и совсем другое пощупать собственными руками. Только начал работать со S-Terra, хочу сам попробовать настроить и показать как это получилось.
Надеюсь, это поможет быстро разобраться тому, кто знакомится с устройствами S-Terra и при этом не хочет тратить пару дней на "прыжки" между различной документацией, видео-уроком и каналом Telegram. Я уже всё разобрал, проверил, полчаса на прочтение этой статьи и будет ясно как белый день.
Настройка
Использую следующую схему и адресацию:

Засовываем в EVE-NG
Тут ничего сложного, как настроить образ С-Терра Шлюз 4.2 рассказывал в записи про EVE-NG.
Начальная инициализация
Перед запуском образа S-Terra в EVE-NG редактируем его свойства и меняем тип интерфейсов:
При добавлении сетевых интерфейсов выбирайте тип адаптера VMXNET3
Это рекомендация от вендора, попробовал тип интерфейса по умолчанию tpl(e1000)
, разницы не заметил.
Ну а интерфейсов для нашей топологии будет достаточно двух. Стартуем образ, логинимся: логин administrator, пароль s-terra.
Оборудование очень не любит русскую раскладку, прям вообще не любит. Ошибка вываливается при вводе каждой русской буквы, а если это случится при вводе логина/пароля, то устройство заблокируется на вход от несколько минут до часа. Тогда его лучше выключить/включить чтобы не ждать.
Первым делом устройство нужно инициализировать:
administrator@sterragate] initialize
Далее понажимать указанные на экране клавиши (это настройка генератора случайных чисел, хотя могли что-то и поинтереснее придумать) и ввести полученную демо-лицензию:
Код Конечного Пользователя (Customer Code): DEMO Код продукта (Product Code): GATE Номер лицензии (License Number): XXXXXXX - цифровой код, указан в лицензии Код Лицензии (License Code): XXXXX-XXXXX-XXXXX-XXXXX-XXXXX - буквенно-цифровой код, указан в лицензии
На этом инициализация завершена:

Если лицензия введена неправильно или нужно заменить демо-лицензию на коммерческую:
root@sterragate:~#lic_mgr set -p GATE -c CUSTOMER_CODE -n LICENSE_NUMBER -l LICENSE_CODE
Изначально шлюз настроен на блокирование сетевого трафика, кроме DHCP. Изменим это, применяя пустую политику безопасности:
administrator@sterragate] run csconf_mgr activate
Устройство готово к работе.
Режимы консоли S-Terra
Первое что может запутать: тут есть несколько режимов, у всех режимов разные функции и команды тоже разные:
- Режим консоли разграничения доступа (мы сейчас в нём);
administrator@sterragate] - строка приглашения Администратор консоли разграничения доступа с уровнем привилегий 15 имеет право на запуск и останов сервиса безопасности, запуск процедуры инициализации, создание учетных записей пользователей с однофакторной или двухфакторной аутентификацией для консоли разграничения доступа, работу с файлами, запуск утилит для регистрации лицензии, сертификатов, просмотр любой информации, доступ к ОС.
- Режим операционной системы;
Это линукс и команды тут линуксовые, пользователь root, пароль пустой:
root@sterragate:~# - строка приглашения
- Режим cisco-like консоли
Тут всё полностью соответствует режимам IOS:
sterragate> sterragate# sterragate(config)#
Переходить из режима в режим так:
administrator@sterragate] system Entering system shell.. root@sterragate:~# cs_console sterragate> enable Password: csp sterragate# config t sterragate(config)# exit sterragate# exit root@sterragate:~# exit Logout Leaving system shell.. administrator@sterragate] configure sterragate login: cscons Password: csp S-Terra Gate 4.2.18201 (amd64) sterragate# config t sterragate(config)#
Вот такой круговорот воды в природе режимов. С этим нужно разобраться, иначе будет сложно.
Карта интерфейсов
Далее можно поменять пароль админа: change user password
и нужно обновить карту интерфейсов:
administrator@sterragate] system - заходим в system shell root@sterragate:~# /bin/netifcfg enum > /home/map1 - создаём карту интерфейсов root@sterragate:~# /bin/netifcfg map /home/map1 - применяем карту интерфейсов
Либо то же самое можно сделать с помощью команды run
в консоли разграничения доступа:
administrator@sterragate] run ? LINE Shell command to execute administrator@sterragate] run /bin/netifcfg enum > /home/map1 administrator@sterragate] run /bin/netifcfg map /home/map1 SUCCESS: Operation was successful.
В cisco-like консоли команды режима ОС также доступны через run
. Название интерфейсов в cisco-like консоли не будет соответствовать названиям интерфейсов в EVE-NG. Обойти это нельзя. Чтобы посмотреть соответствие:
administrator@sterragate] run vim.tiny /home/map1 0000:00:03.0 phye eth0 TenGigabitEthernet0/0 0000:00:04.0 phye eth1 TenGigabitEthernet0/1 - eth1 название в EVE-NG, TenGigabitEthernet0/1 название в cisco-like консоли
Для чего вообще эта карта нужна? Особенности архитектуры. Без настройки карты интерфейсов не будет стартовать IPsec daemon:
При первом старте или при добавлении/удалении сетевых адаптеров после включения виртуального шлюза необходимо обновить карту интерфейсов.
Перезагружаемся:
administrator@sterragate] reboot
Когда всё нормально, IPsec daemon успешно стартует и можно выполнить команду show config
. Если же IPsec daemon не запустился, команда выдаст ошибку. Также доступно ещё несколько команд show, например, show version
:

Настройка интерфейсов
В cisco-like консоли настраиваем имя шлюза, интерфейсы, маршрут по умолчанию:
sterragate(config)# hostname Gate1 Gate1(config)# enable password Str0ngP@$w0rd Gate1(config)# interface TenGigabitEthernet0/0 Gate1(config-if)# ip address 10.10.10.1 255.255.255.252 Gate1(config-if)# no shutdown Gate1(config-if)# exit Gate1(config)# interface TenGigabitEthernet0/1 Gate1(config-if)# ip address 192.168.1.1 255.255.255.0 Gate1(config-if)# no shutdown Gate1(config-if)# exit Gate1(config)# ip route 0.0.0.0 0.0.0.0 10.10.10.2 - адрес следующего перехода Gate1(config)# end Gate1# wr
При выходе из режима глобальной конфигурации происходит автоматическая конвертация, сохранение и загрузка конфигурации в startup config. Но у меня уже давно правило: всегда сохранять конфигурацию.
Настройка SSH
В документации много что-то всего понаписано, но у меня SSH заработал сразу после задания пароля рута:
administrator@sterragate] run passwd Enter new UNIX password:

Мы попали в режим операционной системы. Режим консоли разграничения доступа больше не нужен. Получается этот режим используется только:
- Для первоначальной настройки;
- Для работы с устройством локально
Ещё раз вход в cisco-like консоль:
root@Gate1:~# cs_console Gate1> enable Password: Str0ngP@$w0rd Gate1# config t Gate1(config)#
Для тренировки навыков предлагаю первую лабу:
- Получить демо-лицензии;
- Развернуть 1 образ S-Terra, соединить с 1 виртуальным PC;
- Выполнить все шаги, расмотренные ранее;
- Результатом выполнения лабы должно стать успешное подключение SSH c PC на S-Terra.
Настройка VPN
Настраивается IPSec туннель со странными с непривычными алгоритмами шифрования. Эти алгоритмы удовлетворяют ГОСТ'ам РФ, ради чего всё и затевалось. Туннель поднимается в 2 фазы, кто плохо помнит что это и как, лучше освежить память.
Сначала настраиваем на Gate1, затем зеркально на Gate2.
Фаза 1
Мнемоника HAGLE, сначала хеш:
Gate1(config)# crypto isakmp policy 1 Gate1(config-isakmp)# hash ? gost GOST R 34.11-94 Hash gost341112-256-tc26 GOST R 34.11-2012 TC26 (256 bit keys) Hash gost341112-512-tc26 GOST R 34.11-2012 TC26 (512 bit keys) Hash md5 Message Digest 5 sha Secure Hash Standard tc26-ike-gost3411 TC26 IKE GOST R 34.11-94 Hash tc26-ike-gost341112-512 TC26 IKE GOST R 34.11-2012 (512 bit keys) Hash Gate1(config-isakmp)# hash gost341112-256-tc26
Потом аутентификация:
Gate1(config-isakmp)# authentication ?
dss-sig DSS Signature
gost-sig GOST R 34.10-2001 Signature
pre-share Pre-Shared Key
rsa-sig Rivest-Shamir-Adleman Signature
sign S ignature selected by CA type
Gate1(config-isakmp)# authentication pre-share
Затем группа Диффи-Хеллмана:
Gate1(config-isakmp)# group ?
1 Diffie-Hellman group 1
2 Diffie-Hellman group 2
5 Diffie-Hellman group 5
vko VKO GOST R 34.10-2001
vko2 VKO GOST R 34.10-2012 (256 bit keys)
Gate1(config-isakmp)# group vko2
Следом идёт время жизни. Ни в инструкции, ни в видео этот параметр не настраивается и я значит не буду. Но параметр есть:
Gate1(config-isakmp)# lifetime ? <1-4294967295> lifetime in seconds
Последнее шифрование:
Gate1(config-isakmp)# encryption ?
3des Three key triple DES
aes AES - Advanced Encryption Standard.
des DES - Data Encryption Standard (56 bit keys).
gost GOST - GOST 28147-89 Encryption.
gost2814789z GOST - GOST 28147-89 Z Encryption.
gost341215k GOST - GOST R 34.12-2015 Kuznyechik Encryption.
tc26-ike-gost-b-imit TC26 IKE GOST_B_CFB_IMIT Encryption.
tc26-ike-gost-z-imit TC26 IKE GOST_Z_CFB_IMIT (GOST 28147-89 Z) Encryption.
Gate1(config-isakmp)# encryption gost
Gate1(config-isakmp)# exit
Почитал немного, алгоритмы достаточно стойкие. Длина ключа 256-512bit.
PresharedKey (PSK)
Настройку identity
как в видео делать не нужно, если посмотреть в конфигурацию:
Gate1# show running-config
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity address
username cscons privilege 15 password 0 csp
aaa new-model
!
Это настройка по умолчанию. Данная настройка определяет работу туннеля, если используется PSK, то настройка имеет вид crypto isakmp identity address
. Если используются сертификаты, то crypto isakmp identity dn
. Настраиваем Keepalive:
Gate1(config)# crypto isakmp keepalive 10 2 10 - Number of seconds between keep alives <1-32767> 2 - Number of seconds between retries if keepalive fails <1-300>
Настраиваем PSK:
Gate1(config)# crypto isakmp key Str0ngP@$w0rd address 10.10.10.2
Crypto ACL
Отбираем трафик между PC1 и PC2:
Gate1(config)# ip access-list extended VPNGOST Gate1(config-ext-nacl)# permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Фаза 2
Создаём Transform Set:
Gate1(config)# crypto ipsec transform-set SET1 ?
ah-gost28147-mac AH GOST 28147-89 MAC transform
ah-gost3411-hmac AH GOST R 34.11-94 HMAC96 transform
ah-md5-hmac AH-HMAC-MD5 transform
ah-sha-hmac AH-HMAC-SHA transform
esp-3des ESP transform using 3DES(EDE) cipher (168 bits)
esp-aes ESP transform using AES cipher
esp-des ESP transform using DES cipher (56 bits)
esp-gost28147 ESP transform using GOST 28147-89 cipher
esp-gost28147-4m-imit ESP transform using ESP_GOST-4M-IMIT cipher
esp-gost28147-4m-imit-z ESP transform using ESP_GOST-4M-IMIT GOST 28147-89 Z cipher
esp-gost28147-mac ESP transform using GOST 28147-89 MAC auth
esp-gost3411-hmac ESP transform using GOST R 34.11-94 HMAC96 auth
esp-gost341215k ESP transform using GOST R 34.12-2015 Kuznyechik CFB cipher
esp-gost341215k-mac ESP transform using GOST R 34.12-2015 Kuznyechik MAC auth
esp-md5-hmac ESP transform using HMAC-MD5 auth
esp-null ESP transform w/o cipher
esp-sha-hmac ESP transform using HMAC-SHA auth
tc26-esp-gost-b-4m-imit TC26 ESP transform using ESP_GOST-4M-IMIT CPROB cipher
tc26-esp-gost-z-4m-imit TC26 ESP transform using ESP_GOST-4M-IMIT GOST 28147- 89 Z cipher
Gate1(config)# crypto ipsec transform-set SET1 esp-gost28147-4m-imit
Настройка mode tunnel
не нужна, это настройка по умолчанию.
Crypto Map
Создаём крипто карту:
Gate1(config)# crypto map CMAP 1 ipsec-isakmp Gate1(config-crypto-map)# match address VPNGOST Gate1(config-crypto-map)# set transform-set SET1 Gate1(config-crypto-map)# set peer 10.10.10.2 Gate1(config-crypto-map)# exit
Применяем на интерфейсе:
Gate1(config)# interface TenGigabitEthernet0/0 Gate1(config-if)# crypto map CMAP
Проверка
Сначала проверим на PC1, затем на крипто-шлюзе.
PC1
Пингуем с PC1 PC2. Пинги не проходят, смотрим на S-Terra1: сообщения о невозможности установить туннель. Смотрим на S-Terra2, тут интереснее:

Поиграться с 2 шлюзами установив 1 лицензию на оба не получится, лицензия нужна не только для первоначальной инициализации, но также проверяется при установке VPN-соединения. 🙂
Меняем лицензию на одном из устройств:
root@sterragate:~# lic_mgr - будет выведен пример использования
И ещё раз проверяем:

Большая задержка при первом реплае связана со временем на согласование туннеля. Помнится для CISCO первый пакет терялся.

Если возникли проблемы при согласовании туннеля, то поможет команда cisco-like консоли:
Gate1(config)# logging trap debugging
Она включает режим максимального логирования. Тут есть отличие от CISCO, так как для CISCO команда logging trap
определяет настройки логирования на Syslog сервер. Но для S-Terra:
Сообщения можно посылать только на один адрес. Команда no logging не поддерживается.
Значение по умолчанию logging 127.0.0.1
Надеюсь пояснил этот момент.
Крипто-шлюз
Смотрим Security Associations (SA):

Туннель поднять удалось, на этом пока всё. Для тренировки навыков предлагаю вторую лабу:
- Развернуть 2 образа S-Terra и 2 виртуальных PC. Как это указано на схеме в начале статьи;
- Выполнить все шаги, расмотренные ранее;
- Результатом выполнения лабы должно стать успешное поднятие Site2Site VPN между 2 S-Terra.
Инструкция не полная. Для полноты неплохо было бы добавить шаги, что делать сразу после установки образа С-Терра. В какой режим логинимся, в какой режим попадаем ну и т.д. по списку
Привет, Юрий! Сначала нужно получить демо-лицензию, без неё ничего не получится. Далее скачать/установить образ. Затем провести начальную инициализацию и ввести лицензию. Создать карту интерфейсов, перезагрузить устройство. Проверить что службы стартуют. Делается из режима консоли разграничения доступа. Посмотреть, попереключаться между режимами. Настроить IP адреса, SSH. Подключаться уже через SSH, либо с домашнего компа, либо с виртуального компа в лабе. Попадаем сразу в режим ОС. Режим разграничения доступа с этого момента фактически не нужен. Он только для первоначальной настройки. Всё это максимально подробно написано в статье. Как написать ещё подробнее.. даже не знаю. Если какой-то шаг непонятен, пиши, разберём вместе. И на будущее: сначала хорошо бы поздороваться. А "эй ты, слушь, тут у тебя статья фиговая и неполная!" не совсем вежливо.
Добрый день.
Пытаемся добавить S-terra в EVE-NG, всё сделали по вашей инструкции. Добавить устройство в лабу можно, но оно не стартует. Причём ошибок не показывает, наоборот, рапортует, что устройство стартовало (S-Terra: started). Но устрйство остаётся серым выключенным. В какую сторону копать? Возможно, версия устаревшая (17-го года), но сомнительно.
Вопрос снят. Дело было всё-таки в старой версии. : -) Простите.
Добрый день, Филипп. Извиняться не за что, обычный рабочий процесс. Что-то не получается, ошибки, зато какое удовольствие когда всё заработало. Спасибо за прочтение моей статьи.