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

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

Теги

 

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

CISCO ESA — увеличить максимальный размер сканируемого вложения

Боремся с ошибкой: MID 83839 message scanning problem using engine Sophos. This message was treated as unscannable because scanning the message exceeded the configured file size or number of files. Увеличим максимальный размер сканируемого вложения.

Теги