Тип сервиса HttpMQProxy#

В контексте service объявляется тип сервиса, соответствующий service_http_mq_proxy:

service:
  service_http_mq_proxy:

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

Необходимо проверить права пользователя на добавление сообщений в очередь. В случае подключения по SSL/TLS, права должны быть у пользователя, из-под которого происходит запуск, в случае подключения без SSL - у пользователя, указанного в директиве ibmmq_mca_username.

Каждый сервис представляет собой последовательность, включающую в себя следующие параметры:

Обязательные параметры:

  • id

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

    Значение параметра id должно быть уникальным.

    Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание « _ «.

    Количество сервисов не ограничено конфигуратором явно.

    - id: 1
      
    - id: my_service_one
    

    Тип параметра: текстовое значение.

    По умолчанию: не имеет значения по умолчанию.

  • url

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

    url: /my_service_url
    

    Значение параметра url должно быть уникальным.

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • allowed_queries

    Группа параметров, описанных в разделе «Параметр allowed_queries», используемых для указания разрешенных методов запроса и параметров запроса.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • ibmmq_qmname_name

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

    upload_file_folder: /tmp/file
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • ibmmq_channel_name

    В значении параметра указывается имя канала.

    ibmmq_channel_name: SOWA.SVRCONN
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • ibmmq_connection_name

    В значении параметра указывается местоположение очереди в формате(слитно): host(port).

    ibmmq_connection_name: XXX.XXX.XXX.XXX(1455)
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • ibmmq_queue_name

    В значении параметра указывается имя очереди.

    ibmmq_queue_name: EVENT.LOGGING.HADOOP.SOWA
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

Пример минимальной настройки:

version: 2.0.1
profile: XXX
system:
  wrk_count: auto
  conn_count: 1024
  optional:
    log_level: debug
    default_type: application/json
    ip_blacklist:
      enabled: yes
service:
  service_http_mq_proxy:
    - id: 1
      listen:
        - port: 8030
          ssl:
            certificate: sowaservercert.cer
            certificate_key: sowaservercert_private.key
            verify_client: 'on'
            verify_depth: 3
            client_certificate: csbapigwift.pem
            session_timeout: 5m
            session_cache:
              type: "shared"
              name: "SSL"
              size: 10m
      hostname:
        - XXX.api-sowa.XXX.ru
      url: /mq_ssl
      ibmmq_qmname_name: M99.HDPL.GW.CLS1
      ibmmq_channel_name: SAPI.SVRCONN
      ibmmq_connection_name: XXX.XXX.XXX.XXX(1455)
      ibmmq_queue_name: EVENT.LOGGING.HADOOP.SAPIWA

Опциональные параметры:

  • name

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

    Значение параметра name должно быть уникальным.

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

  • profile_version

    В значении параметра определяется версия профиля данного сервиса.

    Тип параметра: текстовое значение.

    По умолчанию: не имеет значения по умолчанию.

  • description

    Параметр предназначен для хранения строки с описанием сервиса.

    Значение параметра description не является уникальным.

    Тип параметра: текстовое значение.

    По умолчанию: не имеет значения по умолчанию.

  • listen

    Параметр listen является обязательным только для сервиса типа service_main_proxy. Для сервисов иных типов параметр listen опционален.

    В случае, если параметр listen не указан (имеется в виду наличие данного параметра в сервисе типа service_main_proxy и отсутствие в сервисах иных типов), для взаимодействия между сервисами используются unix-сокеты.

    Последовательность, включающая в себя параметры, описанные в разделе «Параметр listen (parameter_listen)».

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • hostname

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

    Тип параметра: последовательность строковых значений.

    По умолчанию:

    hostname
      - localhost
    
  • optional

    Группа optional используется в сервисе для:

    • вызова различных таймаутов;

    • настройки сессии;

    • ограничения по размеру лимита тела запроса/ответа;

    • вызова различных утилит;

    • и др.

    Группа, включающая в себя параметры, описанные в разделе «HttpMQProxy - оptional».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • filters

    Группа, включающая в себя следующие параметры:

    • фильтр modsecurity — позволяет проверить download/upload трафик на наличие угроз (например sql-injection), содержащихся в методе, header, теле и др.

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • (deprecated) validators

    Валидация тела запроса/ответа.

    Группа, включающая в себя параметры, описанные в разделе «Настройка валидации в SOWA».

    В качестве альтернативы использования механизмов validation_json и validation_wsdl_xsd рекомендуется использовать действия JsonValidation и XsdValidation соответственно.

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • postprocessors

    Постобработчик postprocessor_error предназначен для формирования сообщения об ошибке для клиента по указанному шаблону.

    Группа, включающая в себя параметры, описанные в разделе «Настройка постпроцессора в SOWA».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • log_masking_rules

    В значении параметра могут быть определены правила маскирования данных в заголовках и телах запросов/ответов.

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

    • log_type

      Тип логов.

      Возможные значения:

      • all — все типы;

      • security — логи транзакций фильтра безопасности;

      • event — логи событий.

      По умолчанию: all.

    • object

      Объект, к которому применяется маскирование.

      Возможные значения:

      • request_header — заголовки запроса;

      • response_header — заголовки ответа;

      • request_body — тело запроса;

      • response_body — тело ответа.

      Обязателен для заполнения.

      По умолчанию: нет.

    • header

      Имя заголовка, к которому применяется маскирование.

      Возможные значения: заполняется и обязателен тогда, когда указан object = request_header/response_header.

      По умолчанию: нет.

    • expression

      Регулярное выражение, содержащее группы.

      Возможные значения: должно содержать хотя бы одну группу для определения фрагмента замены. Задается для object = request_body/response_body. Обязателен для заполнения

      По умолчанию: нет.

    • replace_all

      Заменять все или первое найденное.

      Возможные значения:

      • on/off - определяет, будут ли заменяться только первое найденное значение или все. В том случае, если гарантировано вхождение будет только один раз, рекомендуется устанавливать явно значение off для оптимизации производительности. Применяется только для object = request_body/response_body.

      По умолчанию: on.

    • mask_symbol

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

      Возможные значения:

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

      По умолчанию: *.

Пример:

version: 2.0.1
profile: myapi_logs
system:
  wrk_count: auto
  conn_count: 1024
  optional:
    wrk_user: sowactl
    log_level: debug
    default_type: application/json
    ip_blacklist:
      enabled: yes
service:
  service_http_mq_proxy:
    - id: 1
      listen:
        - port: 8030
          ssl:
            certificate: sowaservercert.cer
            certificate_key: sowaservercert_private.key
            verify_client: 'on'
            verify_depth: 3
            client_certificate: csbapigwift.pem
            session_timeout: 5m
            session_cache:
              type: "shared"
              name: "SSL"
              size: 10m
      hostname:
        - ift.api-sowa.mycompany.ru
      url: /mq_ssl
      ibmmq_qmname_name: M99.HDPL.GW.CLS1
      ibmmq_channel_name: SAPI.SVRCONN
      ibmmq_connection_name: XXX.XXX.XXX.XXX(1455)
      ibmmq_queue_name: EVENT.LOGGING.HADOOP.SAPI
      optional:
        ibmmq_sslcertificate: mq/sba99usr
        ibmmq_sslcertificate_key: ibmwebspheremqsba99usr
        ibmmq_cipher_spec: RC4_MD5_US
      validators:
        validator_json:
          request:
            - url: /mq_ssl
              schema: json/EventLog.jsv
      filters:
        filter_mds:
          rules:
           - sowa-mq
          config:
            SecAuditEngine: 'on'

HttpMQProxy - allоwed_queries#

Обязательные параметры:

  • method

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

    Тип параметра:

    • head;

    • post.

    По умолчанию: не имеет значения по умолчанию.

Опциональные параметры:

  • params

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

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

    Обязательные параметры:

    • name

      В значении параметра указывается имя параметра.

      Значение параметра name должно быть уникальным.

      Тип параметра: строковое значение.

      По умолчанию: не имеет значения по умолчанию.

    • pattern

      В значении параметра pattern определяется значение, которое может принимать параметр name. Не чувствительно к регистру.

      Имеется возможность использования регулярного выражение.

      При использовании символов:

      • \ ^ $ . | ? * + ( ) [ ] { } - в явном виде, необходимо их экранирование.

      Символ \ экранируется только тогда, когда находится в кавычках.

      В примере ниже показывается, что экранируется связка \ с иным элементом (например #):

      - name: "name_1"
        pattern: "[^\\#\\$\\%\\&\\(\\)\\*\\+\\,\\-\\.\\:\\;\\<\\=\\>\\?\\^\\_\\{\\|\\}\\~\\@]+"
      - name: "name_2"
        pattern: "[^ЁёА-я]+"
      

      Тип параметра: текстовое значение.

      По умолчанию: не имеет значения по умолчанию.

HttpMQProxy - оptional#

Опциональные параметры:

  • log_level

    В значении параметра переопределения уровня логирования для сервиса.

    Тип параметра:

    • debug;

    • info;

    • notice;

    • warn;

    • error;

    • crit;

    • alert;

    • off.

    По умолчанию: значение параметра наследуется от значения в system.

  • group_access_log

    В значении параметра указывается, группировать или нет access журналы по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500).

    Тип параметра: логическое значение:

    • true;

    • false.

    По умолчанию:

    group_access_log: false
    
  • internal

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

    Тип параметра:

    • true;

    • false.

    По умолчанию: не имеет значения по умолчанию.

  • session_cache

    В значении параметра определяется размер кэша для ssl/tls сессии.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значение по умолчанию оценивается автоматически.

    Обязательные параметры:

    • type

      В значении параметра определяется тип размера кэша.

      Значение параметра type должно быть уникальным.

      Тип параметра:

      • off - жесткое запрещение использования кэша сессий: nginx явно сообщает клиенту, что сессии не могут использоваться повторно;

      • none - мягкое запрещение использования кэша сессий: nginx сообщает клиенту, что сессии могут использоваться повторно, но на самом деле не хранит параметры сессии в кэше;

      • builtin -встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса. Размер кэша задается в сессиях. Если размер не задан, то он равен 20480 сессиям. Использование встроенного кэша может вести к фрагментации памяти;

      • shared - кэш, разделяемый между всеми рабочими процессами. Размер кэша задается в байтах, в 1 мегабайт может поместиться около 4000 сессий. У каждого разделяемого кэша должно быть произвольное название. cache с одинаковым названием может использоваться в нескольких виртуальных серверах.

      По умолчанию: не имеет значения по умолчанию.

    • name

      В значении параметра указывается имя размера.

      Используется в случае:

      • type: shared.

      Тип параметра: строковое значение.

      По умолчанию: не имеет значения по умолчанию.

    • size

      В значении параметра указывается величина размера.

      Используется в случае:

      • type: builtin;

      • type: shared.

      Тип параметра: текстовое значение с суффиксом:

      • число без суффикса - байты;

      • k / K - килобайты;

      • m / M - мегабайты.

      По умолчанию: не имеет значения по умолчанию.

      Пример:

      session_cache:
        type: shared
        name: my_name_size
        size: 4k
      
  • ibmmq_charset_encoding

    В значении параметра определяется набор кодированных символов Identifier (CCSID).

    Тип параметра: целочисленное значение.

    По умолчанию:

    ibmmq_charset_encoding: 4194304
    
  • ibmmq_max_msg_length

    В значении параметра указывается размер переданного сообщения.

    Тип параметра: строковое значение.

    По умолчанию:

    ibmmq_max_msg_length: 4194304
    
  • ibmmq_persistent

    В значении параметра указывается атрибут персистентности.

    Тип параметра:

    • on;

    • off.

    По умолчанию:

    ibmmq_persistent: off
    
  • ibmmq_with_uow

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

    Тип параметра:

    • on;

    • off.

    По умолчанию:

    ibmmq_with_uow: off
    
  • ibmmq_work_mode

    В значении параметра задается блокирующий или неблокирующий режим для клиента mq.

    Тип параметра:

    • lock;

    • nolock.

    По умолчанию:

    ibmmq_work_mode: lock
    
  • ibmmq_tcp_check_enabled

    В значении параметра определяется проверка TCP перед установлением соединения с менеджером MQ.

    Тип параметра:

    • on;

    • off.

    По умолчанию:

    ibmmq_tcp_check_enabled: on
    
  • ibmmq_tcp_check_timeout

    В значении параметра определяется время ожидания проверки TCP.

    Тип параметра: Текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию: Не имеет значения по умолчанию.

  • ibmmq_mca_username

    В значении параметра определяется имя пользователя.

    Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.

    Обязательно в случае:

    • ibmmq_credential_file is None.

    Тип параметра: строковое значение.

    По умолчанию:

    ibmmq_mca_username: name
    
  • ibmmq_mca_password

    В значении параметра определяется пароль пользователя.

    Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.

    Обязательно в случае:

    • ibmmq_credential_file is None.

    Тип параметра: строковое значение.

    По умолчанию:

    ibmmq_mca_password: passwd
    
  • ibmmq_sslcertificate

    В значении параметра указывается путь к хранилищу сертификатов с наименованием хранилища, но без расширения(расширение должно быть .kdb).

    Тип параметра: строковое значение.

    По умолчанию:

    ibmmq_sslcertificate: mq/sowactl
    
  • ibmmq_sslcertificate_key

    В значении параметра определяется имя сертификата внутри хранилища сертификатов.

    Тип параметра: строковое значение.

    По умолчанию:

    ibmmq_sslcertificate_key: ibmwebspheremqsowactl
    
  • ibmmq_credential_file

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

    Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.

    Обязательно в случае:

    • ibmmq_mca_username is None;

    • ibmmq_mca_password is None.

    Тип параметра: строковое значение.

    По умолчанию:

    ibmmq_credential_file: /file.file
    
  • ibmmq_cipher_spec

    В значении параметра определяется тип шифрования.

    Тип параметра:

    • „ECDHE_ECDSA_3DES_EDE_CBC_SHA256“;

    • „ECDHE_RSA_AES_128_CBC_SHA256“;

    • „ECDHE_RSA_AES_128_GCM_SHA256“;

    • „ECDHE_RSA_AES_256_CBC_SHA384“;

    • „ECDHE_RSA_AES_256_GCM_SHA384“;

    • „ECDHE_ECDSA_NULL_SHA256“;

    • „ECDHE_ECDSA_RC4_128_SHA256“;

    • „ECDHE_RSA_3DES_EDE_CBC_SHA256“;

    • „ECDHE_ECDSA_AES_128_GCM_SHA256“;

    • „ECDHE_ECDSA_AES_256_CBC_SHA384“;

    • „ECDHE_RSA_NULL_SHA256“;

    • „ECDHE_RSA_RC4_128_SHA256“;

    • „FIPS_WITH_DES_CBC_SHA“;

    • „NULL_MD5“, „NULL_SHA“;

    • „RC4_MD5_EXPORT“;

    • „RC4_MD5_US“;

    • „TLS_RSA_WITH_3DES_EDE_CBC_SHA“;

    • „TLS_RSA_WITH_AES_128_CBC_SHA“;

    • „TLS_RSA_WITH_AES_128_CBC_SHA256“;

    • „TLS_RSA_WITH_AES_128_GCM_SHA256“;

    • „TLS_RSA_WITH_AES_256_CBC_SHA“;

    • „TLS_RSA_WITH_AES_256_CBC_SHA256“;

    • „TLS_RSA_WITH_AES_256_CBC_SHA384“;

    • „TLS_RSA_WITH_DES_CBC_SHA“;

    • „TLS_RSA_WITH_NULL_SHA256“;

    • „TLS_RSA_WITH_RC4_128_SHA256“.

    По умолчанию:

    ibmmq_cipher_spec: RC4_MD5_US
    
  • opentelemetry_tracing

    Секция параметров телеметрии.

    Секция, включающая в себя параметры, рассмотренные в разделе «Параметр opentelemetry_tracing».

    Тип параметра: секция параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • limit_req

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

    Группа, включающая в себя параметры, описанные в разделе «Параметр limit_req (util_limit_requests)».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • limit_requests — группа параметров, описанных в разделе Пaраметр limit_requests.

    Возможные значения: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • robot_mitigation

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

    Группа, включающая в себя параметры, описанные в разделе «Пaраметр robot_mitigation (util_robot_mitigation)».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • ip_behavior

    Группа параметров ip_behavior предназначена для мониторинга поведения пользователей при доступе к серверу. ip_behavior в основном используется с другими группами параметров безопасности, такими как limit_req и robot_mitigation. ip_behavior поддерживает обнаружение доступа только через url.

    Группа, включающая в себя параметры, описанные в разделе «Пaраметр ip_behavior (util_ip_behavior)».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • cookie_poisoning

    Группа параметров cookie_poisoning отслеживает заголовки Set-Cookies и значения cookie в ответе со стороны сервера. Если отслеживаемые значения файлов cookie изменяются на стороне клиента, cookie_poisoning обнаруживает это и выполняет действия в соответствии с настройками пользователя. Группа параметров зависит от session_module (параметры: session, session_timeout, session_cookie_name, session_redirect_timeout, session_show), поэтому перед использованием директив cookie_poisoningнеобходимо сначала включить session_module.

    Группа, включающая в себя параметры, описанные в разделе «Пaраметр cookie_poisoning (util_cookie_poisoning)».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • gzip

    Группа, включающая в себя параметры, описанные в разделе «Пaраметр gzip (util_gzip)».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • async_io

    Группа параметров отвечающих за настройку файлового асинхронного ввода-вывода.

    Группа, включающая в себя параметры, описанные в разделе «Пaраметр async_io (util_async_io)».

    Тип параметра: группа параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • log_masking - группа параметров log_masking предназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.

    Группа параметров, описанных в разделе «Параметр log_masking_rules».

    Возможные значения: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • logging - группа параметров logging предназначена для задания параметров отправки событий конфигуратора.

    Группа параметров, описанных в разделе «Параметр logging».

    Возможные значения: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • healthcheck_dynamic - группа параметров healthcheck_dynamic предназначена для настройки динамической генерации ответов на запросы о текущем состоянии экземпляра или сервиса, объявленного в конфигурации.

    Группа параметров, описанных в разделе Пaраметр healthcheck_dynamic.

    Возможные значения: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • pipelined_requests - в значении параметра указывается признак запрета использования HTTP pipelined requests для входящих запросов клиента. Если установлено значение off, то в случае получения нескольких pipelined запросов будет обработан только первый, после чего соединение будет закрыто и в логах появится сообщение об ошибке.

    Возможные значения:

    • on;

    • off.

    По умолчанию: on.

    По умолчанию: on.

  • http2_only - включение ограничения приема входящих соединений только по протоколу http2.

    Возможные значения:

    • on;

    • off.

    По умолчанию: off.

  • keepalive_time - ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.

    Возможные значения: текстовое значение с суффиксом:

    • ms — миллисекунда;

    • s — секунда;

    • m — минута;

    • h — час;

    • d — день;

    • w — неделя;

    • M — месяц (30 дней);

    • y — год (365 дней).

    По умолчанию: 1h.