LMTPs between proxy and backend

Patrick Westenberg
2015-06-05T19:00:53Z

Hi @all,

I have a 3 server setup (MX ==LMTP==> Proxy ==LMTP==> Backend).

After upgrading to 2.2.18 I was able to use LMTPs from MX to the proxy
but not from the proxy to the backend:


Received: from mf01.example.net ([172.17.1.5])
	by mb01.example.net (Dovecot) with LMTP id T+LnDWrvcVWDSwAAJnBBGg
	for <patrick at example.net>; Fri, 05 Jun 2015 20:50:58 +0200
Received: from mx01.example.net ([172.17.1.5])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
zlib compression)
	by mf01.example.net (Dovecot) with LMTP id 8uuXJ13vcVW2fgAATr09kg

Can anyone help or is Dovecot not able to use LMTPs as client?

Regards
Patrick



Proxy:

# 2.2.18: /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8 (0c4ae064f307+)
# OS: Linux 3.16.0-0.bpo.4-amd64 x86_64 Debian 7.8
auth_mechanisms = plain login
director_mail_servers = 172.17.1.1 172.17.1.2
director_servers = 172.17.1.3 172.17.1.4
director_user_expire = 5 mins
lmtp_proxy = yes
log_path = /var/log/dovecot.log
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
protocols = imap pop3 lmtp sieve
service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     mode = 0666
     user = postfix
   }
   unix_listener auth-userdb {
     user = dovecot
   }
}
service director {
   fifo_listener login/proxy-notify {
     mode = 0666
   }
   inet_listener {
     address = 172.17.1.3
     port = 9090
   }
   unix_listener director-userdb {
     mode = 0600
   }
   unix_listener login/director {
     mode = 0666
   }
}
service imap-login {
   executable = imap-login director
   process_min_avail = 1
   service_count = 0
}
service lmtp {
   inet_listener lmtp {
     address = 172.17.1.3
     port = 24
   }
   process_min_avail = 20
}
service managesieve-login {
   executable = managesieve-login director
   inet_listener sieve {
     port = 4190
   }
}
service pop3-login {
   executable = pop3-login director
}
ssl_cert = </etc/ssl/certs/wildcard.pem
ssl_cipher_list = <snip>
ssl_dh_parameters_length = 2048
ssl_key = </etc/ssl/private/wildcard.key
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv3 !SSLv2
verbose_proctitle = yes
protocol !smtp {
   passdb {
     args = proxy=y nopassword=y starttls=any-cert
     driver = static
     name    }
}
protocol smtp {
   passdb {
     args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
     driver = sql
     name    }
   userdb {
     args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
     driver = sql
     name    }
}
protocol lmtp {
   auth_socket_path = director-userdb
}


Backend:

# 2.2.18: /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8 (0c4ae064f307+)
# OS: Linux 3.14-0.bpo.1-amd64 x86_64 Debian 7.8
auth_mechanisms = plain login
listen = 172.17.1.2
lmtp_save_to_detail_mailbox = yes
log_path = /var/log/dovecot.log
login_trusted_networks = 172.17.1.3 172.17.1.4
mail_home = /srv/mail/%Ld/%Ln
mail_location = maildir:~/Maildir
mail_plugins = quota notify replication
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
namespace inbox {
   inbox = yes
   location    mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Junk {
     special_use = \Junk
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     special_use = \Sent
   }
   mailbox Spamverdacht {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix = INBOX/
   separator = /
   type = private
}
passdb {
   args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
plugin {
   mail_replica = tcps:mb01.wk-serv.net
   quota = dict:User quota::file:%h/Maildir/dovecot-quota
   quota_rule2 = INBOX/Trash:ignore
   quota_status_nouser = DUNNO
   quota_status_success = DUNNO
   quota_warning = storage=90%% quota-warning 90 %u
   quota_warning2 = storage=75%% quota-warning 75 %u
   sieve = ~/.dovecot.sieve
   sieve_after = /usr/local/etc/dovecot/sieve/sieve_after.sieve
   sieve_default = /usr/local/etc/dovecot/sieve/default.sieve
   sieve_dir = ~/sieve
}
postmaster_address = postmaster at wk-serv.de
protocols = imap pop3 lmtp sieve
service aggregator {
   fifo_listener replication-notify-fifo {
     user = vmail
   }
   unix_listener replication-notify {
     user = vmail
   }
}
service auth {
   unix_listener auth-userdb {
     group = vmail
     mode = 0666
     user = vmail
   }
}
service config {
   unix_listener config {
     mode = 0600
     user = vmail
   }
}
service doveadm {
   inet_listener {
     port = 12345
     ssl = yes
   }
}
service imap-login {
   process_min_avail = 2
   service_count = 0
}
service lmtp {
   inet_listener lmtp {
     address = 172.17.1.2
     port = 24
   }
   process_min_avail = 20
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
}
service quota-status {
   client_limit = 1
   executable = quota-status -p postfix
   inet_listener {
     port = 12340
   }
}
service quota-warning {
   executable = script /usr/local/etc/dovecot/quota_warning.sh
   unix_listener quota-warning {
     user = vmail
   }
   user = root
}
service replicator {
   process_min_avail = 1
   unix_listener replicator-doveadm {
     mode = 0600
     user = vmail
   }
}
ssl = required
ssl_cert = </etc/ssl/certs/wildcard.crt
ssl_client_ca_file = /etc/ssl/certs/startssl-bundle.pem
ssl_key = </etc/ssl/private/wildcard.key
ssl_protocols = !SSLv3 !SSLv2
userdb {
   driver = prefetch
}
userdb {
   args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
verbose_proctitle = yes
protocol lmtp {
   mail_plugins = quota notify replication sieve
}
protocol imap {
   mail_max_userip_connections = 30
   mail_plugins = quota notify replication imap_quota
}