Тип сервиса 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 - localhostoptionalГруппа
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: falseinternalВ значении параметра определяется, должен ли сервис быть доступен только локально.
Тип параметра:
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: 4194304ibmmq_max_msg_lengthВ значении параметра указывается размер переданного сообщения.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_max_msg_length: 4194304ibmmq_persistentВ значении параметра указывается атрибут персистентности.
Тип параметра:
on;
off.
По умолчанию:
ibmmq_persistent: offibmmq_with_uowВ значении параметра определяется атрибут транзакции.
Тип параметра:
on;
off.
По умолчанию:
ibmmq_with_uow: offibmmq_work_modeВ значении параметра задается блокирующий или неблокирующий режим для клиента mq.
Тип параметра:
lock;
nolock.
По умолчанию:
ibmmq_work_mode: lockibmmq_tcp_check_enabledВ значении параметра определяется проверка TCP перед установлением соединения с менеджером MQ.
Тип параметра:
on;
off.
По умолчанию:
ibmmq_tcp_check_enabled: onibmmq_tcp_check_timeoutВ значении параметра определяется время ожидания проверки TCP.
Тип параметра: Текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию: Не имеет значения по умолчанию.
ibmmq_mca_usernameВ значении параметра определяется имя пользователя.
Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.
Обязательно в случае:
ibmmq_credential_fileis None.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_mca_username: nameibmmq_mca_passwordВ значении параметра определяется пароль пользователя.
Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.
Обязательно в случае:
ibmmq_credential_fileis None.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_mca_password: passwdibmmq_sslcertificateВ значении параметра указывается путь к хранилищу сертификатов с наименованием хранилища, но без расширения(расширение должно быть .kdb).
Тип параметра: строковое значение.
По умолчанию:
ibmmq_sslcertificate: mq/sowactlibmmq_sslcertificate_keyВ значении параметра определяется имя сертификата внутри хранилища сертификатов.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_sslcertificate_key: ibmwebspheremqsowactlibmmq_credential_fileВ значении параметра указывается путь к файлу с учетными данными пользователя.
Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.
Обязательно в случае:
ibmmq_mca_usernameis None;ibmmq_mca_passwordis None.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_credential_file: /file.fileibmmq_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_USopentelemetry_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.