Найти тему

Postfix — saslauthd и multi instance

Оглавление

У нас есть работающий сервер postfix с несколькими экземплярами multi instance на Ubuntu 20.04 LTS, задача — настроить SMTP аутентификацию для каждого инстанса.

Ссылки

Postfix с SMTP аутентификацией Cyrus

Postfix — Multi Instance

Аутентификация

Настроим пользователей для аутентификации. Для администрирования пользователей базы sasldb понадобится пакет sasl2-bin.

Ещё нужны модули libsasl2-2 и libsasl2-modules, но они уже есть:

dpkg -l | grep sasl
-2

Установим sasl2-bin:

apt-get install sasl2-bin
-3

Редактируем файл /etc/default/saslauthd.

Включаем saslauthd:

START=yes

Механизм аутентификации sasldb:

MECHANISMS="sasldb"
-4

ВАЖНО: указываем опцию:

OPTIONS="-c -m /var/run/saslauthd"
-5

Перезагружаем saslauthd:

service saslauthd restart

Вместе с пакетом sasl2-bin устанавливаются утилиты для работы с пользователями sasldb: saslpasswd2, sasldblistusers2, testsaslauthd.

Создаём пользователя info@testsender.internet-lab.ru с паролем 888776:

saslpasswd2 -c -u testsender.internet-lab.ru info
-6

Посмотреть список пользователей в базе:

sasldblistusers2
-7

Видим что в базе один пользователь info@testsender.internet-lab.ru, пароль не отображается.

Утилита testsaslauthd позволяет проверить аутентификацию:

testsaslauthd -u info -r testsender.internet-lab.ru -p 888776

Результат:

0: OK "Success."

fstab

Postfix не имеет доступ к /var/run/saslauthd, Исправим проблему, добавляем в /etc/fstab:

/var/run/saslauthd /var/spool/postfix/var/run/saslauthd none rw,bind 0 0
/var/run/saslauthd /var/spool/postfix-2/var/run/saslauthd none rw,bind 0 0
/var/run/saslauthd /var/spool/postfix-3/var/run/saslauthd none rw,bind 0 0
/var/run/saslauthd /var/spool/postfix-4/var/run/saslauthd none rw,bind 0 0
/var/run/saslauthd /var/spool/postfix-5/var/run/saslauthd none rw,bind 0 0

Где мы монтируем /var/run/saslauthd в директорию queue_directory каждого экземпляра postfix. Если директорий вида /var/spool/postfix-3/var/run/saslauthd нет, то создайте их.

-8

Перезагружаем сервер:

reboot

Аутентификация в Postfix

Сама база пользователей sasldb находится в /etc/sasldb2.

cd /etc
ll | grep sasl
-9

Для того, чтобы Postfix мог читать из базы, пользователю postfix нужно дать права на файл sasldb2. Файл sasldb2 принадлежит группе sasl. Добавим пользователя postfix в группу sasl:

usermod -a -G sasl postfix

Находим директорию /etc/postfax/sasl:

-10

Создаём в директории /etc/postfax/sasl файл smtpd.conf:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
-11

Копируем папку /etc/postfax/sasl в директорию каждого экземпляра postfix:

  • /etc/postfax-2/sasl
  • /etc/postfax-3/sasl
  • /etc/postfax-4/sasl
  • /etc/postfax-5/sasl

Ставим пакет cyrus-common:

apt-get install cyrus-common
-12

Спрашивают про какие-то буферы. Говорю Yes.

Настраиваем аутентификацию в Postfix. Модифицируем файл настроек /etc/postfix/main.c. Добавляем:

smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_relay_restrictions = permit_sasl_authenticated reject_unauth_destination
smtp_tls_security_level = may

Такие же настройки делаем в main.cf для каждого дополнительного экземпляра postfix.

Перезагружаем сервисы:

service postfix restart
service saslauthd restart

Источник:
https://internet-lab.ru/postfix_saslauthd_multi_instance

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.