LINUX.ORG.RU
ФорумAdmin

dovecot+postfix pop3

 , , , ,


0

1

Здравствуйте уважаемые Гуру. В настройках почтовых серверов знания слабые, поэтому за неправильное изложение вопроса, сильно не пинайте.

Установил iRedMail настроил MX-записи, почтовые ящики и пр. С Web интерефейса (RoundCube) все работает на ура, письма отправляются принимаються, и все вроди как ОК. Но после настройки почтовых клиентов: типа TheBat, KMail столкнулся с проблемой получения писем с вложениями. Сервер в логи об ошибках ничего не пишет, The Bat говорит что получил ответ (UIDL, RETR 2) и отваливается. KMail вообще ничего не вываливает, просто сообщает что новых сообщений не обнаружено. Если письма без вложений, то все как бы и нормально, но стоит прикрутить файл более 100Kb почтовые клиенты встают в ступор. Причем не работает ни по IMAP, ни POP3 протоколам, а RoundCube справляется с любыми письмами.

Ограничения на принимаемые сообщения нигде не встречал в конфигурациях dovecot. Если не труджно и есть какие нибудь соображения по причинам «зависания» почтовых клиентов, буду благодарен за направление на путь истинный.

В клиентах Sylpheed и Claws-mail есть детальный лог диалога с сервером. Попробуйте через них и скиньте сюда этот лог.

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

Как ни странно но, с claws mail все работает нормально. Никаких ошибок, все письма доставляются. Теперь я вообще впал в ступор. Настройки одинаковые.

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

sylpheed

А вот с другого IP адреса вот такая проблема:

11:49:04] POP3< +OK Logged in.
[11:49:04] POP3> STAT
[11:49:04] POP3< +OK 10 44276519
[11:49:04] POP3> UIDL
[11:49:04] POP3< +OK
[11:49:04] POP3> LIST
[11:49:04] POP3< +OK 10 messages:
[11:49:04] POP3> RETR 1
[11:49:04] POP3< +OK 2597 octets
[11:49:04] POP3> RETR 2
[11:49:04] POP3< +OK 2586 octets
[11:49:04] POP3> RETR 3
[11:49:04] POP3< +OK 3602 octets
[11:49:04] POP3> RETR 4
[11:49:04] POP3< +OK 1300 octets
[11:49:04] POP3> RETR 5
[11:49:04] POP3< +OK 58720 octets
** LibSylph-WARNING: SSL_read() returned error 1, ret = -1

** LibSylph-WARNING: session_read_data_as_file_cb: sock_read: Input/output error

Насколько понимаю проблема в рукопожатии, возможен ли такой вариант что провайдер блокироует шифрованные соединения STARTLS?

И что самое интересное, ошибка возникает именно на письме с вложениями. Хотя с другого ip все проходит норм.

drodman ()
Ответ на: sylpheed от drodman

Кидайте конфигурацию dovecot.

trancefer ★★ ()
Ответ на: комментарий от trancefer
# Listen addresses.
#   - '*' means all available IPv4 addresses.
#   - '[::]' means all available IPv6 addresses.
# Listen on all available addresses by default
listen = * [::]

#base_dir = /var/run/dovecot
mail_plugins = quota mailbox_alias acl

# Enabled mail protocols.
protocols = pop3 imap sieve lmtp

# User/group who owns the message files:
mail_uid = 2000
mail_gid = 2000

# Assign uid to virtual users.
first_valid_uid = 2000
last_valid_uid = 2000

# Logging. Reference: http://wiki2.dovecot.org/Logging
log_path = /var/log/dovecot.log
mail_debug = yes
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
# Possible values: no, plain, sha1.
auth_verbose_passwords = no

# SSL: Global settings.
# Refer to wiki site for per protocol, ip, server name SSL settings:
# http://wiki2.dovecot.org/SSL/DovecotConfiguration
ssl_protocols = !SSLv2 !SSLv3
ssl = required
verbose_ssl = no
#ssl_ca =</path/to/ca
ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

# With disable_plaintext_auth=yes AND ssl=required, STARTTLS is mandatory.
# Set disable_plaintext_auth=no AND ssl=yes to allow plain password transmitted
# insecurely.
disable_plaintext_auth = yes
# Allow plain text password per IP address/net
#remote 192.168.0.0/24 {
#   disable_plaintext_auth = no
#}

# Mail location and mailbox format.
mail_location = maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/

# Authentication related settings.
# Append this domain name if client gives empty realm.
auth_default_realm = 

# Authentication mechanisms.
auth_mechanisms = PLAIN LOGIN

# Limits the number of users that can be logging in at the same time.
# Default is 100.
# Note: this value can be overrided by "process_limit =" in service protocol.
# e.g.
#       protocol imap-login {
#           ...
#           process_limit = 500
#       }
#default_process_limit = 100

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

# LMTP server (Local Mail Transfer Protocol).
# Reference: http://wiki2.dovecot.org/LMTP
service lmtp {
    user = vmail

    # For higher volume sites, it may be desirable to increase the number of
    # active listener processes. A range of 5 to 20 is probably good for most
    # sites.
    process_min_avail = 5

    # Logging.
    # Require 'info_log_path =' in 'protocol lmtp {}' block.
    executable = lmtp -L

    # Listening on socket file and TCP
    unix_listener /var/spool/postfix/private/dovecot-lmtp {
        user = postfix
        group = postfix
        mode = 0600
    }

    inet_listener lmtp {
        #address = 192.168.0.24 127.0.0.1 ::1
        port = 24
    }
}

# Virtual mail accounts.
userdb {
    args = /etc/dovecot/dovecot-ldap.conf
    driver = ldap
}
passdb {
    args = /etc/dovecot/dovecot-ldap.conf
    driver = ldap
}

# Master user.
# Master users are able to log in as other users. It's also possible to
# directly log in as any user using a master password, although this isn't
# recommended.
# Reference: http://wiki2.dovecot.org/Authentication/MasterUsers
auth_master_user_separator = *
passdb {
    driver = passwd-file
    args = /etc/dovecot/dovecot-master-users
    master = yes
}

plugin {
    auth_socket_path = /var/run/dovecot/auth-master

    quota = dict:user::proxy::quotadict
    quota_rule = *:storage=1G
    #quota_rule2 = *:messages=0
    #quota_rule3 = Trash:storage=1G
    #quota_rule4 = Junk:ignore

    # Quota warning.
    # If user suddenly receives a huge mail and the quota jumps from
    # 85% to 95%, only the 95% script is executed.
    quota_warning = storage=85%% quota-warning 85 %u
    quota_warning2 = storage=90%% quota-warning 90 %u
    quota_warning3 = storage=95%% quota-warning 95 %u

    # Plugin: expire.
    #expire = Trash 7 Trash/* 7 Junk 30
    #expire_dict = proxy::expire

    # ACL and share folder
    acl = vfile
    acl_shared_dict = proxy::acl

    # By default Dovecot doesn't allow using the IMAP "anyone" or
    # "authenticated" identifier, because it would be an easy way to spam
    # other users in the system. If you wish to allow it,
    #acl_anyone = allow

    # Pigeonhole managesieve service.
    # Reference: http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration
    # Per-user sieve settings.
    sieve_dir = /%Lh/sieve
    sieve = /%Lh/sieve/dovecot.sieve

    # Global sieve settings.
    sieve_global_dir = /var/vmail/sieve
    # Note: if user has personal sieve script, global sieve rules defined in
    #       sieve_default will be ignored. Please use sieve_before or
    #       sieve_after instead.
    #sieve_default =

    sieve_before = /var/vmail/sieve/dovecot.sieve
    #sieve_after =

    # Reference: http://wiki2.dovecot.org/Plugins/MailboxAlias
    mailbox_alias_old = Sent
    mailbox_alias_new = Sent Messages
    mailbox_alias_old2 = Sent
    mailbox_alias_new2 = Sent Items
}

service quota-warning {
    executable = script /usr/local/bin/dovecot-quota-warning.sh
    unix_listener quota-warning {
        user = vmail
        group = vmail
        mode = 0660
    }
}

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

dict {
    #expire = db:/var/lib/dovecot/expire/expire.db
    quotadict = mysql:/etc/dovecot/dovecot-used-quota.conf
    acl = mysql:/etc/dovecot/dovecot-share-folder.conf
}

protocol lda {
    # Reference: http://wiki2.dovecot.org/LDA
    mail_plugins = $mail_plugins sieve
    auth_socket_path = /var/run/dovecot/auth-master
    log_path = /var/log/dovecot-sieve.log
    lda_mailbox_autocreate = yes
    postmaster_address = root
}

protocol lmtp {
    # Log file
    info_log_path = /var/log/dovecot-lmtp.log

    # Plugins
    mail_plugins = quota sieve
    postmaster_address = postmaster

    lmtp_save_to_detail_mailbox = yes
    recipient_delimiter = +
}

protocol imap {
    mail_plugins = $mail_plugins imap_quota imap_acl
    imap_client_workarounds = tb-extra-mailbox-sep

    # Maximum number of IMAP connections allowed for a user from each IP address.
    # NOTE: The username is compared case-sensitively.
    # Default is 10.
    # Increase it to avoid issue like below:
    # "Maximum number of concurrent IMAP connections exceeded"
    mail_max_userip_connections = 20
}
protocol pop3 {
    mail_plugins = $mail_plugins
    pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
    pop3_uidl_format = %08Xu%08Xv

    # Maximum number of IMAP connections allowed for a user from each IP address.
    # NOTE: The username is compared case-sensitively.
    # Default is 10.
    mail_max_userip_connections = 20
}

# Login processes. Refer to Dovecot wiki for more details:
# http://wiki2.dovecot.org/LoginProcess
service imap-login {
    service_count = 1

    # To avoid startup latency for new client connections, set process_min_avail
    # to higher than zero. That many idling processes are always kept around
    # waiting for new connections.
    #process_min_avail = 0

    # number of simultaneous IMAP connections
    #process_limit = $default_process_limit
    process_limit = 500

    # vsz_limit should be fine at its default 64MB value
    #vsz_limit = 64M
}
service pop3-login {
    service_count = 1

    # number of simultaneous POP3 connections
    #process_limit = 500
}
drodman ()
Ответ на: комментарий от drodman

Криминала явного не вижу пока, попробуйте закомментировать:

pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_uidl_format = %08Xu%08Xv
и посмотреть на результат.

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

Результат проделанных действий ни к чему не привел, абсолютно никаких изменений. Вот только не пойму, более детальный лог я смогу только tcpdump посмотреть? не уж то в dovecot нет более детального лога, аля log_level = 9

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

Я вот тут подумал, а не может ли этот быть, т.к. и почтовый сервер и клиент находятся за одним шлюзом. Это вирт.машины под управлением Microsoft Hyper-V, адреса разные но виртуальный свитч один. Если это так, может есть какие-то варианты отключение проверки mac при авторизации по SSL?

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

Если это так, может есть какие-то варианты отключение проверки mac при авторизации по SSL?

Поясните подробнее вашу мысль?

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

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

Решил проблему заведением новой виртуальной локальной сети в которую поместил сервер и клиент. Дабы mac адреса были разные и не было ошибок mac-spoofing.

<b>Спасибо за помощь и свежие идеи!

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