Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

ГОСТ-шифрование

Термит поддерживает подключение внешних клиентов с использованием туннелей, шифрованных ГОСТ-алгоритмами. Для этого в DMZ зоне можно разместить сервер с ГОСТ-stunnel, который будет принимать входящие подключения, и пересылать их на внешние балансировщики нагрузки и шлюзы. Либо, можно настроить ГОСТ-stunnel на шлюзе и\или внешнем балансировщике. Данная инструкция описывает конфигурацию ГОСТ-stunnel на шлюзе.

1. Настройка серверов

Для поддержки подключений пользователей, необходимо установить и настроить stunnel (версия от КриптоПро) на шлюзе внешнего доступа.

Настройка TLS-шлюза
  1. Установите КриптоПро CSP. Версия stunnel от КриптоПро поставляется в комплекте с этим продуктом.

    Начиная с CSP 5.0 R3 в демонстрационную лицензию больше не входит «TLS-сервер», поэтому в целях тестирования можно установить версию CSP 5.0 R2.

    1. Скачайте архив для нужной ОС по ссылке.

    2. Распакуйте полученный архив с помощью команды:

      tar -xvzf linux-amd64*.tgz
    3. При необходимости установите пакет lsb для корректной инсталляции КриптоПро CSP.

    4. Запустите установку КриптоПро CSP с помощью команды:

      sudo ./install_gui.sh

      При установке необходимо выбрать компонент stunnel.

  2. Сгенерируйте ключи на шлюзе.

    1. Создайте контейнер на носителе HDIMAGE, задав пустой пароль:

      sudo /opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -cont '\\.\HDIMAGE\termit'
    2. Создайте запрос на получение сертификата, заменяя %e@mail% (необязательный параметр), %gw_FQDN% на используемые:

      sudo /opt/cprocsp/bin/amd64/cryptcp -creatrqst -dn "E=%e@mail%, C=RU, CN=%gw_FQDN%, SN=%gw_FQDN%" -hashalg 1.2.643.7.1.1.2.2 -nokeygen -both -ku -cont '\\.\HDIMAGE\termit' gw.req
    3. Выведите содержимое файла gw.req с помощью команды:

      cat gw.req
  3. Получите сертификат от центра сертификации (ЦС).

    Для работы потребуются следующие сертификаты:

    • сертификат шлюза;

    • корневой сертификат ЦС;

    • промежуточные сертификаты ЦС (при наличии).

      Если в вашей организации используется корпоративный центр сертификации, порядок получения сертификатов определяется внутренними регламентами.

      Ниже в качестве примера приведён процесс получения сертификата от центра сертификации КриптоПро:

      1. Откройте портал по ссылке.

      2. Вставьте содержимое файла gw.req в поле Base-64-шифрованный запрос сертификата.

      3. Нажмите Выдать.

      4. Нажмите "Загрузить сертификат", полученный файл certnew.cer переименуйте в gw.cer.

      5. Нажмите Загрузить цепочку сертификатов. Полученный файл certnew.p7b переименуйте в gw.p7b.

      6. Откройте портал по ссылке.

      7. Нажмите Загрузка сертификата ЦС. Переименуйте полученный файл на ca.cer.

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

    1. Загрузите полученные сертификаты на шлюз:

      • gw.cer - сертификат шлюза,

      • ca.cer - сертификат корневого Центра Сертификации,

      • gw.p7b - сертификат шлюза и промежуточных центров сертификации.

    2. Установите сертификат ЦС с помощью команды:

      sudo /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file ca.cer

      После выполнения команды необходимо нажать o и затем Enter для подтверждения добавления корневого сертификата.

    3. Установите промежуточный сертификат из цепочки сертификатов:

      sudo /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file gw.p7b
      1. После выполнения команды введите номер промежуточного сертификата (например, 1) и нажмите Enter.

      2. Для подтверждения добавления корневого сертификата нажмите o и затем Enter.

      3. Если файл gw.p7b содержит несколько промежуточных сертификатов (или они находятся в другом файле), добавьте их аналогичным способом.

    4. Установите сертификат шлюза:

      sudo /opt/cprocsp/bin/amd64/certmgr -inst -file gw.cer -cont '\\.\HDIMAGE\termit'
    5. Проверьте статус сертификата шлюза с помощью команды:

      sudo /opt/cprocsp/bin/amd64/certmgr -list -store uMy

      Значение поля PrivateKey Link должно быть Yes.

  5. Настройте и запустите ГОСТ-stunnel на шлюзе:

    1. Остановите и отключите сервис termit-stunnel на шлюзе:

      sudo systemctl disable --now termit-stunnel

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

    2. Создайте папку /etc/stunnel-gost/ и скопируйте в неё файл из сертификата gw.cer.

    3. В папке /etc/stunnel-gost/ создайте файл конфигурации stunnel-gost.conf со следующим содержимым:

      pid=/var/opt/cprocsp/tmp/stunnel_cli.pid
      output=/var/log/stunnel_gost.log
      socket = l:TCP_NODELAY=1
      socket = r:TCP_NODELAY=1
      debug = 5
      
      [https-gw]
      accept = 0.0.0.0:4444
      connect = 127.0.0.1:8080
      cert=/etc/stunnel-gost/gw.cer
      verify=1
      
      [https-broker]
      accept = 0.0.0.0:4445
      connect = %fqdn_или_ip_внеш_балансировщика%:443
      cert=/etc/stunnel-gost/gw.cer
      verify=1
    4. В созданном файле stunnel-gost.conf замените следующие параметры:

      %fqdn_или_ip_внеш_балансировщика% — замените на FQDN или IP-адрес внешнего балансировщика.

    5. Запустите ГОСТ-stunnel:

      sudo /opt/cprocsp/sbin/amd64/stunnel_thread /etc/stunnel-gost/stunnel-gost.conf
    6. Проверьте логи stunnel на наличие ошибок:

      sudo cat /var/log/stunnel_gost.log
      ГОСТ-stunnel на сервере необходимо запускать каждый раз после перезагрузки сервера. Можно добавить команду его запуска в автозагрузку или настроить запуск через сервис.

2. Настройка клиентских компьютеров

Для подключения к ГОСТ-stunnel, на клиентском компьютере необходимо настроить ГОСТ-stunnel, а также стартовать его перед запуском Термит десктоп-клиента, а сам Термит десктоп-клиент необходимо запускать с соответствующим параметром.

Настройка клиентских компьютеров с ОС Windows
  1. Скачайте и установите КриптоПро CSP по ссылке.

  2. На том же ресурсе скачайте приложение для создания TLS-туннеля stunnel msspi cli x86 и скопируйте полученный файл stunnel_msspi_cli.exe в папку C:\Program Files (x86)\.

  3. Создайте папку stunnel-gost в профиле пользователя:

    C:\Users\%username%\stunnel-gost\
  4. Создайте конфигурационный файл C:\Users\%username%\stunnel-gost\stunnel-gost.conf с содержимым ниже:

    output=C:\Users\%YourUserName%\stunnel-gost\stunnel.log
    socket=l:TCP_NODELAY=1
    socket=r:TCP_NODELAY=1
    debug=5
    
    [GW]
    client = yes
    accept  = 127.0.0.1:4444
    connect = %fqdn_или_ip_шлюза%:4444
    verify = 2
    
    [BROKER]
    client = yes
    accept  = 127.0.0.1:4445
    connect = %fqdn_или_ip_шлюза%:4445
    verify = 2
  5. В созданном файле замените следующие параметры:

    • %YourUserName% — замените на реальное имя пользователя Windows (переменные среды не поддерживаются);

    • %fqdn_или_ip_шлюза% — замените на FQDN или IP-адрес шлюза.

  6. Создайте файл "C:\Users\%username%\stunnel-gost\proxyconf.json" со следующим содержимым:

    {
      "gateway": {
        "host": "127.0.0.1",
        "port": 4444
      },
      "broker": {
        "host": "127.0.0.1",
        "port": 4445
      }
    }
  7. Добавьте сертификаты в доверенные корневые центры сертификации:

    • корневой сертификат из файла ca.cer;

    • промежуточные сертификаты из gw.p7b.

  8. Запустите ГОСТ-stunnel. Для этого выполните в командной строке (CMD) или PowerShell:

    "C:\Program Files (x86)\stunnel_msspi_cli.exe" "C:\Users\%username%\stunnel-gost\stunnel-gost.conf"
  9. Запустите десктоп-клиент Termit с параметром --proxy-conf. Для этого выполните в командной строке (CMD) или PowerShell:

    "C:\Program Files\termit-desktop\termit-desktop.exe" --proxy-conf "C:\Users\%username%\stunnel-gost\proxyconf.json"
Настройка клиентских компьютеров с ОС Linux

Начиная с CSP 5.0 R3 в демонстрационную лицензию больше не входит «TLS-сервер», поэтому в целях тестирования можно установить версию CSP 5.0 R2.

  1. Скачайте и установите КриптоПро CSP по ссылке.

  2. Распакуйте полученный архив с помощью команды:

    tar -xvzf linux-amd64.tgz
  3. Установите пакет lsb, необходимый для корректной инсталляции КриптоПро CSP.

  4. Запустите установку КриптоПро CSP с помощью команды:

    sudo ./install_gui.sh

    При установке необходимо выбрать компонент stunnel.

  5. Создайте конфигурационный файл ~/stunnel-gost/stunnel-gost.conf с содержимым ниже:

    pid=/tmp/stunnel_cli.pid
    output=/home/%YourUserName%/stunnel-gost/stunnel.log
    socket=l:TCP_NODELAY=1
    socket=r:TCP_NODELAY=1
    debug=5
    
    [GW]
    client = yes
    accept  = 127.0.0.1:4444
    connect = %fqdn_или_ip_шлюза%:4444
    verify = 2
    
    [BROKER]
    client = yes
    accept  = 127.0.0.1:4445
    connect = %fqdn_или_ip_шлюза%:4445
    verify = 2
  6. В созданном файле замените следующие параметры:

    • %YourUserName% — замените на реальное имя пользователя, так как переменные среды и символ ~ в данном файле не поддерживаются;

    • %fqdn_или_ip_шлюза% — замените на FQDN или IP-адрес шлюза.

  7. Создайте файл ~/stunnel-gost/proxyconf.json со следующим содержимым:

    {
      "gateway": {
        "host": "127.0.0.1",
        "port": 4444
      },
      "broker": {
        "host": "127.0.0.1",
        "port": 4445
      }
    }
  8. Добавьте сертификаты в доверенные корневые центры сертификации с помощью certmgr:

    • корневой сертификат из файла ca.cer:

      /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file ca.cer
    • промежуточные сертификаты из файла gw.p7b:

      /opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file gw.p7b
  9. Запустите ГОСТ-stunnel с помощью команды:

    /opt/cprocsp/sbin/amd64/stunnel_thread ~/stunnel-gost/stunnel-gost.conf
  10. Запустите десктоп-клиент Termit с параметром --proxy-conf:

    /opt/termit-desktop/termit-desktop --proxy-conf ~/stunnel-gost/proxyconf.json