LINUX.ORG.RU
ФорумAdmin

Опять про SASL postfix+dovecot

 , ,


1

1

Помогите спецы САСЛ'a)) Весь мозг сломал, не могу заставить работать SASL на Postfix 2.11.0 и Dovecot 2.2.9

Лог получается такой при попытке приема почты


Mar 14 16:41:28 mailserver postfix/smtpd[24977]: xsasl_dovecot_server_create: SASL service=smtp, realm=(null)
Mar 14 16:41:28 mailserver postfix/smtpd[24977]: name_mask: noanonymous
Mar 14 16:41:28 mailserver postfix/smtpd[24977]: xsasl_dovecot_server_connect: Connecting
Mar 14 16:41:38 mailserver postfix/smtpd[24977]: xsasl_dovecot_server_connect: auth reply: status
Mar 14 16:41:48 mailserver postfix/smtpd[24977]: fatal: no SASL authentication mechanisms
Mar 14 16:41:48 mailserver postfix/pipe[24980]: warning: unexpected end-of-input from dovecot socket while reading input attribute name
Mar 14 16:41:48 mailserver postfix/pipe[24980]: warning: deliver_request_get: error receiving common attributes
Mar 14 16:41:49 mailserver postfix/master[24972]: warning: process /usr/lib/postfix/smtpd pid 24977 exit status 1
Mar 14 16:41:49 mailserver postfix/master[24972]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

master.cf

smtp      inet  n       -       -       -       -       smtpd -v

smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

#628       inet  n       -       -       -       -       qmqpd
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
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
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
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}

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

main.cf

debug_peer_list = domain.com
debug_peer_level = 2

alias_maps = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
alias_database = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf 

## определение transport ##
transport_maps = mysql:/etc/postfix/mysql-transport.cf

smtpd_banner = $myhostname ESMTP
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
queue_directory = /var/spool/postfix
readme_directory = no

# Настройка SMTP-клиента, отправляющего почту
smtp_tls_loglevel = 2
smtp_tls_CApath = /etc/ssl/certs

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/mail2.domain.com.public.pem
smtpd_tls_key_file = /etc/ssl/mail2.domain.com.pem
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_CApath = /etc/ssl/certs
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain
#alias_maps = hash:/etc/aliases
#alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
mydestination = localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot
#smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
#smtpd_sasl_local_domain = 
#broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,permit_sasl_authenticated,permit
smtpd_sender_restrictions = reject_unknown_sender_domain
#mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"
smtp_use_tls = yes
#smtpd_tls_received_header = yes
#smtpd_tls_mandatory_protocols = SSLv3, TLSv1
#smtpd_tls_mandatory_ciphers = medium
#smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_uid_maps = static:999
virtual_gid_maps = static:999
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
local_recipient_maps =
virtual_mailbox_base = /home/mail
virtual_transport = $transport_maps
default_destination_recipient_limit = 1
#dovecot_destination_recipient_limit = 1


dovecot.conf

mail_uid = vmail
mail_gid = vmail

!include_try /usr/share/dovecot/protocols.d/*.protocol

dict {
}

!include conf.d/*.conf

!include_try local.conf

10-auth.conf

disable_plaintext_auth = yes
auth_mechanisms = plain login cram-md5
!include auth-sql.conf.ext

10-master.conf

service imap-login {
  inet_listener imap {
  }
  inet_listener imaps {
  }

}

service pop3-login {
  inet_listener pop3 {
  }
  inet_listener pop3s {
  }
}

service lmtp {
  unix_listener lmtp {
  }

}

service imap {

}

service pop3 {
}

service auth {
               unix_listener /var/run/dovecot/auth-master {
               mode = 0660
               user = vmail
               group = vmail
               }
               unix_listener /var/spool/postfix/private/dovecot {
               mode = 0660
               user = postfix
               group = postfix
               }
  unix_listener auth-userdb {
  }


}

service auth-worker {
}

service dict {
  unix_listener dict {
    mode = 0600
    user = vmail
    group = vmail
  }
}

TheZ ()
Ответ на: dovecot.conf от TheZ

unix_listener /var/spool/postfix/private/dovecot {
mode = 0660
user = postfix
group = postfix

unix_listener /var/spool/postfix/private/auth {

vlb ★★★ ()
Ответ на: комментарий от vlb

а у меня нету там /var/spool/postfix/private/auth :)

ls -la /var/spool/postfix/private
total 8
drwx------  2 postfix root    4096 Mar 14 20:27 .
drwxr-xr-x 20 root    root    4096 Feb 19 19:17 ..
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 anvil
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 bounce
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 bsmtp
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 defer
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 discard
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 dovecot
srw-rw----  1 postfix postfix    0 Mar  1 14:03 dovecot-auth
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 error
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 ifmail
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 lmtp
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 local
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 maildrop
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 mailman
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 proxymap
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 proxywrite
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 relay
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 retry
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 rewrite
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 scache
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 scalemail-backend
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 smtp
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 tlsmgr
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 trace
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 uucp
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 verify
srw-rw-rw-  1 postfix postfix    0 Mar 14 20:27 virtual
TheZ ()
Ответ на: комментарий от vlb

Я понял кажется в чем дело, у меня небыло указано в конфигах Dovecot

auth default {
                    mechanisms = plain login cram-md5

                    passdb sql {
                        args = /etc/dovecot/dovecot-sql.conf
                    }
                    userdb passwd {
                    }

                    userdb sql {
                        args = /etc/dovecot/dovecot-sql.conf
                    }

                    socket listen {
                        master {
                                path = /var/run/dovecot/auth-master
                                mode = 0660
                                user = dovecot
                                group = vmail
                        }
                        client {
#                                path = /var/run/dovecot/auth-client
                                path = /var/spool/postfix/private/auth
                                mode = 0660
                                user = postfix
                                group = postfix
                        }
                    }
                }

Но вчера я походу что-то перемудрил с ним, и он перестал стартовать, даже в логи ничего не пишет гад

TheZ ()
Ответ на: комментарий от vlb

Еее! Заработало, спасибо за подсказку :) Запутался я с ними совсем) Теперь в логах присутствует такая запись

Requested CRAM-MD5 scheme, but we have only MD5

При этом в conf.d/10-auth.conf:auth_mechanisms = plain login cram-md5 А пароли в базе mysql просто в MD5

TheZ ()
Ответ на: комментарий от vlb

Понял! А как быть в случае чтобы пароли в базе лежали как минимум в md5 и при подключении они более-менее безопасно передавались?

TheZ ()
Ответ на: комментарий от vlb

Почтовые программы, роундкуб, и всякие скрипты отправляющие почту с сайта. Сделал с digest-md5 вроде работает нормально. Щас не пойму почему, но почтовый сервер не дописывает заголовки «Date:» в хеадеры. От чего отправляемая почта может не сортироваться по дате получения у получателя в почтовой программе..

TheZ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.