В этом разделе
•Параметры компонента
•Секции источников данных
•Добавление секций источников данных
Компонент использует параметры конфигурации, заданные в секции [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.
Значение по умолчанию: 10m
|
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
|
|
Оба способа задания настроек приведут к одинаковому результату, но в случае непосредственной правки файла конфигурации необходимо применить измененные настройки, отправив запрос на перезагрузку модулю drweb-configd. Для этого вы можете выполнить команду:
|
|