Skip to content

Instantly share code, notes, and snippets.

@unreal4u
Last active August 24, 2021 12:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unreal4u/64de0f05b6e3b98034cdb0ae52ce1196 to your computer and use it in GitHub Desktop.
Save unreal4u/64de0f05b6e3b98034cdb0ae52ce1196 to your computer and use it in GitHub Desktop.
Success and failure for dovecot-proxy
# 2.3.16 (7e2e900c1a): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.16 (09c29328)
# OS: Linux 5.4.0-1049-gcp x86_64 Ubuntu 18.04.5 LTS
# Hostname: mail-node-2.XXXXXXXXXXX.XX
auth_cache_negative_ttl = 15 mins
auth_cache_verify_password_with_worker = yes
auth_debug = yes
auth_mechanisms = plain login
auth_verbose = yes
default_client_limit = 10000
default_internal_user = vmail
dict {
quota = mysql:/etc/dovecot/dovecot-dict-quota.conf.ext
}
disable_plaintext_auth = no
first_valid_uid = 0
hostname = mail-node-2.XXXXXXXX.XX
lmtp_proxy = yes
login_trusted_networks = 10.164.0.0/24
mail_gid = vmail
mail_plugins = quota
mail_privileged_group = vmail
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext
metric auth_failures {
filter = event=auth_request_finished AND NOT success=yes
}
metric auth_passdb_request_failure {
filter = event=auth_passdb_request_finished AND NOT result=ok
group_by = result
}
metric auth_passdb_request_success {
filter = event=auth_passdb_request_finished AND result=ok
}
metric auth_success {
filter = event=auth_request_finished AND success=yes
}
metric dns_request {
filter = event=dns_request_finished
}
metric imap_command {
filter = event=imap_command_finished
group_by = cmd_name tagged_reply_state
}
metric mail_delivery {
filter = event=mail_delivery_finished
group_by = duration:exponential:1:5:10
}
metric mail_index_recreated {
filter = event=mail_index_recreated
}
metric sieve_runtime_script {
filter = event=sieve_runtime_script_finished
group_by = action_name
}
metric smtp_command {
filter = event=smtp_server_command_finished
group_by = cmd_name status_code duration:exponential:1:5:10
}
namespace inbox {
inbox = yes
location =
mailbox Archive {
auto = subscribe
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
quota = dict:user::proxy::quota
quota_rule2 = Trash:storage=+100M
sieve = ~/.dovecot.sieve
sieve_after = /var/lib/dovecot/sieve/after.d
sieve_dir = ~/sieve
sieve_max_actions = 100
sieve_max_redirects = 25
sieve_max_script_size = 2M
}
postmaster_address = postmaster@mail-node-2.XXXXXXXX.XX
protocols = imap lmtp sieve pop3
service auth-worker {
unix_listener auth-worker {
user = vmail
}
}
service auth {
client_limit = 15000
process_limit = 1
unix_listener auth-userdb {
group = vmail
mode = 0660
user = vmail
}
user = vmail
vsz_limit = 512 M
}
service dict {
unix_listener dict {
group = vmail
mode = 0600
user = vmail
}
}
service imap-login {
inet_listener imap {
port = 143
}
process_min_avail = 8
service_count = 0
vsz_limit = 1 G
}
service imap {
process_limit = 10000
process_min_avail = 8
service_count = 100
vsz_limit = 16056 M
}
service lmtp {
inet_listener lmtp {
address = 10.164.0.20 127.0.0.1 ::1
port = 24
}
user = vmail
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
service_count = 0
}
ssl = no
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
protocol lmtp {
mail_plugins = quota sieve
postmaster_address = postmaster@mail-node-2.XXXXXXXXX.XX
}
protocol lda {
mail_plugins = quota sieve
}
protocol imap {
mail_max_userip_connections = 100
mail_plugins = quota imap_quota
}
Aug 24 11:29:07 mail-node-2 dovecot: auth-worker(14739): Debug: conn unix:auth-worker (pid=14731,uid=5000): auth-worker<4>: sql(me@XXXXXX.XX,86.XX.YY.ZZ,<hwEYcUzKHlhWW3w+>): Performing passdb lookup
Aug 24 11:29:07 mail-node-2 dovecot: auth-worker(14739): Debug: conn unix:auth-worker (pid=14731,uid=5000): auth-worker<4>: sql(me@XXXXXX.XX,86.XX.YY.ZZ,<hwEYcUzKHlhWW3w+>): query:
SELECT
mailbox.username as user,
mailbox.password,
CONCAT('/mail', '/', domain.bucket, '/maildata/', domain.domain, '/', mailbox.username, '/') AS userdb_home,
CONCAT('maildir:', '/mail', '/', domain.bucket, '/maildata/', domain.domain, '/', mailbox.username, '/:INDEX=/mail/', domain.bucket, '/index/', domain.domain, '/', mailbox.username, '/') AS userdb_mail,
CONCAT('*:bytes=', mailbox.quota) as userdb_quota_rule,
IF(mailbox.server='localhost', '127.0.0.1', mailbox.server) AS host,
CASE WHEN 'imap'='lmtp' THEN 24 WHEN 'imap'='imap' THEN 143 WHEN 'imap'='pop3' THEN 110 WHEN 'imap'='smtp' THEN 25 WHEN 'imap'='lda' THEN 4190 ELSE null END AS port,
'Y' AS proxy_maybe
FROM mailbox JOIN domain ON domain.domain = mailbox.domain
WHERE mailbox.username = 'me@XXXXXX.XX' AND mailbox.deletedAt IS NULL;
...
Aug 24 11:29:07 mail-node-2 dovecot: auth: Debug: client passdb out: OK#0112#011user=me@XXXXXX.XX#011host=10.164.0.20#011port=143#011proxy#011pass=<hidden>
Aug 24 11:29:07 mail-node-2 dovecot: auth: Debug: client in: AUTH#0112#011PLAIN#011service=imap#011secured#011session=hwEYcUzKHlhWW3w+#011lip=10.164.0.3#011rip=86.XX.YY.ZZ#011lport=993#011rport=22558#011real_lip=10.164.0.20#011real_rip=10.164.0.20#011real_lport=143#011real_rport=45910#011resp=<hidden>
....
Aug 24 11:29:07 mail-node-2 dovecot: imap-login: Error: proxy(me@XXXXXXX.XX,10.164.0.20:143): Aborting due to remote server: TTL reached zero - proxies appear to be looping?: user=<me@XXXXXXX.XX>, method=PLAIN, rip=86.XX.YY.ZZ, lip=10.164.0.3, secured, session=<hwEYcUzKHlhWW3w+>
Aug 24 11:35:21 mail-node-2 dovecot: auth-worker(14822): Debug: conn unix:auth-worker (pid=14731,uid=5000): auth-worker<1>: sql(me@XXXXXXX.XX,127.0.0.1,<Oltrh0zKhIJ/AAAB>): Performing passdb lookup
Aug 24 11:35:21 mail-node-2 dovecot: auth-worker(14822): Debug: conn unix:auth-worker (pid=14731,uid=5000): auth-worker<1>: sql(me@XXXXXXX.XX,127.0.0.1,<Oltrh0zKhIJ/AAAB>): query:
SELECT
mailbox.username as user,
mailbox.password,
CONCAT('/mail', '/', domain.bucket, '/maildata/', domain.domain, '/', mailbox.username, '/') AS userdb_home,
CONCAT('maildir:', '/mail', '/', domain.bucket, '/maildata/', domain.domain, '/', mailbox.username, '/:INDEX=/mail/', domain.bucket, '/index/', domain.domain, '/', mailbox.username, '/') AS userdb_mail,
CONCAT('*:bytes=', mailbox.quota) as userdb_quota_rule,
IF(mailbox.server='localhost', '127.0.0.1', mailbox.server) AS host,
CASE WHEN 'imap'='lmtp' THEN 24 WHEN 'imap'='imap' THEN 143 WHEN 'imap'='pop3' THEN 110 WHEN 'imap'='smtp' THEN 25 WHEN 'imap'='lda' THEN 4190 ELSE null END AS port,
'Y' AS proxy_maybe
FROM mailbox JOIN domain ON domain.domain = mailbox.domain
WHERE mailbox.username = 'me@XXXXXXXXX.XX' AND mailbox.deletedAt IS NULL;
...
Aug 24 11:35:21 mail-node-2 dovecot: auth: Debug: client passdb out: OK#0116#011user=me@XXXXXXXXX.XX
Aug 24 11:35:21 mail-node-2 dovecot: auth: Debug: master in: REQUEST#0111141637121#01114711#0116#011d1c112856b0f02281da70a078877728d#011session_pid=14709#011request_auth_token
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment