The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Непонятки с 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 и директорию - результат тот же.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру