Configuring Perdition
Perdition use cases
Perdition is a proxy for the POP and IMAP protocols that allows a user to connect to any Perdition server, regardless of their account's zimbraMailHost, and use a POP or IMAP client to access their mail.
Perdition is useful in multi-node installations, where several mailstore servers may be accessed through the same hostname (either via round-robin DNS or a load balancer).
Perdition is also useful for offloading the SSL connection from the tomcat server, and handling it in the proxy. This can reduce the load on the mailstore server, as well as work around some IMAP SSL bugs.
Note: Perdition only proxies IMAP and POP - it is not an HTTP/S proxy.
Perdition can proxy these services:
- IMAP (default port 143)
- IMAPS (default port 993)
- POP3 (default port 110)
- POP3S (default port 995)
Setting the ports
"Real" and proxied ports
In any perdition setup, there are 2 ports defined for every service. The real port is the port that tomcat listens on to handle connections. The proxied port is the port that perdition listens on for client connections. When perdition is configured, the client connects to the proxied port, and perdition connects to the tomcat server on the real port. The real ports can (and probably should) be blocked from access to the outside world by your firewall.
- zimbraPop3BindPort
- This is the real port for cleartext POP connections
- zimbraPop3SSLBindPort
- This is the real port for SSL POP connections
- zimbraPop3ProxyBindPort
- This is the proxied port for cleartext POP connections
- zimbraPop3SSLProxyBindPort
- This is the proxied port for SSL POP connections
- zimbraImapBindPort
- This is the real port for cleartext IMAP connectionsions
- zimbraImapSSLBindPort
- This is the real port for SSL IMAP connectionsions
- zimbraImapProxyBindPort
- This is the proxied port for cleartext IMAP connectionsions
- zimbraImapSSLProxyBindPort
- This is the proxied port for SSL IMAP connections
Port consistency
When configuring perdition in a multi server environment, all of the servers should have the same ports defined for the real and proxied ports. Failure to do so will prevent perdition from operating correctly.