Вопрос или проблема
Я пытаюсь настроить SMTP сервер Postfix для аутентификации пользователей, созданных в Linux (Ubuntu Server 24.04)
Все кажется правильным, но я получаю
Mar 12 11:23:48 smtp1 postfix/smtpd[9514]: warning:
sourceserver.domain.local[192.168.12.42]: SASL ntlm authentication
failed: authentication failure, sasl_username=mylinuxuser
Mar 12 11:23:48 smtp1 postfix/smtpd[9514]: warning:
sourceserver.domain.local[192.168.12.42]: SASL login authentication
failed: authentication failure, sasl_username=mylinuxuser
Дело в том, что я провожу тест
root@smtp1:/etc/postfix/sasl# testsaslauthd -u mylinuxuser -p mypass==
0: OK “Success.”
И все работает отлично.
Вот файлы конфигурации:
/etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
compatibility_level = 3.6
maillog_file = /var/log/mail.log
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = smtp1.localdomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, smtp1, smtp2, localhost.localdomain, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.12.0/24 192.168.9.0/24 0.0.0.0/0
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
relay_domains = *
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
smtpd_sasl_path = /usr/sbin/saslauthd
smtpd_sasl_security_options = noanonymous
smtp_sasl_local_domain =
broken_sasl_auth_clients = yes
smtp_sasl_mechanism_filter = plain
smtpd_tls_loglevel = 2
smtpd_sasl_auth_enable = yes
smtpd_sasl_logging_level = 3
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_sasl_authenticated, reject_unauth_destination
notify_classes = resource, software, bounce
relayhost = DOMAIN-COM.mail.protection.outlook.com
Очевидно, “DOMAIN-COM.mail.protection.outlook.com” заменен на реальный используемый домен “MYCOMPANY-COM”
/etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level: 7
/etc/default/saslauthd
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="shadow"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/run/saslauthd"
Так что же не так с конфигурацией? Почему пользователи не могут повторно аутентифицироваться на сервере Postfix, используя локальных пользователей Linux?
Ответ или решение
Настройка Postfix с аутентификацией против локальных пользователей в Linux (Ubuntu Server 24.04) может быть сложной задачей, требующей внимательного подхода к деталям конфигурации. Ошибка аутентификации, с которой вы сталкиваетесь, указывает на то, что что-то идет не так с настройками Postfix, SASL или их интеграцией с системными учетными записями. Давайте разберем все по шагам, чтобы определить возможную причину проблемы и предложить решения.
Теория:
Postfix — это мощный и гибкий MTA (почтовый трансферный агент), который может использовать различные методы аутентификации, включая SASL (Simple Authentication and Security Layer). SASL позволяет интегрировать разнообразные способы проверки подлинности, включая локальные системные учетные записи. В данном случае, вы используете ‘saslauthd’, который может аутентифицировать пользователей, используя механизм ‘shadow’, то есть через системные файлы шифрования паролей.
Пример:
На основе предоставленных вами конфигурационных файлов можно определить несколько ключевых областей, которые следует проверить.
-
Файл конфигурации main.cf:
- Директива
smtpd_sasl_type = cyrus
указывает на использование библиотек Cyrus SASL. Убедитесь, что пакеты Cyrus SASL установлены и правильно настроены. smtpd_sasl_path = /usr/sbin/saslauthd
может быть неверным, так как ‘saslauthd’ обычно создает сокет в директории, такой как ‘/var/run/saslauthd’. Рассмотрите возможность изменения этой конфигурации.- Проверьте правильность настроек в
mynetworks
иrelay_domains
. Ошибки в этих параметрах могут привести к отказу в обслуживании. - Обратите внимание на директивы
smtpd_recipient_restrictions
иsmtpd_relay_restrictions
. Их текущая конфигурация может препятствовать авторизованным пользователям.
- Директива
-
Файл конфигурации smtpd.conf для SASL:
- Директива
pwcheck_method: saslauthd
означает, что следует проверить путь к сокету SASL. Убедитесь, что все правильно настроено для работы с ‘saslauthd’.
- Директива
-
Файл конфигурации для saslauthd:
- Убедитесь, что правильно установлен механизм ‘shadow’ в
MECHANISMS="shadow"
. - Опция
OPTIONS="-c -m /var/run/saslauthd"
должна быть скорректирована для правильного указания на сокет, который может отличаться от указанного пути. Также проверьте, правильно ли работает ‘saslauthd’ и не возникает ли ещё каких-либо ошибок при его запуске.
- Убедитесь, что правильно установлен механизм ‘shadow’ в
Применение:
На основании вышеизложенного, вот пошаговая инструкция, чтобы устранить проблему:
-
Проверка установки и прав:
Проверьте, что пакеты Postfix, Cyrus SASL и ‘saslauthd’ установлены:
sudo apt-get install postfix sasl2-bin libsasl2-modules
Настройте права доступа к директориям
/var/run/saslauthd
:sudo adduser postfix sasl sudo chmod -R 755 /var/run/saslauthd
-
Проверка конфигурации SASL:
Измените файл
/etc/postfix/sasl/smtpd.conf
следующим образом:pwcheck_method: saslauthd mech_list: PLAIN LOGIN
Убедитесь, что механизм PLAIN или LOGIN соответствует вашему серверу. Например, в некоторых случаях может потребоваться установка механизмов ‘digest-md5’ или ‘cram-md5’ в зависимости от безопасности.
-
Перезапустите службы:
После внесения изменений перезапустите службы Postfix и ‘saslauthd’:
sudo systemctl restart saslauthd sudo systemctl restart postfix
-
Проверка логов:
Логи могут дать дополнительную информацию об ошибках, например:
tail -f /var/log/mail.log
-
Тестирование аутентификации:
После установки и перезапуска служб используйте инструмент testsaslauthd
для проверки аутентификации. Если сообщение об ошибке исчезло, значит, проблема была устранена.
Если проблема продолжает сохраняться, вам может потребоваться более глубокий анализ логов для идентификации проблем. Обратите внимание на конфигурации для TLS, так как ошибки здесь также могут приводить к проблемам с аутентификацией.
Таким образом, с помощью этих шагов вы сможете более точно настроить систему и устранить ошибку аутентификации в Postfix с использованием локальных учетных записей Linux. Успехов в настройке!