Complete Virtual Mail Server/SMTP Authentication/ru

Введение
На данный момент, только localhost имеет возможность отправлять почту. К сожалению, postfix не может напрямую работать с courier-authlib. Однако, существует промежуточное решение —. Существует три способа, с помощью которых cyrus-sasl может получать аутентификационную информацию — напрямую из базы данных, локально или удаленно. Настройка, использующая этот подход, выглядит следующим образом.

courier-imap -> courier-authlib --\ +--> database postfix --> cyrus-sasl ---/

В следующем, немного более сложном, варианте, cyrus-sasl может использоваться для коммуникации посредством courier-authlib и, таким образом, позволять courier-authlib осуществлять аутентификацию.

courier-imap ---\ +-> courier-authlib -> database postfix -> cyrus-sasl --/

Желательно использовать последний вариант, поскольку, в этом случае, используется один back-end аутентификации, courier-authlib. Коммуникация плагина cyrus-sasl с courier-authlib, однако, работает только посредством сокета unix и поэтому, если courier-authlib не запущен на одном компьютере с cyrus-sasl, это не сработает. Поэтому, первый вариант лучше использовать только тогда, когда courier-authlib недоступен.

Установка cyrus-sasl
Ключевая возможность cyrus-sasl, которую необходимо включить, это USE-флаг. Если он не установлен, аутентификация с помощью зашифрованных паролей из базы данных не будет работать. Cyrus-sasl с правильным USE-флагом уже должен был быть установлен ранее, во время установки postfix.

Настройка postfix с cyrus-sasl
Postfix требуется несколько параметров для того, чтобы сообщить ему о необходимости использовать sasl в его. Они не упомянуты в файле конфигурации по умолчанию, поэтому их необходимо добавить.

С authdaemond
Postfix посылает запросы на сокет, созданный authdaemond, который защищен пользователем и группой, поэтому postfix необходимо предоставить доступ.

Далее нужно сообщить cyrus-sasl, чтобы он осуществил аутентификацию с authdeamond:

Тестирование
Убедиться в наличии поддержки sasl можно, проверив наличие  statement с помощью telnet:

Следующий тест — с удаленного хоста попытаться аутентифицироваться на почтовом сервере и отправить тестовое сообщение.

Если установлен perl с модулем base64, его можно использовать для генерации данных, закодированных base64. Также можно осуществить преобразование base64 онлайн. Будьте очень осторожны при использовании реальных данных на ненадежных сайтах.

Заключение
После того, как система отлажена, отладку можно отключить (также можно удалить всю строку):

По желанию, можно снова отключить. Он очень удобен для обнаружения проблем с почтой пользователей, но представляет потенциальную проблему с точки зрения безопасности, как упомянуто выше, поскольку учетное имя пользователя помещается в заголовок. С другой стороны, если учетное имя является local_part почтового адреса, или даже почтовым адресом, тогда учетное имя известно в любом случае, и большого вреда это не нанесет. Рекомендуется соблюдать определенную осторожность, но вряд ли это создаст большую проблему.