ПЛОСКОСТЬ SASL, проходящая проверку подлинности с первичным доменом, но не с виртуальным доменом

Постфикс + голубятня и sasl. Работы до сих пор с 1 доменом.

Добавленный виртуальный домен. Входящая корреспонденция для этого работает. Выход однако имеет сбой аутентификации SASL.

Почему это перестало работать, я не знаю.

/etc/sasl2/smtpd.conf похож:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

postconf-n вывод:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 40960000
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain
mydomain = primary.net
myhostname = mail.primary.net
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination, primary.net, seconddomain.org
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_non_fqdn_hostname
smtpd_recipient_restrictions = permit_sasl_authenticated,   
                               permit_mynetworks,        
                               reject_invalid_hostname,        
                               reject_unauth_pipelining,    
                               reject_unauth_destination,   
                               reject_rbl_client sbl-xbl.spamhaus.org,              
                               permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
soft_bounce = no
unknown_local_recipient_reject_code = 550
virtual_alias_domains = mail.seconddomain.org
virtual_alias_maps = hash:/etc/postfix/virtual

Виртуальные работы домена псевдонима. Но то, когда я пытаюсь пройти проверку подлинности с виртуальным доменом maillog, бросает ошибку:

 SASL PLAIN authentication failed

Какие-либо идеи, на что я должен посмотреть?

Обновление № 1:

Следование инструкциям ниже я не смог пройти проверку подлинности все еще, таким образом, я установил saslfinger и здесь являюсь выводом:

saslfinger - postfix Cyrus sasl configuration Tue Mar 24 07:23:10 GMT 2015
version: 1.0.2
mode: server-side SMTP AUTH

-- basics --
Postfix: 2.6.6
System: CentOS release 6.5 (Final)

-- smtpd is linked to --
    libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007ff8b9655000)

-- active SMTP AUTH and TLS parameters for smtpd --
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = no
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot


-- listing of /usr/lib64/sasl2 --
total 504
drwxr-xr-x.  2 root root  4096 Sep 15  2013 .
dr-xr-xr-x. 43 root root 20480 Jun 20  2014 ..
-rwxr-xr-x.  1 root root 18776 Nov 27  2012 libanonymous.so
-rwxr-xr-x.  1 root root 18776 Nov 27  2012 libanonymous.so.2
-rwxr-xr-x.  1 root root 18776 Nov 27  2012 libanonymous.so.2.0.23
-rwxr-xr-x   1 root root 22936 Nov 27  2012 libcrammd5.so
-rwxr-xr-x   1 root root 22936 Nov 27  2012 libcrammd5.so.2
-rwxr-xr-x   1 root root 22936 Nov 27  2012 libcrammd5.so.2.0.23
-rwxr-xr-x   1 root root 52088 Nov 27  2012 libdigestmd5.so
-rwxr-xr-x   1 root root 52088 Nov 27  2012 libdigestmd5.so.2
-rwxr-xr-x   1 root root 52088 Nov 27  2012 libdigestmd5.so.2.0.23
-rwxr-xr-x.  1 root root 18808 Nov 27  2012 liblogin.so
-rwxr-xr-x.  1 root root 18808 Nov 27  2012 liblogin.so.2
-rwxr-xr-x.  1 root root 18808 Nov 27  2012 liblogin.so.2.0.23
-rwxr-xr-x.  1 root root 18808 Nov 27  2012 libplain.so
-rwxr-xr-x.  1 root root 18808 Nov 27  2012 libplain.so.2
-rwxr-xr-x.  1 root root 18808 Nov 27  2012 libplain.so.2.0.23
-rwxr-xr-x.  1 root root 22784 Nov 27  2012 libsasldb.so
-rwxr-xr-x.  1 root root 22784 Nov 27  2012 libsasldb.so.2
-rwxr-xr-x.  1 root root 22784 Nov 27  2012 libsasldb.so.2.0.23

-- listing of /etc/sasl2 --
total 12
drwxr-xr-x.  2 root root 4096 Sep 20  2013 .
drwxr-xr-x. 93 root root 4096 Mar 22 03:43 ..
-rw-r--r--.  1 root root   70 Mar 24 07:22 smtpd.conf




-- content of /etc/sasl2/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       -       n       -       -       smtpd
submission inet n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual

smtps     inet  n       -       n       -       -       smtpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
    -o smtp_fallback_relay=
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

-- mechanisms on localhost --
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN

-- end of saslfinger output --

Обновление № 2:

Я включил подробный режим и здесь являюсь выводом после попытки послать электронное письмо:Примечание: я удалил метку времени и srv postfix/smtpd[29481]: от каждой строки для создания этого немного меньшим для взгляда на:

 dict_eval: const  mail
 dict_eval: const  all
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 name_mask: all
 dict_eval: const  mail.mydomain.net
 dict_eval: const  mydomain.net
 dict_eval: const  Postfix
 dict_eval: expand ${multi_instance_name:postfix}${multi_instance_name?$multi_instance_name} -> postfix
 dict_eval: const  postfix
 dict_eval: const  postdrop
 dict_eval: expand $myhostname, localhost.$mydomain, localhost, $mydomain,?mail.$mydomain -> mail.mydomain.net, localhost.mydomain.net, localhost, mydomain.net,?mail.mydomain.net
 dict_eval: expand $myhostname -> mail.mydomain.net
 dict_eval: const  
 dict_eval: const  /usr/libexec/postfix
 dict_eval: const  /var/lib/postfix
 dict_eval: const  /usr/sbin
 dict_eval: const  /var/spool/postfix
 dict_eval: const  pid
 dict_eval: const  all
 dict_eval: const  
 dict_eval: const  double-bounce
 dict_eval: const  nobody
 dict_eval: const  hash:/etc/aliases
 dict_eval: const  20100319
 dict_eval: const  2.6.6
 dict_eval: const  hash
 dict_eval: const  deferred, defer
 dict_eval: const  
 dict_eval: expand $mydestination, mydomain.net, anotherdomain.org -> mail.mydomain.net, localhost.mydomain.net, localhost, mydomain.net,?mail.mydomain.net, mydomain.net, anotherdomain.org
 dict_eval: expand $relay_domains -> mail.mydomain.net, localhost.mydomain.net, localhost, mydomain.net,?mail.mydomain.net, mydomain.net, anotherdomain.org
 dict_eval: const  TZ MAIL_CONFIG LANG
 dict_eval: const  MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C
 dict_eval: const  subnet
 dict_eval: const  127.0.0.1
 dict_eval: const  +=
 dict_eval: const  -=+
 dict_eval: const  debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps
 dict_eval: const  
 dict_eval: const  bounce
 dict_eval: const  cleanup
 dict_eval: const  defer
 dict_eval: const  pickup
 dict_eval: const  qmgr
 dict_eval: const  rewrite
 dict_eval: const  showq
 dict_eval: const  error
 dict_eval: const  flush
 dict_eval: const  verify
 dict_eval: const  trace
 dict_eval: const  proxymap
 dict_eval: const  proxywrite
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  40960000
 dict_eval: const  2
 dict_eval: const  no
 dict_eval: const  100s
 dict_eval: const  100s
 dict_eval: const  100s
 dict_eval: const  100s
 dict_eval: const  3600s
 dict_eval: const  3600s
 dict_eval: const  5s
 dict_eval: const  5s
 dict_eval: const  1000s
 dict_eval: const  1000s
 dict_eval: const  10s
 dict_eval: const  10s
 dict_eval: const  1s
 dict_eval: const  1s
 dict_eval: const  1s
 dict_eval: const  1s
 dict_eval: const  500s
 dict_eval: const  500s
 dict_eval: const  18000s
 dict_eval: const  18000s
 dict_eval: const  1s
 dict_eval: const  1s
 name_mask: subnet
 inet_addr_local: configured 2 IPv4 addresses
 inet_addr_local: configured 2 IPv6 addresses
 been_here: 127.0.0.0/8: 0
 been_here: 77.0.0.0/8: 0
 been_here: [::1]/128: 0
 been_here: [fe80::%eth0]/64: 0
 mynetworks: 127.0.0.0/8 77.0.0.0/8 [::1]/128 [fe80::%eth0]/64 
 dict_eval: const  127.0.0.0/8 77.0.0.0/8 [::1]/128 [fe80::%eth0]/64 
 dict_eval: const  10
 dict_eval: expand ${stress?1}${stress:20} -> 20
 dict_eval: expand ${stress?1}${stress:100} -> 100
 dict_eval: expand ${stress?1}${stress:3} -> 3
 dict_eval: const  550
 dict_eval: expand $myhostname ESMTP $mail_name -> mail.mydomain.net ESMTP Postfix
 dict_eval: const  resource, software
 dict_eval: const  permit_sasl_authenticated
 dict_eval: const  reject_non_fqdn_hostname
 dict_eval: const  reject_unknown_sender_domain
 dict_eval: const  permit_sasl_authenticated,?permit_mynetworks,        reject_invalid_hostname,        reject_unauth_pipelining,?reject_unauth_destination,?reject_rbl_client sbl-xbl.spamhaus.org,           ?permit
 dict_eval: const  
 dict_eval: const  reject_unauth_pipelining
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  postmaster
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  hash:/etc/postfix/virtual
 dict_eval: const  
 dict_eval: const  hash:/etc/aliases
 dict_eval: expand proxy:unix:passwd.byname $alias_maps -> proxy:unix:passwd.byname hash:/etc/aliases
 dict_eval: const  noanonymous
 dict_eval: const  private/auth
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  CONNECT GET POST
 dict_eval: const  <>
 dict_eval: const  
 dict_eval: expand $double_bounce_sender -> double-bounce
 dict_eval: expand $authorized_verp_clients -> 
 dict_eval: const  
 dict_eval: expand $myhostname -> mail.mydomain.net
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: expand ${smtpd_client_connection_limit_exceptions:$mynetworks} -> 127.0.0.0/8 77.0.0.0/8 [::1]/128 [fe80::%eth0]/64 
 dict_eval: const  permit_inet_interfaces
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: expand $smtpd_sasl_security_options -> noanonymous
 dict_eval: const  
 dict_eval: expand $smtpd_tls_cert_file -> 
 dict_eval: const  
 dict_eval: expand $smtpd_tls_dcert_file -> 
 dict_eval: const  
 dict_eval: expand $smtpd_tls_eccert_file -> 
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  export
 dict_eval: const  medium
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  SSLv3, TLSv1
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  none
 dict_eval: const  md5
 dict_eval: const  
 dict_eval: const  dovecot
 dict_eval: const  
 dict_eval: const  j {daemon_name} v
 dict_eval: const  {tls_version} {cipher} {cipher_bits} {cert_subject} {cert_issuer}
 dict_eval: const  i {auth_type} {auth_authen} {auth_author} {mail_addr} {mail_host} {mail_mailer}
 dict_eval: const  i {rcpt_addr} {rcpt_host} {rcpt_mailer}
 dict_eval: const  i
 dict_eval: const  i
 dict_eval: const  i
 dict_eval: const  
 dict_eval: const  6
 dict_eval: const  tempfail
 dict_eval: expand $myhostname -> mail.mydomain.net
 dict_eval: expand $mail_name $mail_version -> Postfix 2.6.6
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  
 dict_eval: const  defer_if_permit
 dict_eval: expand $reject_tempfail_action -> defer_if_permit
 dict_eval: expand $reject_tempfail_action -> defer_if_permit
 dict_eval: expand $reject_tempfail_action -> defer_if_permit
 dict_eval: expand $reject_tempfail_action -> defer_if_permit
 dict_eval: const  yes
 dict_eval: const  yes
 dict_eval: const  no
 dict_eval: const  yes
 dict_eval: expand ${stress?10}${stress:300}s -> 300s
 dict_eval: expand ${stress?10}${stress:300}s -> 300s
 dict_eval: const  1s
 dict_eval: const  1s
 dict_eval: const  100s
 dict_eval: const  100s
 dict_eval: const  3s
 dict_eval: const  3s
 dict_eval: const  100s
 dict_eval: const  100s
 dict_eval: const  300s
 dict_eval: const  300s
 dict_eval: const  1000s
 dict_eval: const  1000s
 dict_eval: const  300s
 dict_eval: const  300s
 dict_eval: const  3600s
2
задан 26 March 2015 в 08:23
1 ответ

Приносим извинения за вводящий в заблуждение комментарий выше . Когда вы используете sasldb, вам не нужно запускать saslauthd . Так что можете смело удалить его из сценария запуска. Вы должны запустить saslauthd, когда вы проверяете пароль через системного пользователя, LDAP или удаленного IMAP .

Первым шагом является создание базы данных для sasldb с использованием saslpasswd2 двоичного файла

# saslpasswd2 -c  username@example.com
Password:
Again (for verification):

Пожалуйста, проверьте это можно сделать, запустив sasldblistusers2

# sasldblistusers2
username@example.com: userPassword

. Это сохранит базу данных в файле sasldb2, в моей системе это файл / etc / sasldb2 . Поскольку нам нужен постфикс (через библиотеку SASL) для его чтения, тогда добавьте изменение группы этого файла, чтобы постфикс мог его прочитать.

# ls -l /etc/sasldb2
-rw-r----- 1 root root 12288 Feb 27 06:09 /etc/sasldb2
# chgrp postfix /etc/sasldb2
# ls -l /etc/sasldb2
-rw-r----- 1 root postfix 12288 Feb 27 06:09 /etc/sasldb2

Ваш /etc/sasl2/smtpd.conf файл выше был в порядке .

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

Затем проверьте это

  • Сгенерировать строку Base64 в формате учетных данных PLAIN

     # echo -ne (скрыто) |  openssl base64
    SomERandOMЧАСТЕР
     
  • Проверить учетные данные

     telnet localhost 25
    Пробуем :: 1 ...
    Подключен к localhost.
    Экранирующий символ - '^]'.
    220 mail.example.com ESMTP Postfix
    EHLO localhost
    250-mail.example.com
    250-ТРУБОПРОВОД
    250-РАЗМЕР 10240000
    250-VRFY
    250-ETRN
    250-АУТ. ОБЫЧНЫЙ ВХОД
    250-РАСШИРЕННЫЕ СТАТУСКОДЫ
    250-8BITMIME
    250 DSN
    AUTH PLAIN SomERandOMЧАСТЕР
    235 2.7.0 Аутентификация прошла успешно
     

Протестировано в CentOS 6.5 с postfix 2.3.3 и cyrus sasl версии 2.1

Ссылки:

PS: Если проблема не исчезла, опубликуйте результат saslfinger бинарный

saslfinger -s

Вы можете скачать его на веб-сайте автора книги Postfix


Если ваш постфикс находится в конфигурации chroot , то postfix не может получить доступ к / etc / sasldb2 для аутентифицированного имени пользователя. Чтобы решить эту проблему, у нас есть две альтернативы:

  1. В master.cf отключите chroot в службе отправки / smtpd / smtps или любой другой службе. которые используют smtpd двоичный
  2. Переместите sasldb2 в / var / spool / postfix / etc / , как этот пост . Вы также можете использовать символическую ссылку / var / spool / postfix / etc / sasldb2 / на / etc / sasldb2 .

     ln -sf / var / spool / postfix / etc / sasldb2 /  и т.д/
     
3
ответ дан 3 December 2019 в 10:44

Теги

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