URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85406
[ Назад ]

Исходное сообщение
"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"

Отправлено batman , 25-Май-09 12:52 
Пытаюсь настроить связку postfix, dovecot, postfixadmin, mysql.

Установил все по статье:

Строим почтовую систему(postfix, dovecot, postfixadmin) - часть первая, установка PostfixAdmin

http://www.hilik.org.ua/я│я┌я─п╬п╦п╪-п©п╬я┤я┌п╬п╡я┐я▌-я│п╦я│я┌п╣п╪я┐postfix-dovecot-postfixadmin-я┤п╟я│я┌я▄-п©/


конфиг postfix-а, main.cf:

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = mail.blabla.ru
mydomain = blabla.ru
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
relay_domains =
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8 192.168.1.0/24
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
readme_directory = no
#Корневая директория для клиентских почтовых ящиков
virtual_mailbox_base = /usr/mail/
#Путь к файлу настроек подключения к MySQL для получения виртуальных алиасов
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
#Путь к файлу настроек подключения к MySQL для получения виртуальных доменов
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
#Путь к файлу настроек подключения к MySQL для получения виртуальных пользователей
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
#Работать dovecot будет от nobody
virtual_minimum_uid             = 65534
virtual_uid_maps                = static:65534
virtual_gid_maps                = static:65534
#Для доставки в локальные почтовые ящики будем использовать доставщик dovecота
virtual_transport               = dovecot
dovecot_destination_recipient_limit = 1
#Включаем smtp авторизацию через dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
#Устанавливаем разрешения smtpd
smtpd_recipient_restrictions =
#локальная сеть
        permit_mynetworks
#smtp авторизация
        permit_sasl_authenticated
#всем остальным релай запрещаем
        reject_unauth_destination


Конфиг dovecot.conf:

#Директория для работы Dovecot
base_dir = /var/run/dovecot
#Протоколы по которым будет работать Dovecot
protocols = imap pop3
#Разрешаем plain text авторизацию
disable_plaintext_auth = no
#Месторасположение пользовательской почты %d - имя домена, %u - емайл пользователя
mail_location = maildir:/usr/mail/%d/%u/
mail_privileged_group = mail
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_gid = 65534
maildir_copy_with_hardlinks = yes
ssl_disable = yes
auth_debug_passwords=yes
#Описание работы IMAP и POP3 протоколов
protocol imap {
  login_greeting_capability = yes
  imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
  pop3_uidl_format = XuXv
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
#Доставщик клиентской почты
protocol lda {
  postmaster_address = postmaster@blalbla.ru
  sendmail_path = /usr/sbin/sendmail
}

#Секция отвечающая за авторизацию пользователей
auth_username_format = %Lu
auth default {
  mechanisms = plain login cram-md5 digest-md5
#mechanisms = plain login cram-md5
#Авторизация через MySQL
  passdb sql {
    args = /usr/local/etc/dovecot-sql.conf
  }

  userdb sql {
    args = /usr/local/etc/dovecot-sql.conf
}
#Пользователь от имени которого dovecot выполняет действия с почтой
  user = nobody
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0666
    }
    client {
#Эти настройки отвечают за авторизацию клиентов, в нашей ситуации клиентом выступает Postfix
#когда отвечает на SMTP AUTH
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

dict {

}

plugin {

}

все запускается без ошибок. Затем пробую протестить телнетом.
[root@sspmail /usr/ports/mail/postfix22/postfix-2.2.12]# telnet localhost 25
Trying 127.0.0.1...
Connected to mail.blabla.ru.
Escape character is '^]'.
220 mail.blabla.ru ESMTP Postfix
ehlo s
250- mail.blabla.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 8BITMIME
auth plain dGVzdC5ydQB0ZXN0LnJ1AHRlc3Q=
535 Error: authentication failed


auth plain получаю так:

perl -MMIME::Base64 -e 'print encode_base64("test@blabla.ru\0test@blabla.ru\0test");'

Пользователь test@blabla.ru в базе есть.


В логах ошибка:

May 21 02:51:13 sspmail postfix/smtpd[21325]: connect from localhost.blabla.ru [127.0.0.1]
May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: SASL authentication failure: no user in db
May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: SASL authentication failure: no user in db
May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: SASL authentication failure: Password verification failed
May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: localhost.blabla.ru[127.0.0.1]: SASL plain authentication failed


Хотя по pop3 все замечательно пускает, авторизует, почта забирается. Такое ощущение что SASL не использует dovecot. Кто нибудь может добрым словом помочь?


Содержание

Сообщения в этом обсуждении
"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"
Отправлено bill , 25-Май-09 20:35 
>[оверквотинг удален]
>db
>May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: SASL authentication failure: no user in
>db
>May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: SASL authentication failure: Password verification failed
>
>May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: localhost.blabla.ru[127.0.0.1]: SASL plain authentication failed
>
>
>Хотя по pop3 все замечательно пускает, авторизует, почта забирается. Такое ощущение что
>SASL не использует dovecot. Кто нибудь может добрым словом помочь?

Покажите логи dovecot auth.


"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"
Отправлено batman , 26-Май-09 05:18 
>[оверквотинг удален]
>>db
>>May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: SASL authentication failure: Password verification failed
>>
>>May 21 02:51:36 sspmail postfix/smtpd[21325]: warning: localhost.blabla.ru[127.0.0.1]: SASL plain authentication failed
>>
>>
>>Хотя по pop3 все замечательно пускает, авторизует, почта забирается. Такое ощущение что
>>SASL не использует dovecot. Кто нибудь может добрым словом помочь?
>
>Покажите логи dovecot auth.

Лог при попытке отправить через MS Outlook с опцией: SMTP серверу требуется проверка подлинности. Аналогично серверу входящей почты.
[root@mail ~]# tail -f /var/log/dovecot.log

dovecot: May 21 04:55:26 Info: auth(default): client in: AUTH   1       DIGEST-MD5      service=pop3    lip=192.168.232.248     rip=192.168.232.51      lport=110    rport=54717     resp=
dovecot: May 21 04:55:26 Info: auth(default): client out: CONT  1       cmVhbG09IiIsbm9uY2U9IkxpWHZxYSs3R3lwM2U0dERnNUlLL1E9PSIscW9wPSJhdXRoIixjaGFyc2V0PSJ1dGYtOCIsYWxnb3JpdGhtPSJtZDUtc2VzcyI=
dovecot: May 21 04:55:26 Info: auth(default): client in: CONT   1       dXNlcm5hbWU9InRlc3QiLHJlYWxtPSJmc3NwMjQucnUiLG5vbmNlPSJMaVh2cWErN0d5cDNlNHREZzVJSy9RPT0iLGRpZ2VzdC11cmk9InBvcC8xOTIuMTY4LjIzMi4yNDgiLGNub25jZT0iOTJjNTE1OGM1OGUzZjk0ZGJmMjViYmMzYmY0NzQ4OGIiLG5jPTAwMDAwMDAxLHJlc3BvbnNlPTg3ZTA5OWMwMTMwN2JjY2JkZjllNzc1Y2UwNjllZjI3LHFvcD1hdXRoLGNoYXJzZXQ9dXRmLTg=
dovecot: May 21 04:55:26 Info: auth(default): digest-md5(?,192.168.232.51): Invalid realm: blabla.ru
dovecot: May 21 04:55:27 Info: auth(default): new auth connection: pid=22205
dovecot: May 21 04:55:28 Info: auth(default): client out: FAIL  1
dovecot: May 21 04:55:28 Info: auth(default): client in: AUTH   2       PLAIN   service=pop3    lip=192.168.232.248     rip=192.168.232.51      lport=110   rport=54717      resp=AHRlc3RAZnNzcDI0LnJ1AHRlc3Q=
dovecot: May 21 04:55:28 Info: auth-worker(default): sql(test@blabla.ru,192.168.232.51): query: SELECT password FROM mailbox WHERE username = 'test@blabla.ru'
dovecot: May 21 04:55:28 Info: auth(default): client out: OK    2       user=test@blabla.ru
dovecot: May 21 04:55:28 Info: auth(default): master in: REQUEST        4       22092   2
dovecot: May 21 04:55:28 Info: auth-worker(default): sql(test@blabla.ru,192.168.232.51): SELECT maildir, 65534 AS uid, 65534 AS gid FROM mailbox WHERE username = 'test@blabla.ru'
dovecot: May 21 04:55:28 Info: auth(default): master out: USER  4       test@blabla.ru  maildir=test@blabla.ru/ uid=65534       gid=65534
dovecot: May 21 04:55:28 Info: pop3-login: Login: user=<test@blabla.ru>, method=PLAIN, rip=192.168.232.51, lip=192.168.232.248
dovecot: May 21 04:55:28 Info: POP3(test@blabla.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0


[root@mail ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.blabla.ru.
Escape character is '^]'.
220 mail.blabla.ru ESMTP Postfix
ehlo mail
250-mail.blabla.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 8BITMIME
auth login
334 VXNlcm5hbWU6
dGVzdEBmc3NwMjQucnU=
334 UGFzc3dvcmQ6
dGVzdA==
535 Error: authentication failed


Имя и пасс сгенерено таким скриптом:

<?php
print base64_encode("test@blabla.ru");
print "\n";
print base64_encode("test");
print "\n";
?>

При тестировании телнетом, логи dovecot пустые.


"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"
Отправлено batman , 26-Май-09 06:52 
Пересобрал postfix с такими опциями:

make makefiles \
'CCARGS=-DDEF_SERVER_SASL_TYPE=\"dovecot\" -DHAS_MYSQL -I/usr/local/include/mysql -DUSE_SASL_AUTH -I/usr/local/include/sasl' \
'AUXLIBS=-L/usr/local/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -R/usr/local/lib -lsasl2'

Добавив: DUSE_SASL_AUTH

заходим телнетом:

Connected to localhost.blabla.ru.
Escape character is '^]'.
220 mail.blabla.ru ESMTP Postfix
ehlo fds
250-mail.blabla.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH NTLM LOGIN PLAIN GSSAPI OTP DIGEST-MD5 CRAM-MD5
250 8BITMIME
auth plain
334
dGVzdC5ydQB0ZXN0LnJ1AHRlc3Q=
535 Error: authentication failed
quit
221 Bye
Connection closed by foreign host.

auth login аналогично не работает.

Логи(tail -f /var/log/maillog):

May 21 06:30:37 mail postfix/smtpd[34105]: connect from localhost.blabla.ru[127.0.0.1]
May 21 06:31:14 mail postfix/smtpd[34105]: warning: SASL authentication failure: no user in db
May 21 06:31:14 mail postfix/smtpd[34105]: warning: SASL authentication failure: no user in db
May 21 06:31:14 mail postfix/smtpd[34105]: warning: SASL authentication failure: Password verification failed
May 21 06:31:14 mail postfix/smtpd[34105]: warning: localhost.blabla.ru[127.0.0.1]: SASL plain authentication failed
May 21 06:32:47 pmail postfix/smtpd[34105]: disconnect from localhost.blabla.ru[127.0.0.1]

а /var/log/dovecot.log пустой.


"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"
Отправлено batman , 26-Май-09 07:24 
Все!!! Допер! Надо было установить последнюю версию postfix-а 2.6 а не та что с портов тянулась. Теперь postconf -a говорит dovecot и:

Escape character is '^]'.
220 mail.blabla.ru ESMTP Postfix
ehlo dsds
250-mail.blabla.ru
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login
334 VXNlcm5hbWU6
dGVzdEBmc3NwMjQucnU=
334 UGFzc3dvcmQ6
dGVzdA==
235 2.7.0 Authentication successful


Для тех кто параноидально хочет авторизовать все исходящие емайлы!, ставятся такие правила:

smtpd_sasl_auth_enable = yes
smtpd_security_options = noanonymous
smtpd_client_restrictions =
        permit_sasl_authenticated
        reject_plaintext_session
smtpd_sender_restrictions =
        permit_sasl_authenticated
        reject_plaintext_session


всем спасибо.


"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"
Отправлено batman , 26-Май-09 13:03 
Хы, теперь другая проблема :) не принимается почта извне, ошибка Session encryption is required логи:

May 26 16:34:56 sspmail postfix/smtpd[1493]: connect from dsl.test.ru[192.168.232.1]
May 26 16:34:57 sspmail postfix/smtpd[1493]: NOQUEUE: reject: RCPT from выtest.ru[192.168.232.1]: 450 4.7.1 Session encryption is required; from=<mailtesrerx@gmail.com> to=<test@blabla.ru> proto=ESMTP helo=<mail-px0-f199.google.com>
May 26 16:34:57 sspmail postfix/smtpd[1493]: disconnect from dsl.test.ru[192.168.232.1]

В примере dsl.test.ru[192.168.232.1] это dsl модем который пробрасывает 25 порт извне во внутрь на сервер.

В общем задумка такая: Отправлять почту по авторизации, и принимать внешюю почту на любые адреса  моего домена blabla.ru


"Пытаюсь настроить связку postfix, dovecot, ошибка SASL"
Отправлено bonus , 23-Май-10 14:44 
>Пытаюсь настроить связку postfix, dovecot, postfixadmin, mysql.
>Пересобрал postfix с такими опциями:
>make makefiles 'CCARGS=-DDEF_SERVER_SASL_TYPE=\"dovecot\" -DHAS_MYSQL -I/usr/local/include/>mysql -DUSE_SASL_AUTH -I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/lib/mysql ->lmysqlclient -lz -lm -L/usr/local/lib -R/usr/local/lib -lsasl2'

Пробовал собрать postfix с этими опциями. После make makefiles выполняю make и получаю
gcc: AUXLIBS=-L/usr/local/lib/mysql: No such file or directory
*** Error code 1

Stop in /usr/src/postfix-2.7.0/src/util.
*** Error code 1

Stop in /usr/src/postfix-2.7.0.

Библиотеки мускула лежат именно в /usr/local/lib/mysql
fbsd8# cd /usr/local/lib/mysql
fbsd8# ls
libdbug.a               libmyisammrg.a          libmysqlclient.so       libmysqlclient_r.la     libmysqld.a             libvio.a
libheap.a               libmysqlclient.a        libmysqlclient.so.15    libmysqlclient_r.so     libmystrings.a
libmyisam.a             libmysqlclient.la       libmysqlclient_r.a      libmysqlclient_r.so.15  libmysys.a

Кто-нибудь знает почему я вижу библиотеки мускула, а gcc их не видит?