Непонятки с Postfix-dovecot, jaged, 26-Авг-13, 10:48 [смотреть все]Добрый день. Решил поставить постфикс+довекот вместо мдемона, несколько дней уже с ним воюю, в итоге навертел чего-то что сам уже объяснить не могу как работает. Запутался уже окончательно. ЧТо хотел - постфикс принимает почту и кладет ее в /var/mail/virtual-mailboxes/Имя_ящика довекот отдает из этого же места.Учетки хранятся в базе постгрес, список ящиков в файле/etc/postfix/virtual_mailboxes_recepients (Нужно это или нет, в инструкциях не объяснялось) ++++main.cf queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/db/postfix mail_owner = postfix myhostname = mail.sterh.local mydomain = sterh.local myorigin = $mydomain proxy_interfaces = 192.168.11.200 mydestination = $mydomain, $myhostname unknown_local_recipient_reject_code = 550 mynetworks_style = host mynetworks = 192.168.11.0/24, 127.0.0.0/8 mail_spool_directory = /var/mail smtpd_banner = $myhostname ESMTP $mail_name debug_peer_level = 5 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = maildrop html_directory = /usr/share/doc/postfix manpage_directory = /usr/share/man sample_directory = /etc/postfix readme_directory = /usr/share/doc/postfix inet_protocols = ipv4 smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot virtual_transport = dovecot virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps virtual_mailbox_domains = hash:/etc/postfix/virtual_mailbox_domains virtual_uid_maps = static:1000 virtual_gid_maps = static:1000 virtual_mailbox_base = /var/spool/virtual_mailboxes virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_recipients ++++dovecot.conf protocols = imap pop3 base_dir = /var/run/dovecot/ instance_name = dovecot login_greeting = Dovecot ready. #login_access_sockets = #auth_proxy_self = #verbose_proctitle = no shutdown_clients = yes dict { #quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext #expire = sqlite:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext } log_path = /var/log/dovecot.log mail_debug = yes auth_verbose = yes auth_debug = yes auth_debug_passwords = yes ssl = no #disable_plaintext_auth = no #mail_home = /home/vmail/%d/%n #mail_location = maildir:~/Maildir auth_mechanisms = PLAIN LOGIN NTLM service auth { unix_listener /var/spool/postfix/private/auth { user = postfix group = postfix mode = 0660 } }
passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf driver = sql } userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf driver = sql } login_greeting = Welcome to IMAP/POP3 server Sterh. mail_location = /var/mail/virtual-mailboxes/%u disable_plaintext_auth = no mail_uid = 1000 mail_gid = 1000 auth_socket_path = /var/run/dovecot/auth-userdb +++virtual_mailbox_recipients
jp@sterh.info jp/ test2@sterh.info test2/ test@sterh.info test/ vs@sterh.info vs/ Ошибки по поорядку исправлял, но вот столкнулся с этой, и не пойму что ему надо:
ошибка в довекот.лог Aug 26 10:45:06 auth: Debug: auth client connected (pid=0) Aug 26 10:45:06 auth: Debug: client in: AUTH 1 NTLM service=smtp nologin lip=192.168.11.111 rip=192.168.11.124 Aug 26 10:45:06 auth: Debug: client passdb out: CONT 1 Aug 26 10:45:06 auth: Debug: client in: CONT 1 TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw== (previous base64 data may contain sensitive data) Aug 26 10:45:06 auth: Debug: client passdb out: CONT 1 TlRMTVNTUAACAAAAIAAgADAAAAAFAooAzTba4hmjcqQAAAAAAAAAACgAKABQAAAAZgByAGUAZQAuAHMAdABlAHIAaAAuAGwAbwBjAGEAbAADACAAZgByAGUAZQAuAHMAdABlAHIAaAAuAGwAbwBjAGEAbAAAAAAA Aug 26 10:45:06 auth: Debug: client in: CONT 1 TlRMTVNTUAADAAAAGAAYAIwAAADEAMQApAAAAAAAAABYAAAAIAAgAFgAAAAUABQAeAAAAAAAAABoAQAABQKIAgYBsR0AAAAPdytbC3nhLy2VnQUpA7A8/nQAZQBzAHQAMQBAAHMAdABlAHIAaAAuAGkAbgBmAG8AUwBIAEEARABPAFcALQBNAE8AQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2JXdReAOi6N/glDsrj/rIAQEAAAAAAABjp6LMJ6LOAdQHOUEYS1c8AAAAAAMAIABmAHIAZQBlAC4AcwB0AGUAcgBoAC4AbABvAGMAYQBsAAgAMAAwAAAAAAAAAAAAAAAAMAAANLNBgrBXlBL1nNV3WIo4npKk2puwlnLWHthyVW05WWkKABAAAAAAAAAAAAAAAAAAAAAAAAkAIAB0AGUAcwB0ADEAQABzAHQAZQByAGgALgBpAG4AZgBvAAAAAAAAAAAA (previ Aug 26 10:45:06 auth: Debug: ous base64 data may contain sensitive data) Aug 26 10:45:06 auth: Debug: sql(test1@sterh.info,192.168.11.124): query: SELECT username, domain, password FROM users WHERE username = 'test1' AND domain = 'sterh.info' Aug 26 10:45:06 auth: Info: password(test1@sterh.info,192.168.11.124): Requested NTLM scheme, but we have only MD5 (input: 9d1337eb9fafe68104021e88c0f49a68) Aug 26 10:45:06 auth: Debug: sql(test1@sterh.info,192.168.11.124): query: SELECT username, domain, password FROM users WHERE username = 'test1' AND domain = 'sterh.info' Aug 26 10:45:06 auth: Error: sql(test1@sterh.info,192.168.11.124): Multiple password values not supported Aug 26 10:45:06 auth: Panic: file passdb-sql.c: line 120 (sql_query_callback): assertion failed: (password == NULL || scheme != NULL) Aug 26 10:45:06 auth: Fatal: master: service(auth): child 904 killed with signal 6 (core not dumped - set service auth { drop_priv_before_exec=yes }) Aug 26 10:45:07 auth: Debug: Loading modules from directory: /usr/local/lib/dovecot/auth Aug 26 10:45:07 auth: Debug: Read auth token secret from /var/run/dovecot//auth-token-secret.dat Aug 26 10:45:07 auth: Debug: auth client connected (pid=0) Aug 26 10:45:07 auth: Debug: client in: AUTH 3 PLAIN service=smtp nologin lip=192.168.11.111 rip=192.168.11.124 Aug 26 10:45:07 auth: Debug: client passdb out: CONT 3 Aug 26 10:45:07 auth: Debug: client in: CONT 3 AHRlc3QxQHN0ZXJoLmluZm8ARGZoZGZoMjM= (previous base64 data may contain sensitive data) Aug 26 10:45:07 auth: Debug: sql(test1@sterh.info,192.168.11.124): query: SELECT username, domain, password FROM users WHERE username = 'test1' AND domain = 'sterh.info' Aug 26 10:45:07 auth: Debug: client passdb out: OK 3 user=test1@sterh.info Aug 26 10:45:07 auth: Debug: master in: USER 1 jp@sterh.info service=lda Aug 26 10:45:07 auth: Debug: sql(jp@sterh.info): SELECT home, uid, gid FROM users WHERE username = 'jp' AND domain = 'sterh.info' Aug 26 10:45:07 auth: Error: userdb(jp@sterh.info): client doesn't have lookup permissions for this user: userdb uid (1000) doesn't match peer uid (65534) (to bypass this check, set: service auth { unix_listener /var/run/dovecot/auth-userdb { mode=0777 } }) Aug 26 10:45:07 auth: Debug: userdb out: FAIL 1 Aug 26 10:45:07 lda: Error: user jp@sterh.info: Auth USER lookup failed Aug 26 10:45:07 lda: Debug: auth input: Aug 26 10:45:07 lda: Fatal: Internal error occurred. Refer to server log for more information.
|
- Непонятки с Postfix-dovecot, reader, 13:06 , 26-Авг-13 (1)
- Непонятки с Postfix-dovecot, jaged, 14:05 , 26-Авг-13 (2)
>>[оверквотинг удален] > а если сделать что предлагается? >> Aug 26 10:45:07 auth: Debug: userdb out: FAIL 1 >> Aug 26 10:45:07 lda: Error: user jp@sterh.info: Auth USER lookup failed >> Aug 26 10:45:07 lda: Debug: auth input: >> Aug 26 10:45:07 lda: Fatal: Internal error occurred. Refer to server log >> for more information.Так вроде и смотрю лог, если конечно он не предлагает смотреть какой то другой лог вместо dovecot.log c этой проблемой разобрался (стоял юзер novody в Master.cf ) поставил нужного - стало ок. немного еще правок и почта стала и сохранятся и отдаваться... - Непонятки с Postfix-dovecot, KomaLex, 04:15 , 22-Янв-15 (10)
- Непонятки с Postfix-dovecot, Oinari, 14:50 , 26-Авг-13 (3)
- Непонятки с Postfix-dovecot, jaged, 15:48 , 29-Авг-13 (4)
> Может посмотрите в сторону postfixadmin, раз уж с БД (PostgreSQL поддерживается) работаете? > Не придётся править данные отдельно в базе и в virtual_mailboxes_recepients.Смотрю в эту сторону, но пока не докрутил его, постепенно двигаюсь) ПРоблема вылезла как всегда где не ожидал - клиенты могут отправлять почту с неверными паролями, причем в логах пишется - Aug 29 15:39:19 auth: Info: sql(jp@sth.ru,192.168.11.124): Password mismatch но письмо все равно кладется адресату в ящик Aug 29 15:39:27 lda(test1@sth.ru): Info: msgid=<1641074847.20130829153942@sth.ru>: saved mail to INBOX Рестрикшенами в main.cf добился чтоб отбивало, но помимо неавторизованных клиентов - стало отбивать и другие сервера (отключил):( в каком месте докрутить? сейчас Рестрикшены такие: smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname полный лог довекота:
Aug 29 15:39:19 auth: Debug: auth client connected (pid=0) Aug 29 15:39:19 auth: Debug: client in: AUTH 1 PLAIN service=smtp nologin lip=192.168.11.111 rip=192.168.11.124 Aug 29 15:39:19 auth: Debug: client passdb out: CONT 1 Aug 29 15:39:19 auth: Debug: client in: CONT 1 AGpwQHN0ZXJoLmluZm8ARGZoZGZoMTIzMTIz (previous base64 data may contain sensitive data) Aug 29 15:39:19 auth: Debug: sql(jp@sth.ru,192.168.11.124): query: SELECT username, domain, password FROM users WHERE username = 'jp' AND domain = 'sth.ru' Aug 29 15:39:19 auth: Info: sql(jp@sth.ru,192.168.11.124): Password mismatch Aug 29 15:39:19 auth: Debug: sql(jp@sth.ru,192.168.11.124): MD5(Dfhdfh123123) != '9d1337eb9fafe68104021e88c0f49a68' Aug 29 15:39:21 auth: Debug: client passdb out: FAIL 1 user=jp@sth.ru Aug 29 15:39:21 auth: Debug: client in: AUTH 2 LOGIN service=smtp nologin lip=192.168.11.111 rip=192.168.11.124 Aug 29 15:39:25 auth: Debug: client passdb out: CONT 2 VXNlcm5hbWU6 Aug 29 15:39:25 auth: Debug: client in: CONT 2 anBAc3RlcmguaW5mbw== (previous base64 data may contain sensitive data) Aug 29 15:39:25 auth: Debug: client passdb out: CONT 2 UGFzc3dvcmQ6 Aug 29 15:39:25 auth: Debug: client in: CONT 2 RGZoZGZoMTIzMTIz (previous base64 data may contain sensitive data) Aug 29 15:39:25 auth: Debug: sql(jp@sth.ru,192.168.11.124): query: SELECT username, domain, password FROM users WHERE username = 'jp' AND domain = 'sth.ru' Aug 29 15:39:25 auth: Info: sql(jp@sth.ru,192.168.11.124): Password mismatch Aug 29 15:39:25 auth: Debug: sql(jp@sth.ru,192.168.11.124): MD5(Dfhdfh123123) != '9d1337eb9fafe68104021e88c0f49a68' Aug 29 15:39:27 auth: Debug: client passdb out: FAIL 2 user=jp@sth.ru Aug 29 15:39:27 auth: Debug: master in: USER 1 test1@sth.ru service=lda Aug 29 15:39:27 auth: Debug: sql(test1@sth.ru): SELECT home, uid, gid FROM users WHERE username = 'test1' AND domain = 'sth.ru' Aug 29 15:39:27 auth: Debug: userdb out: USER 1 test1@sth.ru home=/var/mail uid=1000 gid=1000 Aug 29 15:39:27 lda: Debug: auth input: test1@sth.ru home=/var/mail uid=1000 gid=1000 Aug 29 15:39:27 lda(test1@sth.ru): Debug: Effective uid=1000, gid=1000, home=/var/mail Aug 29 15:39:27 lda(test1@sth.ru): Debug: mbox: INBOX defaulted to /var/mail/virtual-mailboxes/test1@sth.ru/inbox Aug 29 15:39:27 lda(test1@sth.ru): Debug: fs: root=/var/mail/virtual-mailboxes/test1@sth.ru, index=, indexpvt=, control=, inbox=/var/mail/virtual-mailboxes/test1@sth.ru/inbox, alt= Aug 29 15:39:27 lda(test1@sth.ru): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt= Aug 29 15:39:27 lda(test1@sth.ru): Debug: Destination address: test1@sth.ru (source: user@hostname) Aug 29 15:39:27 lda(test1@sth.ru): Info: msgid=<1641074847.20130829153942@sth.ru>: saved mail to INBOX
- Непонятки с Postfix-dovecot, Ano, 17:32 , 29-Авг-13 (5)
- Непонятки с Postfix-dovecot, jaged, 09:01 , 30-Авг-13 (6)
>[оверквотинг удален] >> index=, indexpvt=, control=, inbox=/var/mail/virtual-mailboxes/test1@sth.ru/inbox, >> alt= >> Aug 29 15:39:27 lda(test1@sth.ru): Debug: none: root=, index=, indexpvt=, control=, inbox=, >> alt= >> Aug 29 15:39:27 lda(test1@sth.ru): Debug: Destination address: test1@sth.ru (source: >> user@hostname) >> Aug 29 15:39:27 lda(test1@sth.ru): Info: msgid=<1641074847.20130829153942@sth.ru>: >> saved mail to INBOX > Здесь убрать свою подсеть, тогда клиентам придется проходить SMTP авторизацию: > mynetworks = 192.168.11.0/24, 127.0.0.0/8 уже убрано, клиенты проходит авторизацию, но результат ее непрохождения не влияет на принятие почты... попробовал отправить с кривым паролем в другой домен, почта не ушла, (релей аксес денид). ПОлучается что почтовик позволяет не зависимо от результата авторизации принимать почту в свой домен, а вот для отправки в другой - нет... По идее разумно, но что-то я в сомненьях. mynetworks_style = host mynetworks = 192.168.11.111(ип почтовика), 127.0.0.0/8
- Непонятки с Postfix-dovecot, jaged, 12:03 , 30-Авг-13 (7)
>[оверквотинг удален] >> Здесь убрать свою подсеть, тогда клиентам придется проходить SMTP авторизацию: >> mynetworks = 192.168.11.0/24, 127.0.0.0/8 > уже убрано, клиенты проходит авторизацию, но результат ее непрохождения не влияет на > принятие почты... попробовал отправить с кривым паролем в другой домен, почта > не ушла, (релей аксес денид). ПОлучается что почтовик позволяет не зависимо > от результата авторизации принимать почту в свой домен, а вот для > отправки в другой - нет... > По идее разумно, но что-то я в сомненьях. > mynetworks_style = host > mynetworks = 192.168.11.111(ип почтовика), 127.0.0.0/8 и еще трабла начал переводить с файла virtual_mailboxes_maps в базу Pgsql main.cf virtual_mailbox_maps = pgsql:/etc/postfix/sql/virtual_mailbox_maps virtual_mailbox_maps user = mail password = xxxxxxxxx host = localhost dbname = mail query = select CONCAT (username,'@',domain)as user from users where username='%s' and active='Y'
в базе скрипт отрабатывает четко выдает username@domain например - test1@sth.ru
но при отправке ошибка - <test1@sth.ru>: Recipient address rejected: User unknown; думаю запрос нужен нужен другого вида, но какого ? что должен возвращать скл-запрос ? пробовал чтоб возвращал username@domain и директорию - результат тот же.
- Непонятки с Postfix-dovecot, jaged, 12:09 , 30-Авг-13 (8)
>[оверквотинг удален] > user = mail > password = xxxxxxxxx > host = localhost > dbname = mail > query = select CONCAT (username,'@',domain)as user from users where username='%s' and active='Y' > в базе скрипт отрабатывает четко выдает username@domain например - test1@sth.ru > но при отправке ошибка - <test1@sth.ru>: Recipient address rejected: User unknown; > думаю запрос нужен нужен другого вида, но какого ? что должен возвращать > скл-запрос ? > пробовал чтоб возвращал username@domain и директорию - результат тот же.
|