Перейти к основному содержанию

Postfix — saslauthd и multi instance

Mail

У нас есть работающий сервер 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

bash

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

apt-get install sasl2-bin

postfix

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

Включаем saslauthd:

START=yes

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

MECHANISMS="sasldb"

postfix

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

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

postfix

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

service saslauthd restart

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

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

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

postfix

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

sasldblistusers2

postfix

Видим что в базе один пользователь 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 нет, то создайте их.

postfix

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

reboot

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

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

cd /etc
ll | grep sasl

postfix

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

usermod -a -G sasl postfix

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

postfix

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

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

postfix

Копируем папку /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

postfix

Спрашивают про какие-то буферы. Говорю 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

Теги

 

Похожие материалы