Тип сервиса HttpMQProxy#
В контексте service объявляется тип сервиса, соответствующий service_http_mq_proxy:
service:
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 указываются разрешенные методы запроса и параметры к ним. Работоспособно, в случае использования фильтра mds:
filters: filter_mds: enabled: true ...Иными словами, если mds явно не выключен, то проверка будет осуществляться.
Последовательность, включающая в себя параметры, описанные в разделе "HttpMQProxy - allоwed_queries".
allowed_queries: - method: post params: - name: "cmd" pattern: "START" - name: "name" pattern: "balance|registration" - method: optionsТип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
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), содержащихся в методе, хэдорах, теле и др.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
validators
Валидация тела запроса/ответа.
Группа, включающая в себя параметры, описанные в разделе "Настройка валидации в SOWA".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
postprocessors
Постобработчик postprocessor_error предназначен для формирования сообщения об ошибке для клиента по указанному шаблону.
Группа, включающая в себя параметры, описанные в разделе "Настройка постпроцессора в SOWA".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
(2.2) 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.
(2.1, 2.2) 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_file is None.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_mca_username: nameibmmq_mca_password
В значении параметра определяется пароль пользователя.
Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.
Обязательно в случае:
ibmmq_credential_file is None.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_mca_password: passwdibmmq_sslcertificate
В значении параметра указывается путь к хранилищу сертификатов с наименованием хранилища, но без расширения(расширение должно быть .kdb).
Тип параметра: строковое значение.
По умолчанию:
ibmmq_sslcertificate: mq/sowactlibmmq_sslcertificate_key
В значении параметра определяется имя сертификата внутри хранилища сертификатов.
Тип параметра: строковое значение.
По умолчанию:
ibmmq_sslcertificate_key: ibmwebspheremqsowactlibmmq_credential_file
В значении параметра указывается путь к файлу с учетными данными пользователя.
Для подключения без SSL/TLS необходимо дополнительно указать данный параметр.
Обязательно в случае:
ibmmq_mca_username is None;
ibmmq_mca_password is 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_USlimit_req
Группа параметров limit_req предназначена для ограничения скорости обработки запросов. В ней определяется, требуется ли пропускать избыточные запросы в пределах всплеска без задержки.
Группа, включающая в себя параметры, описанные в разделе "Параметр limit_req (util_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)".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
spnego
Группа параметров spnego предназначена для аутентификации kerberos.
Группа, включающая в себя параметры, описанные в разделе "Пaраметр spnego (util_spnego)".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
gzip
Группа, включающая в себя параметры, описанные в разделе "Пaраметр gzip (util_gzip)".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
async_io
Группа параметров отвечающих за настройку файлового асинхронного ввода-вывода.
Группа, включающая в себя параметры, описанные в разделе "Пaраметр async_io (util_async_io)".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
log_masking - группа параметров log_masking предназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.
Группа параметров, описанных в разделе "Параметр log_masking_rules".
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
logging - группа параметров logging предназначена для задания параметров отправки событий конфигуратора.
Группа параметров, описанных в разделе "Параметр logging".
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
(2.4) pipelined_requests - в значении параметра указывается признак запрета использования HTTP pipelined requests для входящих запросов клиента. Если установлено значение off, то в случае получения нескольких pipelined запросов будет обработан только первый, после чего соединение будет закрыто и в логах появится сообщение об ошибке.
Возможные значения:
on;
off.
По умолчанию: on.
По умолчанию: on.
(2.4) http2_only - включение ограничения приема входящих соединений только по протоколу http2.
Возможные значения:
on;
off.
По умолчанию: off.
(2.4) keepalive_time - ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.
Возможные значения: текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию: 1h.