Назад | Перейти на главную страницу

Конфигурация Postfix для виртуальных псевдонимов и sasldb

Я пытаюсь настроить postfix для обработки нескольких доменов как псевдонимов, при этом SMTP-сервер принимает входящую почту из этих доменов с аутентификацией sasldb. Документация выглядит довольно старой, и многие источники информации противоречат друг другу, поэтому я ищу разъяснения по некоторым элементам конфигурации и решение моей неработающей аутентификации sasldb. Моя ОС - Debian 8.

Первый, что это за файл smptd.conf, это содержит:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

и куда он денется? Я мог найти три разных пути в разных руководствах, /usr/lib/sasl2/smtpd.conf, /etc/sasl2/smtpd.conf и /etc/postfix/sasl/smtpd.conf. Как мы можем узнать, какой из них используется? Существует конфигурационная переменная smtpd_sasl_path, но ее документация практически отсутствует, как она связана с реальной конфигурацией? Был предыдущий вопрос об этой переменной, которая действительно не помогла понять.

Я разместил этот файл в трех местах, и в списке методов аутентификации, предоставленном smtpd, я все еще получаю $250-AUTH DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN.

Что такое saslpasswd2? Отличается ли использование имени пользователя john@doe.com от имени john с -u doe.com? Можем ли мы просто использовать полный адрес электронной почты для имени пользователя в процессе аутентификации? Видимо да от этот комментарий, но я все еще не понимаю, что это за царство. Наконец, как это связано с smtpd_sasl_local_domain, особенно в конфигурации с несколькими псевдонимами виртуальных доменов? Кажется, он принимает пустое значение, что я и сделал.

Требуется ли для аутентификации sasldb использовать salsauthd? я прочел Вот и там этот постфикс может использовать sasldb без установки saslauthd, а Другой люди и в официальной документации указано, что это необходимо. Какой правильный ответ?

Для сервера псевдонима виртуального домена, который управляет несколькими доменами, какое значение следует использовать для myorigin, myhostname и mydestination? Подойдет ли localhost.localdomain, если мы предположим, что почтовые клиенты будут настроены с правильным завершением домена? Как это соотносится с фактическим именем хоста машины?

Ниже представлена ​​моя текущая конфигурация постфикса. Я добавил пользователей с помощью saslpasswd2, и у меня всегда возникают ошибки аутентификации, независимо от того, какую область и имя пользователя с доменом или без него я поставил. Я могу видеть список пользователей с sasldblistusers2, и я переместил файл sasldb2 в chroot postfix (/ var / spool / postfix / etc / sasldb2), как указано Вот.

saslfinger - postfix Cyrus sasl configuration Wed Dec  2 11:59:11 CET 2015
version: 1.0.4
mode: server-side SMTP AUTH

-- basics --
Postfix: 2.11.3
System: Debian GNU/Linux 8 \n \l

-- smtpd is linked to --
    libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fb6d84b9000)

-- active SMTP AUTH and TLS parameters for smtpd --
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = sasl2/smtpd.conf
smtpd_sasl_security_options = noanonymous
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
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache


-- listing of /usr/lib/sasl2 --
total 20
drwxr-xr-x  2 root root 4096 Nov 30 00:12 .
drwxr-xr-x 44 root root 4096 Nov 14 23:39 ..
-rw-r--r--  1 root root    4 Nov 28 21:15 berkeley_db.active
-rw-r--r--  1 root root    4 Sep 25 10:54 berkeley_db.txt
-rw-r--r--  1 root root   70 Nov 30 00:12 smtpd.conf

-- listing of /etc/sasl2 --
total 12
drwxr-xr-x  2 root root 4096 Nov 30 00:41 .
drwxr-xr-x 77 root root 4096 Nov 30 01:19 ..
-rw-r--r--  1 root root   70 Nov 29 23:22 smtpd.conf

-- listing of /etc/postfix/sasl --
total 12
drwxr-xr-x 2 root root 4096 Nov 30 00:41 .
drwxr-xr-x 3 root root 4096 Nov 30 01:18 ..
-rw-r--r-- 1 root root   70 Nov 30 00:41 smtpd.conf




-- content of /usr/lib/sasl2/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

-- content of /etc/sasl2/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN


-- active services in /etc/postfix/master.cf --
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix      -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

-- mechanisms on localhost --
250-AUTH DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN^M


-- end of saslfinger output --

Учитывая время, которое я потерял, пытаясь получить правильную конфигурацию, я постараюсь сделать современное руководство с правильными объяснениями в нем. => СДЕЛАНО

Спасибо, что прочитали меня, и за ответы.

что это за файл smptd.conf, который содержит ... и куда он девается?

Во-первых, в Postfix есть параметры конфигурации, которые определяют, где должен находиться этот файл (при использовании cyrus sasl) и как он должен называться. Вот варианты:

smtpd_sasl_path = smtpd
cyrus_sasl_config_path = /etc/sasl2/

Postfix объединяет их и отправляет cyrus sasl как /etc/sasl2/smtpd.conf

Наконец, как это связано с smtpd_sasl_local_domain, особенно в конфигурации с несколькими псевдонимами виртуальных доменов?

Насколько мне известно, он используется как домен по умолчанию для пользователей без указанного имени домена.

Для сервера псевдонима виртуального домена, который управляет несколькими доменами, какое значение следует использовать для myorigin, myhostname и mydestination?

Делай как хочешь. Я предпочитаю устанавливать их все (и smtpd_sasl_local_domain) на системное имя хоста, поэтому электронная почта, сгенерированная на этом хосте, всегда отображается как исходящая от этого хоста. Это помогает создать избыточную систему с резервным MX, у которого будет тот же набор виртуальных доменов, но другое имя системы, поэтому я всегда могу различать хосты.

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

http://www.postfix.org/SASL_README.html должны быть вашей первой ссылкой, а не страницами с ошибками сервера. При необходимости перейдите на страницы здесь, чтобы узнать о деталях, но документация на сайте postfix, как правило, довольно хороша. Как говорится на этой странице,

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

Похоже, вы не настроили smtpd_sasl_application_name (и это по сути, а не smtpd_sasl_type из-за вашей более старой версии postfix), поэтому предположительно действует Cyrus SASL по умолчанию. ценность, которую вы имеете в smtpd_sasl_path передается в библиотеку cyrus sasl и, предположительно, интерпретируется относительно его базового пути. Я полагаю, что вы используете Cyrus SASL 2.x, но уже использовали 1.x в прошлом и оставили файлы конфигурации. Я могу ошибаться, учитывая вашу версию постфикса. Проверь это. Также посмотрите, какие пакеты установлены на самом деле.

smtpd_sasl_path = sasl2/smtpd.conf почти наверняка неверно.