Выявление ошибок при работе с типовыми сценариями

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

Применимость

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

Ниже предложены средства для диагностики возможных проблем при настройке сценариев, даны базовые алгоритмы выявления ошибки, описана работа с журналами событий и приведены примеры поиска и устранения ошибок с помощью приведенных материалов.

 

Средства выявления ошибок

Средства продукта «С-Терра Шлюз»

В программной среде продукта «С-Терра Шлюз» кроме просмотра конфигураций устройства и состояния соединений можно также воспользоваться системными журналами и средствами анализа сетевого трафика.

Специализированные утилиты

Для вывода требуемой для диагностики информации можно воспользоваться специализированными утилитами, входящими в состав продукта. С методами использования данных утилит можно ознакомиться на портале документации: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Специализированные_команды1.htm.

На портале документации (http://doc.s-terra.ru/rh_output/4.2/Gate/output/index.htm) в разделе «Специализированные команды» можно ознакомиться со всеми доступными утилитами. Для удобства все ссылки приведены ниже:

·         Утилиты, показывающие информацию о продукте: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилита_показывающая_информацию_о_Продукте.htm

·         Утилиты проверки целостности: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_проверки_целостности.htm

·         Утилиты для работы с сертификатами: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_сертификатами.htm

·         Утилиты для работы с контейнерами: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_контейнерами.htm

·         Утилиты для работы с ключами криптопровайдера: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_ключами_криптопровайдера.htm

·         Утилиты для работы с предопределенными ключами: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_предопределенными_ключами.htm

·         Утилиты для работы с LSP конфигурацией: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_LSP_конфигурацией.htm

·         Утилиты для работы с cisco-like конфигурацией: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_cisco-like_конфигурацией.htm

·         Утилиты для работы с интерфейсами: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_интерфейсами.htm

·         Утилиты для работы с DDP: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_DDP.htm

·         Утилиты для настройки протоколирования: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_настройки_протоколирования.htm

·         Утилиты для просмотра и удаления SA: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_просмотра_и_удаления_SA.htm

·         Утилиты для работы с лицензией: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_лицензией.htm

·         Утилиты для работы с настройками IPsec драйвера: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_настройками_IPsec_драйвера.htm

·         Утилита для TCP-соединений: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилита_для_TCP-соединений.htm

·         Утилита для просмотра сообщений IPsec-драйвера: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилита_для_просмотра_сообщений_IPsec-драйвера.htm

·         Утилита для просмотра счетчиков IPsec-драйвера: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилита_для_просмотра_счетчиков_IPsec-драйвера.htm

·         Утилиты для генерации и контроля ДСЧ: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_генерации_и_контроля_ДСЧ.htm

·         Утилита для генерации данных внешней гаммы: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилита_для_генерации_данных_внешней_гаммы.htm

Наиболее часто при работе с типовыми сценариями используются команды для просмотра сертификатов, их состояния и списка отозванных сертификатов (CRL), команды для просмотра SA и команды для работы с IPsec-драйвером:

·         cert_mgr show: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/cert_mgr_show.htm

·         cert_mgr check: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/cert_mgr_check.htm

·         sa_mgr show: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/sa_mgr_show.htm

·         kstat_show: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/kstat_show.htm

·         klogview: http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/klogview.htm

Первые две команды могут потребоваться в случае, если есть подозрение, что соединение не устанавливается из-за проблем с сертификатами или ключами, которые к ним привязаны. С помощью утилиты sa_mgr можно убедиться в том, что соединение было корректно установлено.

Также стоит упомянуть добавляющую удобства команду csconf_mgr show, которая позволяет вывести на экран cisco-like конфигурацию.

Для вывода статистики по работе IPsec-драйвера можно воспользоваться утилитой для просмотра счетчиков драйвера kstat_show.

Для просмотра сообщений по конкретным событиям, создаваемым системой протоколирования IPsec-драйвера, можно воспользоваться утилитой klogview.

Общие утилиты

Кроме специализированных утилит следует также упомянуть утилиты, использующиеся в подавляющем большинстве современных linux-систем. К таким утилитам можно отнести:

·         Утилиты мониторинга системных процессов (ps, top);

·         Утилиты настройки сети и сетевой диагностики, которые также могут служить для вывода информации (arp, ip, ifconfig, netstat, ping);

·         Утилиты для вывода системной информации (date, dmesg, uname).

Здесь же можно упомянуть частные случаи, когда удобно пользоваться возможностями linux для диагностики. К таким случаям может относиться просмотр информации из системных директорий /proc и /tmp.

Анализ сетевого трафика

Для того, чтобы понять, каким образом между устройствами ходит трафик, можно воспользоваться утилитой tcpdump. Утилита выводит на экран информацию о каждом пакете, получаемом или отправляемом устройством. Также с ее помощью можно записывать информацию в файл для чтения полученных данных при помощи других программ (напр.: Wireshark).

Средства, доступные из Cisco-like консоли

Для просмотра конфигурации и других полезных параметров можно воспользоваться командой show привилегированном режиме командной строки или командой do show в режиме конфигурации (http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Console/Команды_вывода_информации_информационные_команды.htm). Для удобства ниже представлены команды show с кратким описанием:

·         show version эмулирует сообщения Cisco IOS о модели аппаратной платформы и версии программного обеспечения;

·         show version csp – выводит информацию о версии программного обеспечения S-Terra Gate, типе и номере сборки;

·         show privilege – отображает текущий уровень привилегий пользователя;

·         show load-message – выводит информацию о работе конвертора или отображении сообщений при загрузке конфигурации;

·         show running-configиспользуется для вывода на экран загруженной конфигурации;

·         show terminal – используется для просмотра настроек терминала;

·         show ip route – выводит содержимое таблицы маршрутизации;

·         show crypto isakmp policy – используется для вывода на экран ISAKMP политики;

·         show crypto isakmp sa – выводит информацию по IKE SA;

·         show crypto ipsec sa – выводит информацию по IPsec SA (можно также добавить опцию detail для более детализированного вывода);

·         show substitution gui – используется для вывода на экран списка соответствия алгоритмов в Cisco-like командах с именами в стиле GUI.

Для выявления ошибок следует обратить внимание на команды show running-config и show crypto. Вместо команды show ip route удобнее использовать утилиту ip.

Журналы событий продукта «С-Терра Шлюз»

По умолчанию сообщения всех уровней важности (ниже и включительно указанного настройкой logging trap) направляются в файл /var/log/cspvpngate.log.

Для задания уровня детализации протоколирования можно воспользоваться настройкой logging trap {уровень_важности} в cisco-like конфигурации. Для выявления ошибок рекомендуется использовать уровень детализации debugging.

Средства продукта «С-Терра Клиент»

Специализированные утилиты

В состав продукта «С-Терра Клиент» входят некоторые утилиты, дублирующие функционал соответствующих утилит продукта «С-Терра Шлюз». После установки настроенного пакета эти утилиты можно найти в директории C:\Programs Files\S-Terra Client для 32-х разрядных систем или в директории C:\Programs Files (x86)\S-Terra Client для 64-х разрядных. Список таких утилит с описанием работы представлен на портале документации (http://doc.s-terra.ru/rh_output/4.2/Client_st/output/mergedProjects/Util/Специализированные_команды1.htm).

Журналы событий продукта «С-Терра Клиент»

При создании установочного пакета с помощью утилиты AdminTool во вкладке Settings можно увидеть настройки SysLog. Эти настройки отвечают за то, куда будут направляться данные журнала событий продукта «С-Терра Клиент». При настройках, соответствующих типовому сценарию применения, данные опции следует оставить нетронутыми. При необходимости получения большего количества информации можно поменять строку Severity с info на debug.

Для просмотра журнала событий продукта «С-Терра Клиент» можно воспользоваться, например, бесплатным приложением Visual Syslog for Windows (или любым другим аналогичным ПО). Загрузить исходный код приложения можно по ссылке https://github.com/MaxBelkov/visualsyslog. Также можно скачать установщик, ссылка на который доступна в файле readme.md (https://github.com/MaxBelkov/visualsyslog/blob/master/readme_rus.md) в разделе «Получение программы». При настройках, соответствующих типовому сценарию применения, программу следует устанавливать на устройство, использующее продукт «С-Терра Клиент».

Средства продукта «С-Терра L2»

Журналы событий продукта «С-Терра L2»

При использовании продукта «С-Терра L2», работающего с настройками по умолчанию, в файле /var/log/cspvpngate.log будут появляться дополнительные записи, относящиеся к работе данного продукта. Также в настройках продукта можно указать отдельный файл для протоколирования событий (http://doc.s-terra.ru/rh_output/4.2/L2/output/mergedProjects/Admin/Настройка_L2-туннелей.htm, параметр log) и уровень подробности (параметр verb).

 

Базовые алгоритмы проверки

Алгоритм проверки для продукта «С-Терра Шлюз»

Указанные ниже пункты можно выполнять в произвольном порядке. Нужно удостовериться в правильности каждого из них, затем удалить текущие SA с помощью утилиты sa_mgr и перезапустить ping.

o    Удостовериться в том, что лицензии на использование продукта «С-Терра Шлюз» на устройствах действительны и не пересекаются. Для данной цели можно воспользоваться утилитой lic_mgr (http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_лицензией.htm).

o    Удостовериться в правильности настроек IKE. Для этого можно воспользоваться командой show crypto isakmp policy (http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Console/show_crypto_isakmp_policy.htm) в привилегированном режиме Cisco-like консоли и посмотреть ее вывод на шлюзах участниках предполагаемого соединения.

o    Проверить, что все необходимые сертификаты и CRL установлены и проверить их статус. Для данной цели следует использовать утилиту cert_mgr с командами show и check (http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Util/Утилиты_для_работы_с_сертификатами.htm).

o    Проверить ACL (access-list). Для проверки ACL можно воспользоваться командами вывода Cisco-like конфигурации: show running-config из привилегированного режима в Cisco-like консоли или csconf_mgr show в linux-консоли.

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

Алгоритм проверки для продукта «С-Терра Клиент»

Указанные ниже пункты можно выполнять в произвольном порядке. Нужно удостовериться в каждом из них и перезапустить, затем удалить текущие SA и перезапустить ping.

o    Выполнить все пункты из алгоритма проверки для продукта «С-Терра Шлюз» для шлюза безопасности.

o    На клиенте следует проверить действительность лицензии (можно сделать при помощи утилиты lic_mgr). Проверить, что все необходимые сертификаты и CRL установлены и проверить их статус (использовать можно утилиты cert_mgr show и cert_mgr check).

o    Попробовать временно отключить межсетевой экран на стороне клиента. В случае нормализации работы соединения следует внести в настройки межсетевого экрана соответствующее правило.

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

Примечание. При отсутствии прав администратора, для удаления SA на клиенте можно выбрать его иконку в трее и совершить «Logout» затем «Login».

Алгоритм проверки для продукта «С-Терра L2»

Указанные ниже пункты можно выполнять в произвольном порядке. Нужно удостовериться в каждом из них, затем удалить текущие SA и перезапустить ping.

o    Выполнить все пункты из алгоритма проверки для продукта «С-Терра Шлюз».

o    Удостовериться в том, что лицензии на использование продукта «С-Терра L2» на устройствах действительны и не пересекаются. Для этого следует убедиться в правильности файлов /opt/l2svc/etc/l2.lic на устройствах, участвующих в соединении.

o    Проверить правильность файлов конфигурации для продукта «С-Терра L2». Для проверки нужно просмотреть все файлы, заканчивающиеся на «.conf» в директории /opt/l2svc/etc/.

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

Использование журналов событий

Примечание. При превышении допустимого размера текущий файл лога сохраняется с суффиксом «.1» после того, как у ранее сохранённых файлов суффиксы меняются с «.<n>» на «.<n+1>». Всего дополнительно к текущему файлу лога сохраняется 2 экземпляра заполненных файлов лога (cspvpngate.log.1, cspvpngate.log.2).

Способы просмотра на шлюзе

Вывести все сообщения из журнала:

cat /var/log/cspvpngate.log

Просмотр поступающих в журнал сообщений в реальном времени:

tail -f /var/log/cspvpngate.log

Чтобы открыть журнал с возможностью поиска и прокрутки можно воспользоваться утилитой less:

less /var/log/cspvpngate.log

Примечание. Работа с утилитой less:

и – навигация;

PageUp / PageDown или Space / b – прокрутка на один экран;

Enter – прокрутка на одну строку вперед;

q – выход;

/pattern – поиск по шаблону вперед;

?pattern – поиск по шаблону назад;

n – следующее совпадение;

N – предыдущее совпадение.

Также можно просматривать журналы, открыв их внутри собственной операционной системы. В ОС Windows их удобно смотреть утилитой, которая сохраняет форматирование (Wordpad, Notepad++).

Сообщения в журнале событий

IPsec daemon (vpnsvc) is running – запуск VPN-сервиса.

IPsec daemon (vpnsvc) stopped – остановка VPN-сервиса.

connection request – запрос на создание соединения (далее в строке указан статус и причина неработоспособности в случае неудачи).

Session completed – сессия установлена.

Duplicate of local license detected – партнёр использует ту же лицензию, что и на локальном устройстве.

Certificate inactive/can not be verified – проблемы с сертификатами. Проверить: cert_mgr show и cert_mgr check, время date, если включена проверка CRL, то присутствует ли он в базе.

IPSec connection 2225 closed: 30800 bytes sent, 30800 received: Delete payload received - соединение было разорвано удаленным партнером.

Unable to send IKE packet to <IP> - шлюз не может послать пакет. Обычно свидетельствует об отсутствии физического соединения (link).

IKE session stopped at [Main Mode, Initiator, Packet 1], Reason: Session timeout – разрыв соединения, превышено время ожидания. Шлюз не получил ответные пакеты от удаленного шлюза. Если такой записи видны с обоих сторон – проблема в канале.

Loading new configuration – конфигурация устройства была перезагружена. Это может сделать пользователь, либо VRRP в случае изменения состояний.

No proposal chosen – шлюз получил предложения по параметрам безопасности от партнера, но не смог найти подходящего. Причин данной ошибки может быть довольно много. Чаще всего это может означать что пакет попал не под то правило (слишком широкое).

Сообщения сервисов

Сообщения сервисов кроме vpnsvc, в частности VRRP, дублируются в журнал шлюза.

Entering – изменение состояния, например:

Apr 23 15:38:37 G1000-1 Keepalived_vrrp[2802]: VRRP_Instance(eth0.200_11) Entering MASTER STATE

Примечание. Сообщения уровня важности err и выше дополнительно направляется в консоль и файл/var/log/error.log.

Примечание. Для удобства анализа можно ознакомиться с разделом документации, описывающим протоколирование событий.

Для продуктов «С-Терра Шлюз» и «С-Терра Клиент»:

http://doc.s-terra.ru/rh_output/4.2/Gate/output/mergedProjects/Syslog/Протоколирование_событий1.htm

Для продукта «С-Терра L2»:

http://doc.s-terra.ru/rh_output/4.2/L2/output/index.htm#t=mergedProjects/Admin/Протоколирование.htm

 

Примеры

Ниже представлены примеры выявления ошибок. В качестве дополнения к алгоритмам проверки описаны примеры использования журналов событий, так как такие примеры в типовых сценариях не описываются.

Пример 1. Ошибка в параметрах IKE

Рисунок 1

На устройствах GW1 и GW2 в политике IKE ошибочно установлены различные методы аутентификации:

GW1(config-isakmp)#authentication rsa-sig

GW2(config-isakmp)#authentication gost-sig

Диагностика при помощи алгоритма

В данном сценарии для проверки можно воспользоваться алгоритмом проверки для продукта «С-Терра Шлюз»:

o    Проводим проверку лицензий.

GW 1 (выводlic_mgr show):

Active license:

CustomerCode=test

ProductCode=GATE

LicenseNumber=111111

LicenseCode=00000-11111-22222-33333-44444

GW 2 (выводlic_mgr show):

Active license:

CustomerCode=test

ProductCode=GATE

LicenseNumber=111112

LicenseCode=00000-11111-22222-33333-44445

 

Исходя из полученного результата можно сделать вывод, что лицензии действительны и не пересекаются.

 

o    Проводим проверку параметров IKE.

GW 1(вывод showcryptoisakmppolicy из привилегированного режима):

Protection suite of priority 1

        encryption algorithm:   GOST 28147-89

        hash algorithm:         GOST R 34.11-2012 TC26 (256 bit keys)

        authentication method:  Rivest-Shamir-Adleman Signature

        Oakley group:           VKO GOST R 34.10-2012 (256 bit keys)

        lifetime:               86400 seconds, no volume limit

GW 2 (вывод show crypto isakmp policy из привилегированного режима):

Protection suite of priority 1

        encryption algorithm:   GOST 28147-89

        hash algorithm:         GOST R 34.11-2012 TC26 (256 bit keys)

        authentication method:  GOST R 34.10-2001 Signature

        Oakley group:           VKO GOST R 34.10-2012 (256 bit keys)

        lifetime:               86400 seconds, no volumelimit

 

Из вывода видно, что алгоритмы аутентификации не совпадают. После прохождения проверки это необходимо исправить.

 

o    Проводим проверку сертификатов.

GW1 (вывод cert_mgr show):

Found 2 certificates. No CRLs found.

1 Status: trusted 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2

2 Status: local   C=RU,OU=Research,CN=GW1

GW2 (вывод cert_mgr show):

Found 2 certificates. No CRLs found.

1 Status: trusted 1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2

2 Status: local   C=RU,OU=Research,CN=GW2

GW1 (вывод cert_mgr check):

1 State: Active   1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2

2 State: Active   C=RU,OU=Research,CN=GW1

GW2 (вывод cert_mgr check):

1 State: Active   1.2.840.113549.1.9.1=support@cryptopro.ru,C=RU,L=Moscow,O=CRYPTO-PRO LLC,CN=CRYPTO-PRO Test Center 2

2 State: Active   C=RU,OU=Research,CN=GW2

 

Из вывода видно, что сертификат партнера по соединению у каждого шлюза отсутствует. Каждый сертификат в отдельности валиден, что видно из вывода cert_mgrcheck. Это вписывается в картину с неправильно настроенной политикой, так как без настроенной политики безопасности обмена сертификатами не произойдет.

 

o    Проводим проверку правильности настроек ACL.

GW1(из вывода csconf_mgr show):

ip access-list extended LIST

 permit ip host 192.168.1.100 host 192.168.2.100

crypto map CMAP 1 ipsec-isakmp

 match address LIST

interface GigabitEthernet0/1

 …

 crypto map CMAP

GW2 (из вывода csconf_mgr show):

Ip access-list extended LIST

 permit ip host 192.168.2.100 host 192.168.1.100

crypto map CMAP 1 ipsec-isakmp

 match address LIST

interface GigabitEthernet0/1

 …

 crypto map CMAP

 

В конфигурацииACL ошибок не замечено.

 

После проверки можно прийти к выводу, что параметры аутентификации в IKE настроены неверно. После прохождения проверки их следует исправить.

Также для нахождения проблемы можно воспользоваться журналом. Ниже приведен пример диагностики с использованием журнала.

Диагностика при помощи журнала

Проанализировав данные, поступающие в журнал /var/log/cspvpngate.log, можно прийти к выводу, что методы аутентификации для построения туннеля ISAKMP на устройствах не совпадают:

Feb 19 15:52:44 localhost  vpnsvc: 00101031 <20:0> Checking Transform #2 for Rule "IKERule:CMAP:1", Proposal #1, Protocol ISAKMP, Transform #1: auth method not match

Feb 19 15:52:44 localhost  vpnsvc: 10000018 <20:0> IKE session stopped at [Main Mode, Responder, Packets 1,2][Compare policy], Reason: NO-PROPOSAL-CHOSEN

Также можно обратить внимание на фразу «NO-PROPOSAL-CHOSEN». Она говорит об отсутствии согласованного набора параметров для создания туннеля.