Как установить имя пользователя и пароль для smtpd в Постфиксе?

Я настроил Постфикс как сервер SMTP путем добавления этой конфигурации к main.cf:

myhostname = foo.com
mydomain = foo.com
myorigin = $mydomain

smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname
smtpd_recipient_restrictions = reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

sasl_passwd файл похож на это:

foo.com    user:pass

И я генерировал a sasl_passwd.db из того файла. К сожалению, при соединении с моим сервером с именем пользователя и паролем, я продолжаю получать ошибки аутентификации. Что я делаю неправильно?

4
задан 29 March 2015 в 15:43
2 ответа

Вы смешиваете smtpd_sasl и smtp_sasl , первый предназначен для пользователей, аутентифицирующих на вашем сервере для отправки сообщений электронной почты для доставки , последний используется, когда postfix доставляется не напрямую, а через ретранслятор, а postfix сам аутентифицирует .

К сожалению, при подключении к моему серверу с помощью имени пользователя и пароля я продолжаю получать сбои аутентификации.

Вы говорите, что вы подключаетесь к серверу, поэтому я предполагаю, что вы хотите использовать SASL для smtp d . SASL в постфиксе для аутентификации пользователя обычно достигается с помощью dovecot или cyrus.

Два совета о том, с чего начать решать задачу, к которой вы на самом деле приближаетесь:

5
ответ дан 3 December 2019 в 03:17

Как отмечалось в предыдущем ответе, переменная smtp_sasl_password_mapsприменяется только к SMTP, а не к SMTPD. Если бы решение было таким же простым, как указание Postfix SMTPD на файл.

В предыдущем ответе упоминалась кажущаяся ненужной документация по проблеме задания пар имен пользователей и паролей для сервера. Было бы неплохо, если бы у Postfix SMTPD был способ вернуться к файлу, а не требовать от администратора изучения демона с подключаемыми модулями.

По-видимому, такого решения не существует, поэтому проблема указания набора имен пользователей и паролей для конфигурации Postfix SMTPD становится проблемой взаимодействия Postfix SMTPD с демоном SASL. (Этот факт, если он верен, не фигурирует в документации, на которую ссылаются, поэтому я беру на себя некоторый риск, чтобы заявить об этом здесь)

Я нашел наиболее простую документацию для того, чтобы заставить Postfix SMTPD взаимодействовать с SASL здесь: https://wiki.debian.org/PostfixAndSASL.

В итоге я смог заставить Postfix SMTPD распознавать имя пользователя/пароль из моего входа в оболочку, используя первый метод из приведенного выше руководства «Использование saslauthd с PAM». При этом используется механизм SASL по умолчанию «pam», указанный в /etc/default/saslauthdв Debian (хотя в руководстве сказано, что нужно создать копию этого файла только для Postfix, что я и сделал). PAM — это стандартная среда аутентификации Unix.

Я помню, как сталкивался с некоторыми проблемами даже с документацией Debian, но я не могу точно вспомнить, в чем они заключались. Эти две команды были необходимы для отладки проблем, с которыми я столкнулся (замените свое имя пользователя и пароль):

echo MYPASSWORD | pamtester -v smptd myusername authenticate

sudo testsaslauthd -s smtp -u myusername -p MYPASSWORD

Мне, возможно, пришлось запустить saslauthdдо того, как Postfix SMTPD даже объявил о возможности аутентификации для клиентов.

Наконец, я протестировал отправку с помощью msmtpна другом хосте. Этому инструменту не нравились ключи TLS в конфигурации Debian Postfix по умолчанию, поэтому я изменил main.cf, чтобы использовать ключи letsencrypt.

Мне никогда не приходилось узнавать, что такое голубятня или Кир для этого решения.Однако было бы предпочтительнее иметь решение, которое позволило бы мне использовать пароль, отличный от моего входа в оболочку, так как теперь вся моя система так же безопасна, как Postfix.

0
ответ дан 16 November 2021 в 08:22

Теги

Похожие вопросы