LINUX.ORG.RU

Postfix не получается аутентифицироваться

 ,


0

1

Добрый день, не получается произвести аутентификаю на smtp сервере, на который установлен postfix, хотя пароль и логин правильные. Пытался добавить нового пользователя, но всё равно не получается подключиться. Подскажите, в чем может быть проблема?

Для того чтобы работала функция sasl аутентификации устанавливал libsasl2-modules, может быть проблема в из-за этого.

Могу показать конфиги.

Заранее спасибо

Вот лог:

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 220 123.ru ESMTP Postfix (Ubuntu)

Apr  8 07:06:46 postfix/smtpd[600]: xsasl_cyrus_server_create: SASL service=smtp, realm=smtpcollapse.ru

Apr  8 07:06:46 postfix/smtpd[600]: name_mask: noanonymous

Apr  8 07:06:46 postfix/smtpd[600]: < unknown[]: EHLO []

Apr  8 07:06:46 postfix/smtpd[600]: match_list_match: unknown: no match

Apr  8 07:06:46 postfix/smtpd[600]: match_list_match: 1.1.3.1: no match

Apr  8 07:06:46 postfix/smtpd[600]: > unknown: 250-123.ru

Apr  8 07:06:46 postfix/smtpd[600]: > unknown: 250-PIPELINING

Apr  8 07:06:46 postfix/smtpd[600]: > unknown: 250-SIZE 10240000

Apr  8 07:06:46 postfix/smtpd[600]: > unknown: 250-VRFY

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250-ETRN

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250-STARTTLS

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250-AUTH DIGEST-MD5 CRAM-MD5 NTLM PLAIN LOGIN

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250-AUTH=DIGEST-MD5 CRAM-MD5 NTLM PLAIN LOGIN

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250-ENHANCEDSTATUSCODES

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250-8BITMIME

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 250 DSN

Apr  8 07:06:46 postfix/smtpd[600]: < unknown[]: AUTH LOGIN

Apr  8 07:06:46 postfix/smtpd[600]: xsasl_cyrus_server_first: sasl_method LOGIN

Apr  8 07:06:46 postfix/smtpd[600]: xsasl_cyrus_server_auth_response: uncoded server challenge: Username:

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 334 VXNlcm5hbWU6

Apr  8 07:06:46 postfix/smtpd[600]: < unknown[]: YWRtaW4=

Apr  8 07:06:46 postfix/smtpd[600]: xsasl_cyrus_server_next: 
decoded response: admin

Apr  8 07:06:46 postfix/smtpd[600]: xsasl_cyrus_server_auth_response: uncoded server challenge: 
Password:

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 334 UGFzc3dvcmQ6

Apr  8 07:06:46 postfix/smtpd[600]: < unknown[]: ZnR5MTU2

Apr  8 07:06:46 postfix/smtpd[600]: xsasl_cyrus_server_next: decoded response: 123123

Apr  8 07:06:46 postfix/smtpd[600]: warning: unknown[]: SASL LOGIN authentication failed: authentication failure

Apr  8 07:06:46 postfix/smtpd[600]: > unknown[]: 535 5.7.8 Error: authentication failed: authentication failure

Apr  8 07:06:46 postfix/smtpd[600]: smtp_get: EOF

Ответ на: комментарий от vladevstrat

Я бы отказался от cyrus в пользу dovecot, хотя все имеет право на жизнь. но cyrus уж слишком долбанутый по сравнению логичным и прозрачным dovecot.

Конфиги надо бы посмотреть.

constin ★★★★ ()

В сборке iredmail есть прикол. Может и у вас тоже. При аутификации в настройках почтового клиента ( и через браузер) имя узера должно быть полным, типа: user1@mydomen.ru а не просто user1.

Bootmen ☆☆☆ ()
Ответ на: комментарий от constin

Сейчас я все переустановил, вот такая ошибка:

Apr  9 05:57:30 postfix/smtpd[646]: warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms
Apr  9 05:57:30 postfix/smtpd[646]: fatal: no SASL authentication mechanisms

Вот такое конфиг:

#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
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

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = smtpcollapse.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localdomain, localhost, localhost.localdomain, localhost
relayhost =
mynetworks = 0.0.0.0/0
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
   permit_sasl_authenticated,
   permit_mynetworks,
   check_relay_domains

Но когда устанавливаю:

libsasl2-modules

Появляется ошибка:

535 5.7.8 Error: authentication failed: authentication failure
vladevstrat ()
Ответ на: комментарий от Bootmen

В сборке iredmail есть прикол. Может и у вас тоже. При аутификации в настройках почтового клиента ( и через браузер) имя узера должно быть полным, типа: user1@mydomen.ru а не просто user1.

Я считаю, что это как раз норма. А «прикол» это когда авторизация идет user1 без домена. В системе же обычно больше, чем один домен.

Ну и еще всякие корявые комбайны, которые используют локальных юзеров, вместо виртуальных тоже любят авторизацию по user1

constin ★★★★ ()
Последнее исправление: constin (всего исправлений: 1)
Ответ на: комментарий от constin

Не много не понял в каком смысле: «так у вас в конфиге не указано, как postfix должен авторизовывать»?

У меня, например, стоит:

smtpd_sasl_auth_enable = yes

Вот master.cf

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master" or
# on-line: http://www.postfix.org/master.5.html).
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================
smtp      inet  n       -       y       -       -       smtpd
#smtp      inet  n       -       y       -       1       postscreen
#smtpd     pass  -       -       y       -       -       smtpd
#dnsblog   unix  -       -       y       -       0       dnsblog
#tlsproxy  unix  -       -       y       -       0       tlsproxy
#submission inet n       -       y       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       y       -       -       smtpd
#  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       y       -       -       qmqpd
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
vladevstrat ()
Ответ на: комментарий от vladevstrat

Не много не понял в каком смысле: «так у вас в конфиге не указано, как postfix должен авторизовывать»?

У меня, например, стоит:

smtpd_sasl_auth_enable = yes

Это у вас стоит, что postfix разрешает аутификацию через sasl, но у вас не указано, как он это должен делать. Те он вообще не в курсе, где пользователи у него лежат: локально/в sql/в ldap и какой механизм и как ему использовать.

В вашем случае вы используете библиотеку от cyrus тогда вам

smtpd_sasl_path = smtpd

и далее надо написать коннектор для библиотеки, куда все таки обращаться, чтобы получить юзеров.

Еще раз советую взглянуть сюда:

http://www.postfix.org/SASL_README.html

И если вы на этапе «я просто тестирую», то подумайте о том нужно ли вам , чтобы пользователи получали почту. Потому что postfix это MTA , он не занимается хранением и отдачей писем, как и любой другой почтовый сервер. Если нужно, то лучше всего делайте связку postix+dovecot и забудьте про libsasl2. Dovecot предоставит для постфикса авторизацию. Те Postfix будет спрашивать у Dovecot , правильный ли юзер и пароль и коннекте по smtp. Это чтобы два раза не вставать, потому что dovecot отвечает за imap/pop3 и там тоже аутифицирует юзеров.

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

Причем, судя по предыдущим постам, dovecot у вас уже стоит. Тем более не надо устраивать кашу.

Конфига postfix неполная.

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

Я считаю, что это как раз норма. А «прикол» это когда >авторизация идет user1 без домена. В системе же обычно больше, >чем один домен.

Ну будем мой mta считать корявым. ::) У меня был раньше постфикс с системными узерами. При переходе на сборку оказалось в LDAP хранятся полные записи узеров user@domain.ru. Мне показалось это неудобным, в плане беготни по узерам и исправлением их почтовых клиентов. Сделал просто по имени... Домен один.

Bootmen ☆☆☆ ()
Последнее исправление: Bootmen (всего исправлений: 1)
Ответ на: комментарий от constin

Разобрался с этой проблемой. Вы можете подсказать как сделать, чтобы postfix не отправлял письма для не авторизованных пользователей или отправлял, но только по localhost?

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

Разобрался с этой проблемой. Вы можете подсказать как сделать, чтобы postfix не отправлял письма для не авторизованных пользователей или отправлял, но только по localhost?

Конечно, для начала надо выучить вот эту таблицу:

telnet 192.168.0.2 25                           # Comments
Trying 192.168.0.2...
Connected to 192.168.0.2 (192.168.0.2).
Escape character is '^]'.
220 mail.example.com ESMTP Postfix              # <-smtp_client_restrictions
HELO mail.example.com                           # <-smtp_helo_restrictions
250 mail.example.com                            #
MAIL FROM:<ned@example.com>                     # <-smtp_sender_restrictions
250 2.1.0 Ok                                    #
RCPT TO:<ned@example.com>                       # <-smtp_recipient_restrictions
250 2.1.5 Ok                                    #
DATA                                            # <-smtp_data_restrictions
354 End data with <CR><LF>.<CR><LF>             #
To:<ned@example.com>                            # <-header_checks
From:<ned@example.com>                          #
Subject:SMTP Test                               #
This is a test message                          # <-body_checks
.                                               #
250 2.0.0 Ok: queued as 301AE20034
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

и ну дальше почти в каждом рестрикшене перед всеми правилами пишем:

smtpd_recipient_restrictions = 
    permit_sasl_authenticated # пускаем авторизованных
    permit_mynetworks  # пускаем тех, что есть в списке mynetworks
     ....пошли остальные правила
    reject_unauth_destination #и вот те, кто не авторизовался идут в жопу

smtpd_helo_restrictions = 
    permit_sasl_authenticated 
    permit_mynetworks
    ... пошли остальные правила

smtpd_sender_restrictions =
    permit_sasl_authenticated 
    permit_mynetworks
     .....пошли остальные правила


    
и так далее


ну и укажем, что у нас в доверенных сетях localhost
mynetworks = 127.0.0.0/8 

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