В этом разделе
•Параметры компонента
•Секции источников данных
•Добавление секций источников данных
Компонент использует параметры конфигурации, заданные в секции [LookupD] объединенного конфигурационного файла Dr.Web для почтовых серверов UNIX.
Параметры компонента
В секции представлены следующие параметры:
Параметр
|
Описание
|
LogLevel
{уровень подробности}
|
Уровень подробности ведения журнала компонента.
Если значение параметра не указано, используется значение параметра DefaultLogLevel из секции [Root].
Значение по умолчанию: Notice
|
Log
{тип журнала}
|
Метод ведения журнала компонента.
Значение по умолчанию: Auto
|
ExePath
{путь к файлу}
|
Путь к исполняемому файлу компонента.
Значение по умолчанию: <opt_dir>/bin/drweb-lookupd.
•Для GNU/Linux: /opt/drweb.com/bin/drweb-lookupd.
•Для FreeBSD: /usr/local/libexec/drweb.com/bin/drweb-lookupd |
RunAsUser
{UID | имя пользователя}
|
Параметр указывает компоненту, от имени какого пользователя ему следует запускаться при работе. Можно указать как числовой UID пользователя, так и его имя (логин). Если имя пользователя состоит из цифр (т. е. похоже на числовой UID), то оно указывается с префиксом «name:», например: RunAsUser = name:123456.
Если имя пользователя не указано, то работа компонента завершается ошибкой сразу после попытки запуска.
Значение по умолчанию: drweb
|
IdleTimeLimit
{интервал времени}
|
Максимальное время простоя компонента, при превышении которого он завершает свою работу.
Допустимые значения: от 10 секунд (10s) до 30 дней (30d) включительно.
Если установлено значение None, то компонент будет работать постоянно; в случае отсутствия активности ему не будет отправлен сигнал SIGTERM.
Значение по умолчанию: 30s
|
DebugLibldap
{логический}
|
Включать или нет в журнал на отладочном уровне (при LogLevel = DEBUG) также и отладочные сообщения библиотеки libldap.
Значение по умолчанию: No
|
LdapCheckCertificate
{No | Allow | Try | Yes}
|
Режим проверки сертификатов при подключении к LDAP через SSL/TLS.
Допустимые значения:
•No — никогда не запрашивать сертификат сервера;
•Allow — запрашивать сертификат сервера, и если он не будет предоставлен, сессия будет продолжена нормальным образом; если же серверный сертификат предоставлен, но не может быть проверен (не удалось найти соответствующий корневой сертификат), то сертификат сервера будет проигнорирован и сессия будет продолжена нормальным образом;
•Try — запрашивать сертификат сервера, и если он не будет предоставлен, сессия будет продолжена нормальным образом; если же серверный сертификат предоставлен, но не может быть проверен (не удалось найти соответствующий корневой сертификат), то сессия будет прервана;
•Yes — запрашивать сертификат сервера, и если он не будет предоставлен, сессия будет прервана; если серверный сертификат не может быть проверен (не удалось найти соответствующий корневой сертификат), то сессия также будет прервана.
Для источников данных типа LDAP влияет на обработку URL по схеме ldaps:// или с использованием расширения StartTLS; для источников данных типа AD влияет на соединение с сервером, если в соответствующей секции установлено UseSSL=Yes (см. ниже).
Значение по умолчанию: Yes
|
LdapCertificatePath
{путь к файлу}
|
Путь к файлу сертификата SSL, используемого для подключения к серверам LDAP (Active Directory) через безопасное соединение SSL/TLS.
Обратите внимание, что файл сертификата и файл закрытого ключа (определяется следующим параметром) должны соответствовать друг другу.
Значение по умолчанию: (не задано)
|
LdapKeyPath
{путь к файлу}
|
Путь к файлу закрытого ключа, используемого для подключения к серверам LDAP (Active Directory) через безопасное соединение SSL/TLS.
Обратите внимание, что файл сертификата и файл закрытого ключа (определяется предыдущим параметром) должны соответствовать друг другу.
Значение по умолчанию: (не задано)
|
LdapCaPath
{путь}
|
Путь к каталогу или файлу, в котором располагается перечень корневых сертификатов, являющихся доверенными при обмене данными по протоколу LDAP через SSL/TLS.
Значение по умолчанию: <путь к системному перечню доверенных сертификатов>. Зависит от дистрибутива GNU/Linux.
•Для Astra Linux, Debian, Linux Mint, SUSE Linux и Ubuntu это обычно путь /etc/ssl/certs/.
•Для CentOS и Fedora — путь /etc/pki/tls/certs/ca-bundle.crt.
•Для других дистрибутивов путь может быть определен через результат вызова команды openssl version -d.
•Если команда недоступна или дистрибутив ОС опознать не удалось, используется значение /etc/ssl/certs/. |
DbIdleTimeout
{интервал времени}
|
Период времени ожидания, по окончании которого установленное соединение с базой данных (или хранилищем Redis) будет разорвано в случае простоя.
Значение по умолчанию: 5m
|
MysqlDefaultConn
{URL}
|
URI, задающий параметры подключения к базе данных СУБД MySQL по умолчанию.
Возможные значения:
•tcp://[<пользователь>[:<пароль>]@][<узел>][:<порт>][/<имя базы данных>][?<параметр>=<значение>[&…]];
•unix://[<пользователь>[:<пароль>]@]<путь к сокету>[:<имя базы данных>][?<параметр>=<значение>[&…]].
Обратите внимание на требования к URI.
Значение по умолчанию: (не задано)
|
PqDefaultConn
{URL}
|
URI, задающий параметры подключения к базе данных СУБД PostgreSQL по умолчанию.
Возможные значения:
•tcp://[<пользователь>[:<пароль>]@][<узел>][:<порт>][/<имя базы данных>][?<параметр>=<значение>[&…]];
•unix://[<пользователь>[:<пароль>]@]<путь к сокету>[:<имя базы данных>][?<параметр>=<значение>[&…]].
Обратите внимание на требования к URI.
Значение по умолчанию: (не задано)
|
SqliteDefaultConn
{путь к файлу}
|
Путь к файлу базы данных СУБД SQLite по умолчанию (указывается с префиксом схемы file://).
Значение по умолчанию: (не задано)
|
RedisDefaultConn
{URL}
|
URL, задающий параметры подключения к хранилищу данных Redis по умолчанию.
Возможные значения:
•tcp://[<пароль>@][<узел>][:<порт>][/<индекс базы данных>];
•unix://[<пароль>@]<путь к сокету>[:<индекс базы данных>].
Обратите внимание на требования к URI.
Значение по умолчанию: (не задано)
|
Требования к URI подключения к базам данных
1.Используются только префиксы схем tcp:// и unix:// (для локальных UNIX-сокетов). СУБД-специфичные префиксы схемы (такие как postgresql://, mysql://) не поддерживаются. Путь к файлу СУБД SQLite указывается с префиксом file://.
2.Если поле <узел> не указано в URI, или указан узел localhost, подставляется адрес узла 127.0.0.1. В этом случае для СУБД MySQL и PostgreSQL по умолчанию подключение будет производиться через локальный UNIX-сокет, несмотря на то, что указано сетевое соединение.
3.При наличии в полях URI (таких, как <пользователь>, <пароль>, <имя базы данных> и т. д.) либо в строке параметров подключения специальных символов (пробел, двоеточие и т. п.) необходимо использовать hex-кодирование, например:
▫пробел — "%20";
▫':' — "%3A";
▫'/' — "%2F";
▫'@' — "%40";
▫'%' — "%25".
4.Для СУБД MySQL строка параметров подключения может включать в себя только следующие параметры:
Имя параметра
|
Обозначение в документации СУБД
|
Тип
|
Описание
|
init
|
MYSQL_INIT_COMMAND
|
Строка
|
Команда SQL, которую следует выполнить после подключения к базе данных
|
compression
|
MYSQL_OPT_COMPRESS
|
Логический
|
Использовать сжатие передаваемых данных
|
connect-timeout
|
MYSQL_OPT_CONNECT_TIMEOUT
|
Целое число
|
Тайм-аут разрыва неиспользуемого соединения в секундах
|
reconnect
|
MYSQL_OPT_RECONNECT
|
Логический
|
Разрешить или запретить автоматическое переподключение
|
read-timeout
|
MYSQL_OPT_READ_TIMEOUT
|
Целое число
|
Тайм-аут на получение пакетов от сервера в секундах
|
write-timeout
|
MYSQL_OPT_WRITE_TIMEOUT
|
Целое число
|
Тайм-аут на отправку пакетов серверу в секундах
|
charset
|
MYSQL_SET_CHARSET_NAME
|
Строка
|
Имя кодировки символов, используемой для соединения по умолчанию
|
plugin-dir
|
MYSQL_PLUGIN_DIR
|
Строка
|
Путь к каталогу на сервере, хранящему подключаемые модули
|
nonblock
|
MYSQL_OPT_NONBLOCK
|
Целое число
|
Размер стека для неблокирующих операций ввода/вывода
|
ssl-key
|
MYSQL_OPT_SSL_KEY
|
Строка
|
Путь к закрытому ключу (в формате PEM), использующемуся для организации защищенного соединения
|
ssl-cert
|
MYSQL_OPT_SSL_CERT
|
Строка
|
Путь к сертификату открытого ключа (в формате PEM), использующемуся для организации защищенного соединения
|
ssl-ca
|
MYSQL_OPT_SSL_CA
|
Строка
|
Путь к файлу (в формате PEM), содержащему доверенные сертификаты CA
|
ssl-capath
|
MYSQL_OPT_SSL_CAPATH
|
Строка
|
Путь к каталогу, содержащему доверенные сертификаты CA (в формате PEM)
|
ssl-cipher
|
MYSQL_OPT_SSL_CIPHER
|
Строка
|
Список поддерживаемых алгоритмов шифрования для защищенного соединения
|
ssl-crl
|
MYSQL_OPT_SSL_CRL
|
Строка
|
Путь к файлу (в формате PEM), содержащему отозванные сертификаты
|
ssl-crlpath
|
MYSQL_OPT_SSL_CRLPATH
|
Строка
|
Путь к каталогу, содержащему отозванные сертификаты (в формате PEM)
|
ssl-fp
|
MARIADB_OPT_SSL_FP
|
Строка
|
хеш SHA1 разрешенного серверного сертификата
|
ssl-fp-list
|
MARIADB_OPT_SSL_FP_LIST
|
Строка
|
Путь к файлу, содержащему хеши SHA1 разрешенных серверных сертификатов
|
tls-passphrase
|
MARIADB_OPT_TLS_PASSPHRASE
|
Строка
|
Пароль для закрытого ключа клиента, защищенного паролем
|
tls-version
|
MARIADB_OPT_TLS_VERSION
|
Строка
|
Список поддерживаемых версий TLS
|
server-verify-cert
|
MYSQL_OPT_SSL_VERIFY_SERVER_CERT
|
Логический
|
Разрешить или запретить верификацию серверных сертификатов
|
server-public-key-path
|
MYSQL_SERVER_PUBLIC_KEY
|
Строка
|
Путь к файлу (в формате PEM), содержащему открытый ключ RSA сервера
|
C описанием приведенных параметров вы можете ознакомиться в документации СУБД: https://mariadb.com/kb/en/mysql_optionsv/.
5.Для СУБД PostgreSQL см. дополнительно https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS.
Секции источников данных
Кроме основной секции [LookupD], в файле конфигурации также задаются секции, описывающие подключения к источникам данных (по одной на каждое подключение). Эти секции именуются по схеме [LookupD.<тип>.<имя>], где:
•<тип> — тип подключения:
▫LDAP — для службы каталогов, использующей LDAP;
▫AD — для службы каталогов Active Directory;
▫AllMatch — для текстового файла в режиме AllMatch (полное совпадение);
▫Mask — для текстового файла в режиме Mask (соответствие по маске);
▫Regex — для текстового файла в режиме Regex (соответствие регулярному выражению, записанному в стандарте PCRE);
▫Cidr — для текстового файла в режиме Cidr (совпадение IP-адресов и/или диапазонов);
▫Pq — для базы данных PostgreSQL;
▫Mysql — для базы данных MySQL;
▫Sqlite — для базы данных SQLite;
▫Redis — для базы данных Redis.
•<имя> — уникальный идентификатор (тег) подключения для ссылки на него из правил.
Например, [LookupD.LDAP.auth1]. Секции, описывающие подключение, содержат набор параметров, зависящих от типа источника. Количество секций не ограничено.
1.Параметры секций типа LDAP
Параметр
|
Описание
|
Url
{строка}
|
URL, определяющий используемый сервер LDAP и извлекаемые данные. Согласно RFC 4516, URL строится по схеме:
<scheme>://<host>[:<port>]/<dn>[?<attrs>[?<scope>[?<filter>[?<extensions>]]]]
Здесь:
<scheme> — способ подключения к серверу (допускаются схемы ldap, ldaps и ldapi);
<host>[:<port>] — адрес сервера LDAP, к которому направляется запрос;
<dn> — уникальное имя (distinguished name) объекта, информация о котором получается;
<attrs> — имена атрибутов записей, значения которых должны быть получены в запросе;
<scope> — область поиска (base, one, sub);
<filter> — фильтрующее условие на значения извлекаемых атрибутов;
<extensions> — перечень используемых в запросе расширений LDAP.
Особенности
•В списке атрибутов <attrs> можно использовать спецсимволы выбора '*', '+' и '1.1'.
•В частях URL <dn> и <filter> могут быть использованы следующие автоматически разрешаемые маркеры:
▫$u — заменяется на user — имя пользователя, переданное клиентским компонентом;
▫$d — заменяется на domain — имя домена, переданное клиентским компонентом;
▫$D — цепочка <subdomain>.<domain>, преобразованная в dc=<subdomain>,dc=<domain>;
▫$$ — символ '$'.
•Если в условии <filter> требуется использовать специальные символы (например: '*', '(', ')', '\', символ с кодом 0) как обычные, то их следует записывать в виде \XX. Кроме того, специальные символы в URL LDAP кодируются с помощью последовательностей %XX. Например, при использовании символа '/' в URL по схеме ldapi в качестве части пути к локальному сокету сервера LDAP, этот символ кодируется как %2f.
•В качестве допустимых расширений в <extensions> поддерживаются только StartTLS и 1.3.6.1.4.1.1466.20037, которые включают использование механизма TLS (т. е. организация защищенного соединения с сервером LDAP, даже если явно не указано использование защищенной схемы ldaps) Если перед именем используемого расширения указан символ '!', то использование TLS обязательно, т. е. в случае невозможности установки безопасного соединения запрос не будет исполнен. В противном случае запрос будет исполнен, даже если безопасное соединение не будет установлено.
|
Указанные расширения не могут применяться в случае использования защищенной схемы ldaps. Для получения более подробной информации воспользуйтесь RFC 4516 или man ldap_search_ext_s.
|
Примеры:
"ldaps://ds.example.com:990/$D?givenName,sn,cn?sub?(uid=$u)"
"ldap://ldap.local/o=org,dc=nodomain?ipNetworkNumber?sub?(objectClass=ipNetwork)?!StartTLS"
Значение по умолчанию: (не задано)
|
BindDn
{строка}
|
Объект в каталоге LDAP, связываемый с пользователем для авторизации.
Пример: "cn=admin,dc=nodomain".
Значение по умолчанию: (не задано)
|
BindPassword
{строка}
|
Пароль для аутентификации доступа к серверу LDAP.
Значение по умолчанию: (не задано)
|
ChaseReferrals
{логический}
|
Следовать ли по отсылкам на другие LDAP-серверы, если текущий сервер LDAP присылает их в ответ на запросы.
Значение по умолчанию: No
|
2.Параметры секции типа AD
Параметр
|
Описание
|
Host
{строка}
|
Доменное имя (FQDN) или IP-адрес узла, на котором находится сервер службы Active Directory, к которому необходимо подключиться.
Пример: "win2012.win.local".
Значение по умолчанию: (не задано)
|
Port
{целое число}
|
Порт на узле, прослушиваемый сервером службы Active Directory.
Значение по умолчанию: 389
|
Dn
{строка}
|
DN объекта в каталоге Active Directory (аналог части dn в URL LDAP).
Пример: "dc=win,dc=local".
Значение по умолчанию: (не задано)
|
User
{строка}
|
Полный идентификатор пользователя на сервере для идентификации.
Пример: "Administrator@WIN.LOCAL".
Значение по умолчанию: (не задано)
|
Password
{строка}
|
Пароль для аутентификации доступа к серверу Active Directory.
Значение по умолчанию: (не задано)
|
ChaseReferrals
{логический}
|
Следовать ли по отсылкам на другие LDAP-серверы, если текущий сервер Active Directory присылает их в ответ на запросы.
Значение по умолчанию: No
|
UseSSL
{логический}
|
Использовать SSL/TLS при обращении к серверу Active Directory.
Значение по умолчанию: No
|
3.Параметры секций типа AllMatch, Mask, Regex, Cidr
Параметр
|
Описание
|
File
{путь}
|
Путь к текстовому файлу, содержащему строки для поиска.
Пример: "/etc/file1".
Значение по умолчанию: (не задано)
|
Особенности
•Строки из файла, указанного в секции типа AllMatch, используются для поиска полного совпадения строк без учета регистра символов.
•Строки файла, указанного в секции типа Mask, трактуются как маски (wildcards). Маски можно рассматривать как упрощенный вариант регулярных выражений, содержащих, помимо стандартных символов, служебные символы. Сравнение строк с масками идет без учета регистра символов. Маски могут содержать следующие служебные символы и выражения:
* — любая последовательность символов;
? — любой один символ;
[<набор символов>] — один любой символ из указанного набора (например: [bac]);
[!<набор символов>] — один любой символ, не соответствующий ни одному символу из набора (например: [!cab]);
[[:<класс>:]] — один любой символ из указанного POSIX-класса символов (alnum, alpha, ascii, blank, cntrl, digit, graph, lower, print, punct, space, upper, xdigit).
Маска, соответствующая некоторой подстроке, должна содержать искомую подстроку, обрамленную символами '*' (например, *host*). При необходимости задать в маске один из служебных символов, его необходимо экранировать косой чертой: \[, \], \*, \?. Косая черта, при необходимости, также экранируется: \\. Экранирование любых других символов смысла не имеет, то есть строка \a\b\c\*\d\?\\ будет преобразована в строку abc*d?\. Примеры масок:
#Соответствует в точности строке name
name
#Соответствует трехсимвольным строкам, у которых
#первый символ — c, второй символ — любой, а третий — t
#Например: cat, cut, cct
c?t
#Соответствует строкам: user, users, us3rr, ussr1 и так далее
#(символьному классу [:alpha:] соответствует любой алфавитный
#символ, а спецсимволу ? — любой символ)
us[[:alpha:]34]r?
#Соответствует строкам: .con, file.col, 3...co! и так далее
#(перед .co - любая последовательность символов, после —
#один любой символ кроме m и ?)
*.co[!m\?]
#Соответствует любой строке, содержащей в себе часть host,
#например: host, localhost, hostel, ghosts
*host*
|
•Строки из файла, указанного в секции типа Regex, трактуются как регулярные выражения PCRE (Perl Compatible Regular Expressions). Сопоставление строк с регулярными выражениями производится без учета регистра символов. Примеры регулярных выражений:
#IPv4
(\d{1,3}.){3}\d{1,3}
#Адрес e-mail в домене .com
\w+@\w+\.com
|
•Строки из файла, указанного в секции типа Cidr, трактуются как IP-адреса или диапазоны IP-адресов. Допускаются варианты указания как IP-адресов (и диапазонов) IPv4, так и IPv6. Маска подсети может быть указана как в битовом (октетном) формате, так и в нотации CIDR (Classless Inter-Domain Routing), например:
#IPv4
192.168.0.1
192.168.0.0/12
192.168.0.0/255.255.255.224
#IPv6
fe80::c7e8/32
fe80::c7e8/255.255.255.224
|
4.Параметры секций типа Pq, Mysql, Sqlite
Параметр
|
Описание
|
Conn
{строка}
|
Строка соединения с базой данных.
Возможные значения:
•для секции Mysql (MySQL), Pq (PostgreSQL):
tcp://[<пользователь>[:<пароль>]@]<узел>[:<порт>][/<имя базы данных>][?<параметр>=<значение>[&…]];
unix://[<пользователь>[:<пароль>]@]<путь к сокету>[:<имя базы данных>][?<параметр>=<значение>[&…]];
Пример: "tcp://user:pwd@localhost:1234/userdb", "unix://user:pwd@/tmp/pgsql.sock:userdb".
Обратите внимание на требования к URI;
•для секции Sqlite (SQLite):
Путь к файлу базы данных (указывается с префиксом схемы file://).
Пример: "file:///home/user/users.db".
Значение по умолчанию: определяется значением соответствующего параметра *DefaultConn
|
Request
{строка}
|
Строка SQL-запроса (SELECT) к базе данных. Как и для источников типа AD и LDAP, в запросе могут быть использованы следующие автоматически разрешаемые маркеры:
•$u, $U — заменяется на user — имя пользователя, переданное клиентским компонентом;
•$d, $D — заменяется на domain — имя домена, переданное клиентским компонентом;
•$$ — заменяется на символ '$'.
Пример: "SELECT username FROM users INNER JOIN domains ON users.domain = domains.id WHERE domains.name = $d AND users.name = $u".
Значение по умолчанию: (не задано)
|
|
В качестве SQL-запроса может быть указан только запрос типа SELECT. После выполнения подстановок запрос передается в БД «как есть». Если результат запроса будет содержать больше одного столбца, то все столбцы, кроме первого, будут проигнорированы.
|
5.Параметры секций типа Redis
Параметр
|
Описание
|
Conn
{строка}
|
Строка соединения с хранилищем данных Redis.
Возможные значения:
•tcp://[<пароль>@]<узел>[:<порт>][/<индекс базы данных>];
•unix://[<пароль>@]<путь к сокету>[:<индекс базы данных>];
Обратите внимание на требования к URI.
Пример: "tcp://localhost:6379".
Значение по умолчанию: определяется значением параметра RedisDefaultConn
|
Request
{строка}
|
Строка запроса данных из хранилища Redis. В запросе могут быть использованы следующие автоматически разрешаемые маркеры:
•$u, $U — заменяется на user — имя пользователя, переданное клиентским компонентом;
•$d, $D — заменяется на domain — имя домена, переданное клиентским компонентом;
•$$ — заменяется на символ '$'.
Пример: "HVALS bad_users".
Значение по умолчанию: (не задано)
|
|
Если результат запроса будет содержать больше одного столбца, то все столбцы кроме первого будут проигнорированы.
|
Добавление секций источников данных
Чтобы добавить новую секцию параметров для источника данных некоторого типа с тегом <имя> при помощи утилиты Dr.Web Ctl, предназначенной для управления Dr.Web для почтовых серверов UNIX из командной строки (запускается командой drweb-ctl), достаточно использовать команду:
# drweb-ctl cfset LookupD.<тип> -a <имя>
|
Пример:
# drweb-ctl cfset LookupD.AD -a WinAD1
# drweb-ctl cfset LookupD.AD.WinAD1.Host 192.168.0.20
|
Первая команда добавит в файл конфигурации секцию [LookupD.AD.WinAD1], а вторая изменит в ней значение параметра Host.
Кроме того, вы можете записать новую секцию непосредственно в файл конфигурации (например, добавив ее в конец файла):
[LookupD.AD.WinAD1]
Host = 192.168.0.20
|
|
Оба способа задания настроек приведут к одинаковому результату. Но в случае непосредственной правки файла конфигурации необходимо применить измененные настройки, отправив сигнал SIGHUP модулю drweb-configd. Для этого вы можете выполнить команду:
|
|