Чтобы реализовать механизм аутентификации SASL клиентов через службу авторизации Cyrus SASL (saslauthd), необходимо выполнить следующие действия:
1.Настроить и запустить службу аутентификации Cyrus SASL (saslauthd). 2.Выполнить настройку Dr.Web MailD на использование Cyrus SASL (все настройки задаются в секции [SASL] и секции [Cyrus-SASL]): oВключить использование аутентификации SASL и использование драйвера Cyrus SASL: Use = yes
Driver = cyrus
oВ качестве значения параметра Lib указать корректный путь к библиотеке libsasl; oВ качестве значения параметра Path указать путь к файлу конфигурации аутентификации клиентов сервисом saslauthd. Например: /etc/sasl2/maild (обратите внимание, что расширение файла .conf указывать в параметре не нужно). Этот файл должен быть помещен в тот каталог, из которого saslauthd читает конфигурацию аутентификации.
![warning](warning.png)
|
Каталог, в котором должен быть расположен конфигурационный фал, зависит от версии Cyrus SASL и используемого дистрибутива ОС.
•Cyrus SASL версий 2.x пытается найти файл в каталоге /usr/lib/sasl2/ •Cyrus SASL версий 2.1.22 и новее также ищет файл в каталоге /etc/sasl2/ Cyrus SASL в первую очередь ищет файл конфигурации в каталоге /usr/lib/sasl2/. Если она обнаружит файл по этому пути, то другие файлы не будут использоваться.
|
3.Создать и заполнить файл конфигурации аутентификации (в этом примере – /etc/sasl2/maild.conf). Этот файл состоит из строк вида <параметр>: <значение>. Если параметр допускает список значений, то они должны указываться в одну строку, разделенные пробелом. Обязательны следующие параметры: opwcheck_method - Метод проверки пароля (способ аутентификации). Здесь указывается имя модуля, используемого для аутентификации. Возможные значения:
Значение
|
Используемый источник аутентификации
|
saslauthd
|
Непосредственно демон saslauthd
|
auxprop
|
Модуль, извлекающий атентификационные данные из внешних хранилищ (базы данных, LDAP)
|
omech_list - Список используемых механизмов аутентификации. Возможные значения: plain, login, cram-md5, digest-md5, ntlm. Обратите внимание, что если в качестве источника аутентификации выбран неспосредственно saslauthd, то вы можете использовать только механизмы plain и login.
Демон saslauthd может использовать для аутентификации данные, извлекаемые из системного файла /etc/shadow, а также механизм PAM или данные IMAP-сервера. О настройке saslauthd на работу с конкретным источником см. в документации Cyrus SASL.
oЕсли требуется использовать для аутентификации данные, хранящиеся в базах данных или в LDAP, следует использовать authprop. В этом случае источник данных указывается в дополнительном параметре auxprop_plugin. Возможные значения параметра:
Подключаемый модуль
|
Назначение
|
sasldb
|
Использование базы данных sasldb (Berkeley DB для Cyrus SASL)
|
sql
|
Использование баз данных MySQL, PostgreSQL, SQLite
|
ldapdb
|
Использование LDAP
|
В случае указания источника sasldb, путь к базе данных указывается в параметре sasldb_path. По умолчанию, если параметр не указан, используется путь /etc/sasldb2.
Если указан источник sql, то следующий набор дополнительных параметров определяет использование базы данных:
Параметр
|
Назначение
|
sql_engine
|
Определяет тип используемой СУБД:
•mysql для подключения к MySQL; •pgsql для подключения к PostgreSQL; •sqlite для подключения к SQLite. |
sql_hostnames
|
Определяет хост для подключения к серверу СУБД (имя хоста или пару имя:порт). В случае использования нескольких серверов, адреса можно перечислить через запятую.
Примечание: Для СУБД MySQL укажите localhost для подключения через UNIX-сокет или IP-адрес 127.0.0.1 для подключения через TCP-сокет
|
sql_user
|
Имя пользователя для подключения к базе данных
|
sql_passwd
|
Пароль пользователя
|
sql_database
|
Имя используемой базы данных
|
sql_select
|
SQL-оператор SELECT, который должен извлекать из базы данных пароль пользователя в виде plain text.
Важное примечание: Не заключайте текст SQL-выражения в кавычки, а для указания макросов (см. ниже) используйте апострофы.
Макросы, предоставляемые для SQL-выражений, представлены ниже. Они будут заменены на значения соответствующих данных, посланных аутентифицируемым клиентом. Доступны следующие макросы:
•%u - Имя пользователя. •%r - Realm (домен), к которому принадлежит пользователь. Это может быть KERBEROS realm, FQDN хоста, на котором запущен SASL, или почтовый домен (часть почтового адреса, указываемая после символа '@') |
Если указан источник ldapdb, то следующий набор дополнительных параметров определяет использование LDAP:
Параметр
|
Назначение
|
ldapdb_uri
|
Используемый URI LDAP. Используйте следующие префиксы:
•ldapi:// для подключения через UNIX-сокет •ldap:// для подключения через незащищенное TCP-соединение •ldaps:// для использования защищенного TCP-соединения (TLS) |
ldapdb_id
|
Логин для аутентификации на LDAP-сервере (прокси-авторизация)
|
ldapdb_pw
|
Пароль (plain text) для аутентификации на LDAP-сервере (прокси-авторизация)
|
ldapdb_mech
|
Механизм аутентификации, используемый сервером LDAP
|
ldapdb_rc
(опционально)
|
Путь к файлу, содержащему индивидуальные настройки клиента LDAP (libldap). Например, в нем можно определить клиентский сертификат TLS, используемый для защищенного подключения.
|
ldapdb_starttls
(опционально)
|
Политика TLS, используемая для подключения к серверу LDAP. Определено два значения – try и demand.
Если указано try, то модуль попытается установить защищенное соединение, а если эта попытка не увенчается успехом, перейдет в режим незащищенного соединения . Если указано demand, и защищенное соединение установить не удается, соединение с сервером LDAP будет разорвано.
|
Примеры:
1. Простейшая конфигурация (используется saslauthd):
pwcheck_method: saslauthd
mech_list: plain login
2. Использование sasldb:
pwcheck_method: authprop
auxprop_plugin: sasldb
mech_list: plain login cram-md5
sasldb_path: /etc/sasldb2
3. Использование PoslgreSQL:
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
sql_engine: pgsql
sql_hostnames: 127.0.0.1, 192.0.2.1
sql_user: username
sql_passwd: secret
sql_database: dbname
sql_select: SELECT password FROM users WHERE user = '%u@%r'
Обратите внимание, что файл конфигурации аутентификации для Cyrus SASL можно не создавать, тогда будут использоваться настройки аутентификации и источник аутентификационных данных по умолчанию.
|