Skip to main content
Version: 1.3

Deployment layouts

MSH Zimbra Rules is made of three services. They all ship in the same package, msh-zr-<VERSION>.tgz, so every host gets the same files and you choose which services to enable.

ServiceUnitPortWhat it doesWhere it runs
Web adminmsh-zr-web.service7081 (HTTP or HTTPS)The administrator panel. Holds the rules and settings, syncs users and groups from the Zimbra LDAP, owns the license and sends everything to the servers.The Zimbra server on a single server, a web admin server of its own with several MTA servers
Nodemsh-zr-node.service7082 (HTTPS)Receives the rules and settings from the web admin and keeps a local copy for the milter. Reports the milter's status and message history back.Every MTA host
Miltermsh-zr-milter.service7080Processes the mail Postfix hands it and applies the rules.Every MTA host

The web admin connects to the node on each MTA host. Nothing on an MTA host connects to the web admin, and the milter only talks to its own node through local files. Each MTA keeps filtering mail with the last rules it received when the web admin is stopped or unreachable.

The package also carries the parts for the Zimbra web client, in /opt/msh-zr/zimbra/. They are installed into Zimbra, not run as services of their own:

PartWhat it doesWhere it is installed
Zimbra extension (msh-zr-extension.jar)Runs inside Zimbra mailboxd. Passes the requests of the zimlets to the web admin on port 7081, for the logged-in user only.Every Zimbra mailbox server
Change User Info zimletsLet users see and change their own user attributes in the Classic and the Modern web client.Deployed once, on one mailbox server; Zimbra registers them for all mailbox servers

The zimlets are optional. Without them mail processing works the same, users just cannot change their own attributes.

Single server​

Everything runs on one host: one Zimbra server with its MTA, mailbox and LDAP, all three MSH Zimbra Rules services, and the Zimbra extension and zimlets.

Single server: the Zimbra MTA hands mail to msh-zr-milter on localhost:7080. msh-zr-web sends the rules to msh-zr-node over HTTPS on localhost:7082, the node keeps a local copy the milter reads, and the web admin syncs users and groups from the Zimbra LDAP. Administrators use the web admin on port 7081. Users open Change User Info in the web client, and the msh-zr extension in the Zimbra mailbox passes the request to the web admin on localhost:7081.

The web admin finds the node on the same host by itself and lists it on the Servers page as This server, so there is nothing to connect by hand.

The extension reaches the web admin on the same host, at 127.0.0.1:7081.

Install with Single server: Installation, Milter configuration and Zimlet configuration.

Multiple servers​

A Zimbra installation with two or more MTA servers, and usually several mailbox servers. Every MTA server gets its own node and milter. The web admin runs on a server of its own and manages them all. Every mailbox server gets the Zimbra extension.

Multiple servers: every MTA server runs the Zimbra MTA, msh-zr-milter and msh-zr-node. msh-zr-web runs on a separate web admin server, sends the rules to the node on every MTA server on port 7082 and syncs users and groups from the Zimbra LDAP on port 389. Administrators use the web admin on port 7081. Users open Change User Info in the web client on their mailbox server, and the msh-zr extension on every mailbox server passes the request to the web admin on port 7081.

  • The web admin server runs only the web admin. See Web admin server.
  • Every MTA server runs only the node and the milter. See Milters configuration.
  • Every mailbox server gets the Zimbra extension, and the zimlets are deployed once. MSH Zimbra Rules itself is not installed there, only its zimbra/ directory is extracted from the package. See Zimlets configuration. A server that is both a mailbox and an MTA server gets the node, the milter and the extension.
  • The web admin reaches each MTA server on port 7082, and you add each one on the Servers page with the token from that server.
  • The Zimbra LDAP is only read by the web admin, to sync users and groups. If your Zimbra installation has several LDAP servers (a master and replicas), connect the Directory service to one of them, the master or a replica that the web admin server can reach.
  • Rules and settings are edited once, in the web admin, and sent to every MTA server. Message history shows the messages of all servers together, and message-count conditions count the messages of all servers together.

Ports and firewall​

FromToPortNeeded for
Administrators' browsersWeb admin serverTCP 7081The administrator panel
Web admin serverEvery MTA serverTCP 7082Sending rules and settings, reading status and message history
Every mailbox serverWeb admin serverTCP 7081Change User Info (the Zimbra extension)
Web admin serverZimbra LDAPTCP 389 (or your LDAP port)Syncing users and groups (Directory service)
Zimbra MTAMilter on the same hostTCP 7080, localhostMail processing

The milter listens on all interfaces, but only the MTA on the same host needs it. Do not open port 7080 to the network. Open 7082 only to the web admin server, and 7081 only to administrators and the mailbox servers. On a single server the extension uses 127.0.0.1, so no port needs to be opened for it.

What's next​

  • Requirements - operating system, Java and memory for each host
  • Install - the installation steps for each layout