Dovecot Maximale Verbindungen per IMAP

Lord_Icon

Member
Hi,

ich hab mein Server (Debian) neu aufgesetzt. Mit Postfix und Dovecot.
Dovecot hab ich weitesgehend default gelassen (config unten).

Problem ist nun: Wenn ich alle meine Geräte (PC + Handy + Tablet + 2t PC) anwerfe, dann verweigert mir Thunderbird ab und zu den Zugriff. Er sagt dann, dass der Server die Anfrage abgelehnt hat.

in der mail.log und auch mail.info konnte ich allerdrings keinerlei Gründer hierfür finden. Also bin ich davon ausgegangen, dass ich zu viele Verbindungen gleichzeitig aufgebaut habe.

Entsprechend hab ich:
Code:
service imap-login {
  ...
  client_limit = 1000
  process_limit = 500
}  

protocol imaps {
  ...
  mail_max_userip_connections = 20
}

gesetzt. Aber keine sonderliche Verbesserung.

Also wollt ich grundsätzlich erstmal wissen, wieviele Sitzungen denn nun offen sind. Lt. Google gibt es hier wohl "doveadm stats top". Nur wird mir ausser dem Header nichts angezeigt. In der Config hab ich aber schon die entsprechenden Einträge gemacht, das diese Statistik wohl ermöglichen soll.

Langsam gehen mir die Möglichkeiten aus. Ohne Statistik seh ich nicht, ob ich schon am Limit bin... ohne Fehlerlogs auch nicht.

Weiß einer Rat ? Oder hat Tipps für mich.

Ggf. generell mal eine Antwort auf: Wie arbeitet IMAP. Baut IMAP eine Verbindung auf oder gleich zich hunderte. Sind dann "mail_max_userip_connections = 20" zu wenig ?

Danke

Code:
cat /etc/dovecot/dovecot.conf
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.8 ext4

disable_plaintext_auth = no

mail_plugins = $mail_plugins stats

log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
debug_log_path = /var/log/dovecot-debug.log
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
mail_debug = yes

mail_location = maildir:/var/mail/%u/
mail_privileged_group = mail
namespace {
  hidden = yes
  list = no
  location = maildir:/var/mail/%u
  prefix = Public/
  separator = /
  subscriptions = no
  type = public
}
namespace inbox {
  inbox = yes
  location = maildir:/var/mail/%u
  mailbox "Deleted Messages" {
    special_use = \Trash
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk-E-Mail {
    special_use = \Junk
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  mailbox junkmail {
    auto = subscribe
    special_use = \Junk
  }
  prefix =
  separator = /
  type = private
}
passdb {
  driver = passwd
}
passdb {
  driver = shadow
}
postmaster_address = info@domain.de
protocols = imap pop3
service auth {
  user = root
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  client_limit = 2000
  process_limit = 1000
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
}
shutdown_clients = no
ssl_ca = </etc/ssl/mail.domain.de.ca-bundle
ssl_cert = </etc/ssl/mail.domain.de.crt
ssl_key = </etc/ssl/mail.domain.de.key
userdb {
  driver = passwd
}
protocol imaps {
  imap_idle_notify_interval = 2 mins
  pop3_uidl_format = %08Xu%08Xv
  mail_max_userip_connections = 20
  mail_plugins = $mail_plugins imap_stats
}

protocol imap {
  mail_plugins = $mail_plugins imap_stats
}


plugin {
  # how often to session statistics (must be set)
  stats_refresh = 30 secs
  # track per-IMAP command statistics (optional)
  stats_track_cmds = yes
}

service stats {
  fifo_listener stats-mail {
    user = root
    mode = 0600
  }
}
 
Code:
mail_max_userip_connections = 20
Den Wert habe ich auf 80 stehen.

Meines Wissens wird bei IMAP für jeden Ordner eine Verbindung aufgebaut.
bei einem neuen Konto habe ich bei mir schon 5 Ordner (INBOX, SENT, TRASH, JUNK, DRAFTS)
Da bist du im Heimnetzwerk bei den 4 Geräten schon bei deinen 20.
Wahrscheinlich hast du mehrere Konten mit selber angelegten Ordner.
Ich habe mir bei meinem Wert genug Luft nach oben gelassen.

Nicht vergessen dovecot neu starten.
 
oki. Das werd ich mal testen. Mal schaun.

Geht denn bei dir : doveadm stats top
Bzw. hast du da ne Ausgabe ?
 
Hatte stats nicht konfiguriert. Habe es mal eingefügt und es macht was es soll.

Code:
USER                                                       SERVICE %CPU %SYS DISKIN DISKOUT
user-1@domain-1.de                                          imap    0    0    0      0      
user-1@domain-1.de                                          imap    28   0    0      0      
user-1@domain-1.de                                          imap    0    0    0      0      
user-1@domain-1.de                                          imap    0    0    0      0      
user-1@domain-1.de                                          imap    14   1    0      0      
user-2@domain-2.de                                          imap    0    0    0      0      
user-2@domain-2.de                                          imap    0    0    0      0      
user-2@domain-2.de                                          imap    0    1    0      0      
user-2@domain-2.de                                          imap    1    2    0      0      
user-1@domain-2.de                                          imap    0    0    0      0      
user-1@domain-2.de                                          imap    2    0    0      0      
user-1@domain-2.de                                          imap    0    3    0      0      
user-1@domain-2.de                                          imap    0    3    0      0      
user-1@domain-2.de                                          imap    1    1    0      0
 
Ich denke du hast einen Fehler in deine conf.

du definierst hier
Code:
protocols = imap pop3
schreibst dann aber hier
Code:
protocol imaps {
  imap_idle_notify_interval = 2 mins
  pop3_uidl_format = %08Xu%08Xv
  mail_max_userip_connections = 20
  mail_plugins = $mail_plugins imap_stats
}

protocol imap {
  mail_plugins = $mail_plugins imap_stats
}

Ich denke protocol imaps wird nicht mehr verwendet.
probiere mal folgende config
Code:
protocol imap {
  imap_idle_notify_interval = 2 mins
  mail_max_userip_connections = 20
  mail_plugins = $mail_plugins imap_stats
}
 
DANKE Steffen... das mit den Protokollen hab ich total übersehen.
Ich bin davon ausgegangen, das imaps = SSL imap ist.
Ich hab es jetzt entsprechend geändert... mal schaun, ob ich morgen im Büro wieder den Fehler bekomme. Aber scheint Plausibel zu sein.


doveadm stats top scheint nun auch endlich zu gehen. Ich muss mir aber noch die Doku reinziehen... denn es taucht mal eine Sekunde ein Wert auf und dann ist wieder ne ganze weile nur der Header zu sehen.... oder nur der User "0".

Deine dovecot.conf kannst/willst du mir nicht mal posten ;-)
 
na da hänge ich doch mal meine conf an.

Code:
listen = *,[::]
protocols = imap sieve
auth_mechanisms = plain login
disable_plaintext_auth = yes
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = vmail
postmaster_address = postmaster@domain.de
ssl = required
ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key
ssl_protocols = !SSLv2 !SSLv3
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
plugin {
  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
  sieve=/var/vmail/%d/%n/.sieve
#  sieve_dir=/var/vmail/%d/%n/sieve
# how often to session statistics (must be set)
  stats_refresh = 30 secs
# track per-IMAP command statistics (optional)
  stats_track_cmds = yes
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0600
    user = vmail
  }
  user = root
}
service imap-login {
  client_limit = 1000
  process_limit = 500
}
protocol imap {
  mail_plugins = quota imap_quota stats imap_stats
  mail_max_userip_connections = 80
}
#protocol pop3 {
#  pop3_uidl_format = %08Xu%08Xv
#  mail_plugins = quota
#}
protocol lda {
  mail_plugins = sieve quota
}

service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}

service managesieve {
}

protocol sieve {
}

service stats {
  fifo_listener stats-mail {
    user = vmail
    mode = 0600
  }
}

Da ich IspConfig verwende wurde der größte Teil bei der Installation von IspConfig erstellt, ich habe da nur kleine Anpassungen vorgenommen.
Ich glaube Deine config basiert zumteil noch auf Dovecot 1.* da is bei Dovecot 2.* einiges anders.
Was ich ganz praktisch finde ist der SSL-Verweis in den Postfix Ordner da brauche ich nur ein Zertifikat tauschen. POP§ habe ich deaktiviert weil es nicht benutzt wird.
Ich hoffe es hilft weiter.
 
Back
Top