Montar servidor de correo electrónico en producción real con Zimbra Collaboration Open Source sobre Linux CentOS 7. Explicamos paso a paso cómo montar nuestro propio servidor de e-mail usando Zimbra (versión Open Source y gratuita) sobre una máquina virtual con el sistema operativo Linux CentOS 7. Todo ello usando una dirección real y en producción de correo electrónico.

Requisitos para montar servidor de correo electrónico con Zimbra y Linux CentOS 7

Necesitaremos disponer de un servidor físico o máquina virtual con el sistema operativo Linux CentOS 7 (en nuestro caso Minimal). Para instalar y configurar el servidor de mail con Zimbra Collaboration Open Source Edition necesitaremos usuario y contraseña con permisos de root en esta máquina.

Para un servidor en producción con un dominio propio (es lo lógico), del tipo nombre_cuenta@nombre_dominio necesitaremos registrar el dominio y establecer la zona MX en el DNS apuntando a la IP pública de nuestra red (como indicamos más adelante).

La máquina virtual debe tener conexión a Internet. Si queremos que nuestro servidor sea un servidor de producción real tendremos que configurar el cortafuegos (o router) y realizar el mapeo (NAT) de puertos, para que el tráfico de correo que nos llegará tras configurar la zona MX en el DNS se dirija a nuestro equipo.

Establecer zona MX en DNS apuntando a IP Pública estática y mapeo de puertos NAT en router o cortafuegos

Si queremos disponer de un servidor de mail real en producción deberemos contratar una IP pública estática en nuestro proveedor de Internet, en donde tengamos alojado el servidor Linux CentOS con Zimbra. En algunos casos no es necesaria dicha contratación y con la conexión a Internet dispondremos de una IP estática (no variable o no dinámica).

Para consultar la dirección IP pública de nuestra red podremos usar cualquier web que permita este servicio, nos devolverá la IP pública desde donde estemos conectados:

Establecer zona MX en DNS apuntando a IP Pública estática y mapeo de puertos NAT en router o cortafuegos

Mapeo o NAT de puertos en cortafuegos perimetral o router de nuestra red

Para que el tráfico de Zimbra (correo) nos llegue al servidor de Linux CentOS de nuestra red necesitaremos mapear (redireccionar) o hacer NAT (Network Address Translation) en el cortafuegos perimetral o router de la LAN. Hablamos de un dispositivo externo al equipo Linux, que suele ser por el que pasa el tráfico de Internet, o bien un cortafuegos (firewall) o bien un router.

Salvo excepciones (y no es nada recomendable) tendremos un cortafuegos o router en nuestra red que tendrá todos los puertos cerrados por defecto. Así que tendremos que acceder a la administración del cortafuegos o router y añadir una regla de NAT para redireccionar todo lo que entre desde los puertos de correo electrónico al servidor de Linux CentOS con Zimbra.

Antes de realizar esta regla de NAT necesitaremos saber la IP del servidor de Linux CentOS. Si no la sabemos podemos obtenerla con el comando (ejecutándolo en una consola de Linux):

ip addr

Nos devolverá:

[root@srvmail ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e9:2f:6c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.7/24 brd 192.168.1.255 scope global ens192
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee9:2f6c/64 scope link
valid_lft forever preferred_lft forever

O bien, si disponemos del comando ifconfig):

ifconfig

[root@srvmail ~]# ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.7 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fee9:2f6c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e9:2f:6c txqueuelen 1000 (Ethernet)
RX packets 898957 bytes 152355620 (145.2 MiB)
RX errors 0 dropped 1179 overruns 0 frame 0
TX packets 58975 bytes 5319314 (5.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 18247 bytes 1387238 (1.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18247 bytes 1387238 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Una vez conocida la IP del equipo accederemos a la consola de administración del cortafuegos o router, en nuestro caso de un router. Buscaremos la opción de añadir reglas de NAT (mapeo o redirección de puertos). Y añadiremos las siguientes:

Para añadirlos pulsaremos en el botón + (o el que corresponda en vuestro router/firewall). En la ventana que aparezca introduciremos los siguientes datos:

  • Servicio/Protocolo: TCP.
  • LAN IP: IP del servidor Linux CentOS, la que hemos obtenido con los comandos anteriores.
  • Puerto público: el puerto del correo electrónico SMTP, el 25.
  • Puerto LAN: el mismo que el público.
Mapeo o NAT de puertos en cortafuegos perimetral o router de nuestra red

Añadiremos de la misma forma los puertos: 465, 143 y 995. De forma que nos queden:

En algunos router/cortafuegos hay que aplicar los cambios para que se hagan efectivos:

Mapeo o NAT de puertos en cortafuegos perimetral o router de nuestra red

Registro de dominio y establecimiento de zona MX en DNS

Necesitaremos un dominio registrado (para nuestro caso usaremos comunidadbiker-mtb.com), si aún no lo tenemos podemos hacerlo en cualquier entidad registradora de dominios.

Una vez registrado el dominio accederemos al panel de control para establecer la zona MX en el DNS. Esto es necesario para que los emails dirigidos a nuestro dominio lleguen a nuestro servidor de correo (IP pública).

Cada proveedor de hosting tendrá un panel de control diferente, buscaremos la opción de Zonas DNS para nuestro dominio y añadiremos la zona MX con host «mail» y «IP» la IP pública de donde tengamos alojado el servidor de mail con Linux CentOS:

Registro de dominio y establecimiento de zona MX en DNS

Una vez establecida la zona MX, esperaremos unos minutos (a veces horas) a que se propaguen los cambios y realizaremos un ping para comprobar que se ha establecido correctamente. En nuestro caso usaremos el dominio «comunidadbiker-mtb.com», que deberéis cambiar por el vuestro:

ping mail.comunidadbiker-mtb.com

Si todo es correcto devolverá algo así:

[root@srvmail ~]# ping mail.comunidadbiker-mtb.com
PING mail.comunidadbiker-mtb.com (188.85.111.111) 56(84) bytes of data.
64 bytes from static-145-166-85-188.ipcom.comunitel.net (188.85.111.111): icmp_seq=1 ttl=64 time=1.11 ms
64 bytes from static-145-166-85-188.ipcom.comunitel.net (188.85.111.111): icmp_seq=2 ttl=64 time=0.516 ms
64 bytes from static-145-166-85-188.ipcom.comunitel.net (188.85.111.111): icmp_seq=3 ttl=64 time=0.536 ms

También podremos comprobar que la zona MX está correctamente establecida ejecutando el siguiente comando:

host -t MX comunidadbiker-mtb.com

Que si todo es correcto nos devolverá algo así:

[root@srvmail ~]# host -t MX comunidadbiker-mtb.com
comunidadbiker-mtb.com mail is handled by 10 mail.comunidadbiker-mtb.com.

También podemos usar el comando «dig» que si lo tenemos instalado nos dará más información:

dig comunidadbiker-mtb.com MX

Nos devolverá algo así:

[root@srvmail ~]# dig comunidadbiker-mtb.com MX
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> comunidadbiker-mtb.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19742
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;comunidadbiker-mtb.com. IN MX
;; ANSWER SECTION:
comunidadbiker-mtb.com. 68 IN MX 10 mail.comunidadbiker-mtb.com.
;; Query time: 6 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: mié jun 20 10:56:28 CEST 2018
;; MSG SIZE rcvd: 72

Preparar equipo Linux CentOS 7 para instalar Zimbra y montar servidor de correo electrónico

Antes de instalar Zimbra es conveniente tener correctamente configurado el equipo Linux CentOS 7. Lo primero que haremos es una actualización de todos los paquetes, ejecutando en la línea de comandos (nosotros accedemos con PuTTY y SSH):

yum upgrade -y

El comando anterior tardará varios minutos, dado que comprobará si tenemos actualizados a la última versión todos los paquetes del sistema. Tras finalizar nos mostrará un «¡Listo!»:

Preparar equipo Linux CentOS 7 para instalar Zimbra y montar servidor de correo electrónico

Instalar paquetes necesarios para Zimbra en Linux CentOS

Instalaremos los siguientes paquetes, algunos necesarios para Zimbra y otros herramientas útiles para comprobaciones y testeos posteriores: perl, perl-core, ntpl, nmap, sudo, libidn, gmp, libaio, libstdc++, unzip, sysstat, sqlite, net-tools, w3m y bind-utils. Para ello ejecutaremos el siguiente comando:

yum install perl perl-core ntpl nmap sudo libidn gmp libaio libstdc++ unzip sysstat sqlite net-tools w3m bind-utils -y

Si todo es correcto nos devolverá «¡Listo!»:

Instalar paquetes necesarios para Zimbra en Linux CentOS

Configuración de IP del equipo Linux CentOS

A continuación nos aseguraremos de que la IP del equipo Linux es estática. Para comprobar la configuración de red, en primer lugar obtendremos el nombre del fichero de configuración ejecutando el comando:

ip addr

Que nos devolverá los adaptadores de red del equipo y su configuración. En nuestro caso nos interesará el que empieza por «ens…»:

Configuración de IP del equipo Linux CentOS

CentOS añade ifg- al nombre del fichero de configuración de red, por lo tanto será ifg-ens192 y debe estar ubicado en /etc/sysconfig/network-scripts/. Editaremos este fichero con cualquier editor de texto plano (vi, nano):

nano /etc/sysconfig/network-scripts/ifcfg-ens192

Que debe tener una configuración similar a la siguiente:

Configuración de IP del equipo Linux CentOS

Lo importante es que tengamos una IP estática establecida y no por DHCP (BOOTPROTO=static), es lo recomendable. También podremos definir los servidores DNS externos (DNS1=…) para resolver los nombres de los dominios de Internet. Un ejemplo del contenido de este fichero:

TYPE=»Ethernet»
PROXY_METHOD=»none»
BROWSER_ONLY=»no»
BOOTPROTO=»static»
DEFROUTE=»yes»
IPV4_FAILURE_FATAL=»no»
IPV6INIT=»no»
IPV6_AUTOCONF=»yes»
IPV6_DEFROUTE=»yes»
IPV6_FAILURE_FATAL=»no»
IPV6_ADDR_GEN_MODE=»stable-privacy»
NAME=»ens192″
UUID=»d8405-a2-40c-75-21c43ec»
DEVICE=»ens192″
ONBOOT=»yes»
IPADDR=»192.168.1.7″
PREFIX=»24″
GATEWAY=»192.168.1.1″
DNS1=»1.1.1.1″
DNS2=»8.8.8.8″
DNS3=»127.0.0.1″
ZONE=

Si hemos hecho modificaciones en el fichero de configuración de red deberemos reiniciar el servicio de red para que se apliquen estos cambios. Podemos hacer esto ejecutando:

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network.service

Configuración de IP del equipo Linux CentOS

Que nos devolverá:

[root@srvmail ~]# systemctl stop NetworkManager
[root@srvmail ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@srvmail ~]# systemctl restart network.service

Desactivar y desinstalar servicios postfix y sendmail

Desactivaremos del arranque y si están iniciados los servicios postfix y sendmail. No siempre pero en algunas distribuciones vienen instalados y si los dejamos pueden entrar en conflicto con Zimbra dado que usan los mismos puertos. Además de que Zimbra sustituye estos servicios. Para detenerlos ejecutaremos:

systemctl stop postfix

systemctl stop sendmail

Y para desactivarlos del arranque usaremos:

systemctl disable postfix

systemctl disable sendmail

Desactivar y desinstalar servicios postfix y sendmail

En nuestro caso, como se ve en la imagen, sí teníamos postfix pero no sendmail.

Y lo más fiable sería desinstalar ambos servicios. Para comprobar si están instalados:

rpm -qa postfix

Si devuelve algo así:

[root@srvmail ~]# rpm -qa postfix
postfix-2.10.1-6.el7.x86_64

Quiere decir que está instalado, para desinstalarlo:

rpm -e postfix

Repetiremos el proceso para sendmail.

Nombre de red hostname, hosts y DNS en equipo Linux CentOS

Siguiendo con la configuración del equipo Linux, deberemos establecer el nombre hostname y los DNS correctamente para que pueda resolver las direcciones de Internet.

Para comprobar el nombre DNS que tenemos actualmente en el equipo (hostname), ejecutaremos el siguiente comando:

hostnamectl

Que nos devolverá:

[root@srvmail ~]# hostnamectl
Static hostname: srvmail.local
Icon name: computer-vm
Chassis: vm
Machine ID: 07511a8282ab
Boot ID: 1c7e2094968b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64

Es conveniente establecer el nombre «pretty» para el hostname que será el que se muestre en la información de los encabezados de mail enviados desde nuestro servidor. De esta forma no aparecerá nuestro nombre de red local en dicha información que puede consultar el destinatario de los correos electrónico. Para establecerlo ejecutaremos el comando:

hostnamectl set-hostname –pretty «servidor_mail»

Cambiando «servidor_mail» por el nombre que queramos dar a nuestro servidor y que puede consultar el destinatario de los correos electrónicos.

Nombre de red hostname, hosts y DNS en equipo Linux CentOS

Si queremos cambiar también el nombre base hostname del servidor usaremos el comando:

hostnamectl sethostname mail

Donde cambiaremos «mail» por el nombre que queramos darle al equipo.

Es conveniente configurar correctamente el fichero /etc/hosts, de lo contrario podríamos recibir el siguiente error al intentar instalar Zimbra:

ERROR: Installation can not proceeed. Please fix your /etc/hosts file to contain: <ip> <FQHN> <HN>
Where <IP> is the ip address of the host, <FQHN> is the FULLY QUALIFIED host name, and <HN> is the (optional) hostname-only portion

Editaremos el fichero /etc/hosts con nano o vi:

nano /etc/hosts

  • Comentaremos la línea que emipieza por ::1 localhost…, añadiendo delante una almohadilla #.
  • Añadiremos una línea nueva al principio con el siguiente formato:
    • [IP del equipo Linux] [hostname.dominio] [hostname]
    • Por ejemplo, si nuestro equipo tiene de nombre hostname srvmail y la IP 192.168.1.7, añadiremos la línea:
      • 192.168.1.7 mail.comunidadbiker-mtb.com mail

El fichero /etc/hosts quedaría:

192.168.1.7 mail.comunidadbiker-mtb.com mail
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Nombre de red hostname, hosts y DNS en equipo Linux CentOS

Como vemos debe coincidir el nombre del fichero /etc/hosts con el hostname, si no coincide puede que recibamos el error anterior.

Guardaremos los cambios pulsando Control + O y saldremos de la edición pulsando Control + X.

Apertura de puertos en cortafuegos y deshabilitar SELinux en CentOS 7

Si tenemos activo el cortafuegos local del equipo Linux CentOS 7 deberemos abrir los siguientes puertos para que funcione Zimbra: 25, 80, 110, 143, 443, 465, 587, 993, 995, 3443, 9071 y 7071. Podemos hacerlo con los siguientes comandos:

iptables -A INPUT -p tcp –dport 25 -j ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 110 -j ACCEPT
iptables -A INPUT -p tcp –dport 143 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
iptables -A INPUT -p tcp –dport 465 -j ACCEPT
iptables -A INPUT -p tcp –dport 587 -j ACCEPT
iptables -A INPUT -p tcp –dport 993 -j ACCEPT
iptables -A INPUT -p tcp –dport 995 -j ACCEPT
iptables -A INPUT -p tcp –dport 3443 -j ACCEPT
iptables -A INPUT -p tcp –dport 9071 -j ACCEPT
iptables -A INPUT -p tcp –dport 7071 -j ACCEPT

Apertura de puertos en cortafuegos y deshabilitar SELinux en CentOS 7

Se podría desactivar el cortafuegos pero no lo recomendamos por seguridad. Si tenemos algún problema y queremos desactivarlo (no recomendable), podemos ejecutar:

systemctl stop firewalld

Y si queremos que no se active al arrancar el equipo (no recomendamos esta práctica):

systemctl disable firewalld

Para el caso de SELinux, que puede bloquear determinadas acciones, lo podremos desactivar, al menos para comprobar que todo funciona correctamente, con el comando:

setenforce permissive

Para desactivarlo definitivamente habría que editar el fichero /etc/selinux/config con:

nano /etc/selinux/config

y en la línea SELINUX=enforcing cambiar por: SELINUX=disabled

Apertura de puertos en cortafuegos y deshabilitar SELinux en CentOS 7

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Una vez seguidos todos los pasos anteriores procederemos a descargar, descomprimir e instalar Zimbra Collaboration Open Source Edition en el equipo Linux CentOS. En primer lugar descargaremos la última versión de Zimbra, en nuestro caso la 8.8.8. Podéis consultar la versión actual en la web oficial:

Necesitaremos el comando wget para descargar el fichero correspondiente. En las distribuciones Linux CentoOS Minimal no viene instalado este comando, para instalarlo:

yum install wget

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Nos moveremos a la carpeta /tmp y realizaremos la descarga del fichero de instalación de Zimbra con:

cd /tmp

wget https://files.zimbra.com/downloads/8.8.8_GA/zcs-8.8.8_GA_2009.RHEL7_64.20180322150747.tgz

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Descomprimiremos el fichero descargado con:

tar xzf zcs-8.8.8_GA_2009.RHEL7_64.20180322150747.tgz

Accederemos a la carpeta generada en la descompresión con:

cd zcs-8.8.8_GA_2009.RHEL7_64.20180322150747

Iniciaremos el proceso de instalación ejecutando:

./install.sh

El programa de instalación buscará si hay algún componente de Zimbra ya instalado, en caso contrario continuará con el proceso. Nos solicitará que leamos los términos de licencia y si estamos de acuerdo escribiremos «y» y pulsaremos INTRO:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Operations logged to /tmp/install.log.c5dhQxE5
Checking for existing installation…
zimbra-chat…NOT FOUND
zimbra-drive…NOT FOUND
zimbra-imapd…NOT FOUND
zimbra-license-tools…NOT FOUND
zimbra-license-extension…NOT FOUND
zimbra-network-store…NOT FOUND
zimbra-network-modules-ng…NOT FOUND
zimbra-ldap…NOT FOUND
zimbra-logger…NOT FOUND
zimbra-mta…NOT FOUND
zimbra-dnscache…NOT FOUND
zimbra-snmp…NOT FOUND
zimbra-store…NOT FOUND
zimbra-apache…NOT FOUND
zimbra-spell…NOT FOUND
zimbra-convertd…NOT FOUND
zimbra-memcached…NOT FOUND
zimbra-proxy…NOT FOUND
zimbra-archiving…NOT FOUND
zimbra-core…NOT FOUND
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
SYNACOR, INC. («SYNACOR») WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.
License Terms for this Zimbra Collaboration Suite Software:
https://www.zimbra.com/license/zimbra-public-eula-2-6.html
Do you agree with the terms of the software license agreement? [N]

Responderemos «y» a la pregunta Use Zimbra’s package repository [Y]:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Nos solicitará los paquetes a instalar, respondiendo «y» e INTRO para los que queramos instalar y «n» e INTRO para los que no. En nuestro caso:

  • Install zimbra-ldap [Y] y
  • Install zimbra-logger [Y] y
  • Install zimbra-mta [Y] y
  • Install zimbra-dnscache [Y] n
  • Install zimbra-snmp [Y] y
  • Install zimbra-store [Y] y
  • Install zimbra-apache [Y] y
  • Install zimbra-spell [Y] y
  • Install zimbra-memcached [Y] y
  • Install zimbra-proxy [Y] n
  • Install zimbra-chat [Y] y
  • Install zimbra-drive [Y] y
  • Install zimbra-imapd (BETA – for evaluation only) [N] n

No instalaremos zimbra-dnscache, zimbra-proxy y zimbra-imapd:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Importing Zimbra GPG key
Configuring package repository
Checking for installable packages
Found zimbra-core (local)
Found zimbra-ldap (local)
Found zimbra-logger (local)
Found zimbra-mta (local)
Found zimbra-dnscache (local)
Found zimbra-snmp (local)
Found zimbra-store (local)
Found zimbra-apache (local)
Found zimbra-spell (local)
Found zimbra-memcached (repo)
Found zimbra-proxy (local)
Found zimbra-chat (repo)
Found zimbra-drive (repo)
Found zimbra-imapd (local)
Select the packages to install
Install zimbra-ldap [Y] y
Install zimbra-logger [Y] y
Install zimbra-mta [Y] y
Install zimbra-dnscache [Y] n
Install zimbra-snmp [Y] y
Install zimbra-store [Y] y
Install zimbra-apache [Y] y
Install zimbra-spell [Y] y
Install zimbra-memcached [Y] y
Install zimbra-proxy [Y] n
Install zimbra-chat [Y] y
Install zimbra-drive [Y] y
Install zimbra-imapd (BETA – for evaluation only) [N] n

Antes de continuar con la instalación, el asistente nos solicitará confirmación para realizar los cambios, pulsaremos «y» e INTRO:

Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.
Installing:
zimbra-core
zimbra-ldap
zimbra-logger
zimbra-mta
zimbra-snmp
zimbra-store
zimbra-apache
zimbra-spell
zimbra-memcached
zimbra-chat
zimbra-drive
The system will be modified. Continue? [N]

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

El texto completo de la instalación:

Beginning Installation – see /tmp/install.log.7HogkGNr for details…
zimbra-core-components will be downloaded and installed.
zimbra-timezone-data will be installed.
zimbra-common-core-jar will be installed.
zimbra-common-mbox-conf will be installed.
zimbra-common-mbox-conf-attrs will be installed.
zimbra-common-mbox-conf-msgs will be installed.
zimbra-common-mbox-conf-rights will be installed.
zimbra-common-mbox-db will be installed.
zimbra-common-mbox-docs will be installed.
zimbra-common-mbox-native-lib will be installed.
zimbra-common-core-libs will be installed.
zimbra-core will be installed.
zimbra-ldap-components will be downloaded and installed.
zimbra-ldap will be installed.
zimbra-logger will be installed.
zimbra-mta-components will be downloaded and installed.
zimbra-mta will be installed.
zimbra-snmp-components will be downloaded and installed.
zimbra-snmp will be installed.
zimbra-store-components will be downloaded and installed.
zimbra-jetty-distribution will be downloaded and installed.
zimbra-mbox-conf will be installed.
zimbra-mbox-war will be installed.
zimbra-mbox-service will be installed.
zimbra-mbox-admin-common will be installed.
zimbra-mbox-webclient-war will be installed.
zimbra-mbox-admin-console-war will be installed.
zimbra-mbox-store-libs will be installed.
zimbra-store will be installed.
zimbra-apache-components will be downloaded and installed.
zimbra-apache will be installed.
zimbra-spell-components will be downloaded and installed.
zimbra-spell will be installed.
zimbra-memcached will be downloaded and installed.
zimbra-chat will be downloaded and installed (later).
zimbra-drive will be downloaded and installed (later).
Downloading packages (9):
zimbra-core-components
zimbra-ldap-components
zimbra-mta-components
zimbra-snmp-components
zimbra-store-components
zimbra-jetty-distribution
zimbra-apache-components
zimbra-spell-components
zimbra-memcached
…done
Removing /opt/zimbra
Removing zimbra crontab entry…done.
Cleaning up zimbra init scripts…done.
Cleaning up /etc/security/limits.conf…done.
Finished removing Zimbra Collaboration Server.
Installing repo packages (9):
zimbra-core-components
zimbra-ldap-components
zimbra-mta-components
zimbra-snmp-components
zimbra-store-components
zimbra-jetty-distribution
zimbra-apache-components
zimbra-spell-components
zimbra-memcached
…done
Installing local packages (25):
zimbra-timezone-data
zimbra-common-core-jar
zimbra-common-mbox-conf
zimbra-common-mbox-conf-attrs
zimbra-common-mbox-conf-msgs
zimbra-common-mbox-conf-rights
zimbra-common-mbox-db
zimbra-common-mbox-docs
zimbra-common-mbox-native-lib
zimbra-common-core-libs
zimbra-core
zimbra-ldap
zimbra-logger
zimbra-mta
zimbra-snmp
zimbra-mbox-conf
zimbra-mbox-war
zimbra-mbox-service
zimbra-mbox-admin-common
zimbra-mbox-webclient-war
zimbra-mbox-admin-console-war
zimbra-mbox-store-libs
zimbra-store
zimbra-apache
zimbra-spell
…done
Installing extra packages (2):
zimbra-chat
zimbra-drive
…done
done.
Checking for port conflicts
Main menu
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-logger: Enabled
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@comunidadbiker-mtb.com
******* +Admin Password UNSET
+Anti-virus quarantine user: virus-quarantine.eqrienev@comunidadbiker-mtb.com
+Enable automated spam training: yes
+Spam training user: spam.sjmp3t2a@comunidadbiker-mtb.com
+Non-spam(Ham) training user: ham.qupotupc1w@comunidadbiker-mtb.com
+SMTP host: mail
+Web server HTTP port: 8080
+Web server HTTPS port: 8443
+HTTP proxy port: 80
+HTTPS proxy port: 443
+Web server mode: https
+IMAP server port: 7143
+IMAP server SSL port: 7993
+IMAP proxy port: 143
+IMAP SSL proxy port: 993
+POP server port: 7110
+POP server SSL port: 7995
+POP proxy port: 110
+POP SSL proxy port: 995
+Use spell check server: yes
+Spell server URL: http://mail:7780/aspell.php
+Configure for use with mail proxy: TRUE
+Configure for use with web proxy: TRUE
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email: admin@comunidadbiker-mtb.com
+Version update source email: admin@comunidadbiker-mtb.com
+Install mailstore (service webapp): yes
+Install UI (zimbra,zimbraAdmin webapps): yes
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
Address unconfigured (**) items (? – help)

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Pulsaremos «6» e INTRO para establecer la contraseña del administrador de zimbra-store:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

En el submenú pusaremos «4» e INTRO:

Store configuration
1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@comunidadbiker-mtb.com
** 4) Admin Password UNSET
5) Anti-virus quarantine user: virus-quarantine.eqrienev@comunidadbiker-mtb.com
6) Enable automated spam training: yes
7) Spam training user: spam.sjmp3t2a@comunidadbiker-mtb.com
8) Non-spam(Ham) training user: ham.qupotupc1w@comunidadbiker-mtb.com
9) SMTP host: mail
10) Web server HTTP port: 8080
11) Web server HTTPS port: 8443
12) HTTP proxy port: 80
13) HTTPS proxy port: 443
14) Web server mode: https
15) IMAP server port: 7143
16) IMAP server SSL port: 7993
17) IMAP proxy port: 143
18) IMAP SSL proxy port: 993
19) POP server port: 7110
20) POP server SSL port: 7995
21) POP proxy port: 110
22) POP SSL proxy port: 995
23) Use spell check server: yes
24) Spell server URL: http://mail:7780/aspell.php
25) Configure for use with mail proxy: TRUE
26) Configure for use with web proxy: TRUE
27) Enable version update checks: TRUE
28) Enable version update notifications: TRUE
29) Version update notification email: admin@comunidadbiker-mtb.com
30) Version update source email: admin@comunidadbiker-mtb.com
31) Install mailstore (service webapp): yes
32) Install UI (zimbra,zimbraAdmin webapps): yes
Select, or ‘r’ for previous menu [r] 4

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Introduciremos la contraseña para el usuario administrador y pulsaremos INTRO:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Pulsaremos r e INTRO para volver al menú principal:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Una vez establecidas todas las opciones de configuración (podemos hacerlo posteriormente), pulsaremos «a» e INTRO para aplicarlas:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

El asistente de instalación de Zimbra realizará los últimos cambios en el sistema:

Main menu
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-logger: Enabled
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-store: Enabled
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
*** CONFIGURATION COMPLETE – press ‘a’ to apply
Select from menu, or press ‘a’ to apply config (? – help) a
Save configuration data to a file? [Yes]
Save config in file: [/opt/zimbra/config.12897]
Saving config in /opt/zimbra/config.12897…done.
The system will be modified – continue? [No] y
Operations logged to /tmp/zmsetup.20180620-220458.log
Setting local config values…done.
Initializing core config…Setting up CA…done.
Deploying CA to /opt/zimbra/conf/ca …done.
Creating SSL zimbra-store certificate…done.
Creating new zimbra-ldap SSL certificate…done.
Creating new zimbra-mta SSL certificate…done.
Installing mailboxd SSL certificates…done.
Installing MTA SSL certificates…done.
Installing LDAP SSL certificate…done.
Initializing ldap…done.
Setting replication password…done.
Setting Postfix password…done.
Setting amavis password…done.
Setting nginx password…done.
Setting BES searcher password…done.
Creating server entry for mail…done.
Setting Zimbra IP Mode…done.
Saving CA in ldap…done.
Saving SSL Certificate in ldap…done.
Setting spell check URL…done.
Setting service ports on mail…done.
Setting zimbraFeatureTasksEnabled=TRUE…done.
Setting zimbraFeatureBriefcasesEnabled=TRUE…done.
Checking current setting of zimbraReverseProxyAvailableLookupTargets
Querying LDAP for other mailstores
Searching LDAP for reverseProxyLookupTargets…done.
Adding mail to zimbraReverseProxyAvailableLookupTargets
Updating zimbraLDAPSchemaVersion to version ‘1521707697’
Setting TimeZone Preference…done.
Initializing mta config…done.
Setting services on mail…done.
Adding mail to zimbraMailHostPool in default COS…done.
Creating domain comunidadbiker-mtb.com…done.
Setting default domain name…done.
Creating domain comunidadbiker-mtb.com…already exists.
Creating admin account admin@comunidadbiker-mtb.com…done.
Creating root alias…done.
Creating postmaster alias…done.
Creating user spam.sjmp3t2a@comunidadbiker-mtb.com…done.
Creating user ham.qupotupc1w@comunidadbiker-mtb.com…done.
Creating user virus-quarantine.eqrienev@comunidadbiker-mtb.com…done.
Setting spam training and Anti-virus quarantine accounts…done.
Initializing store sql database…done.
Setting zimbraSmtpHostname for mail…done.
Configuring SNMP…done.
Setting up syslog.conf…done.
Starting servers…done.
Installing common zimlets…
com_zimbra_adminversioncheck…done.
com_zimbra_attachcontacts…done.
com_zimbra_attachmail…done.
com_zimbra_bulkprovision…done.
com_zimbra_cert_manager…done.
com_zimbra_clientuploader…done.
com_zimbra_date…done.
com_zimbra_email…done.
com_zimbra_mailarchive…done.
com_zimbra_phone…done.
com_zimbra_proxy_config…done.
com_zimbra_srchhighlighter…done.
com_zimbra_tooltip…done.
com_zimbra_url…done.
com_zimbra_viewmail…done.
com_zimbra_webex…done.
com_zimbra_ymemoticons…done.
com_zextras_chat_open…done.
com_zextras_drive_open…done.
Finished installing common zimlets.
Restarting mailboxd…done.
Creating galsync account for default domain…done.
You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
The VERSION of zcs installed (8.8.8_GA_2009_RHEL7_64)
The ADMIN EMAIL ADDRESS created (admin@comunidadbiker-mtb.com)
Notify Zimbra of your installation? [Yes]

Una vez finalizada la instalación y el arranque de los servicios de Zimbra nos solicitará is queremos enviar información de la instalación del servidor a Zimbra, respondremos y ó n:

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Finalmente pulsaremos INTRO para volver a la línea de comandos:

Notification skipped
Setting up zimbra crontab…done.
Moving /tmp/zmsetup.20180620-220458.log to /opt/zimbra/log
Configuration complete – press return to exit

Instalar Zimbra Collaboration Open Source Edition 8.8.8 en Linux CentOS 7

Acceso a la consola de administración del servidor de mail Zimbra

Una vez instalado y configurado el sistema podremos usar el servidor de correo Zimbra, para ello abriremos un navegador web desde cualquier equipo de la red o desde Internet (si hemos redireccionado el puerto 7071 como indicamos al principio de este artículo). Introduciremos la siguiente dirección o URL:

https://mail:7071

(Cambiando «mail» por el nombre del servidor de Linux o la IP si estamos en la LAN. Si estamos en Internet deberemos introducir la dirección del dominio registrada en los MX, en nuestro caso https://mail.comunidadbiker-mtb.com:7071)

Pulsaremos «Avanzado»:

Acceso a la consola de administración del servidor de mail Zimbra

Y pulsaremos en «Añadir excepción»:

Acceso a la consola de administración del servidor de mail Zimbra

Pulsaremos en «Confirmar excepción de seguridad»:

Acceso a la consola de administración del servidor de mail Zimbra

Introduciremos el nombre de usuario administrador y la contraseña (establecidos en el proceso de instalación) y pulsaremos «Iniciar sesión»:

Acceso a la consola de administración del servidor de mail Zimbra

Nos mostrará la consola de aministración web Zimbra Administration, desde la que podremos realizar varias tareas y ver el estado del servidor. Por ejemplo, si queremos añadir usuarios pulsaremos en «Particular» y en «Añadir cuenta…»:

Acceso a la consola de administración del servidor de mail Zimbra

Introduciremos los datos del nuevo buzón: nombre, apellidos, nombre para mostrar, contraseña, zona horaria y otros muchos datos que nos solicitará (no obligatorios):

Acceso a la consola de administración del servidor de mail Zimbra

Desde la creación del usuario podemos establecer todas las opciones de configuración del buzón: límites y cuotas, tema por defecto, estilo visual, alias, listas de distribución, etc..:

Acceso a la consola de administración del servidor de mail Zimbra

Acceso a correo electrónico webmail de Zimbra desde navegador web

Si queremos acceder como un usuario normal para trabajar con la aplicación web de correo electrónico (enviar y recibir correos electrónicos, agenda, tareas, contactos, chat, etc.) abriremos cualquier navegador. Si estamos fuera de la red LAN introcudiremos la siguiente dirección en el navegador:

https://mail.comunidadbiker-mtb.com:8443/mail

(cambiando mail.comunidadbiker-mtb.com por el registro MX de nuestro dominio o la IP pública)

Si estamos en la LAN podemos introducir el nombre del equipo (mail en nuestro caso) o bien la IP local:

https://mai:8443/mail

Usando el puerto 8443 que debe estar mapeado en el router o cortafuegos si vamos a acceder desde fuera de la LAN, como hemos indicado al principio de este artículo.

Nos solicitará que añadamos una excepción de seguridad, al igual que para el acceso a la consola de administración de Zimbra, dado que es protocolo seguro HTTPS:

Acceso a correo electrónico webmail de Zimbra desde navegador web

Para que no nos vuelva a solicitar esta información pulsaremos en «Confirmar excepción de seguridad»:

Acceso a correo electrónico webmail de Zimbra desde navegador web

Introduciremos usuario (normalmente dirección completa de correo electrónico dado que Zimbra es multidominio) y contraseña para el usuario que quiera iniciar sesión:

Acceso a correo electrónico webmail de Zimbra desde navegador web

Y tendremos disponible la aplicación webmail de Zimbra que nos permitirá trabajar con nuestro servidor de correo electrónico para realizar las tareas habituales: leer y enviar correos electrónicos, añadir tareas, citas, contactos y muchas más opciones:

Acceso a correo electrónico webmail de Zimbra desde navegador web

Consulta estado de Zimbra y posibles avisos o errores en log

Para consultar el estado actual de cada proceso que se ejecuta en Zimbra (a nivel interno) podremos ver el contenido del fichero de log /etc/var/zimbra.log. Por ejemplo, con el siguiente comando podremos ver el estado actual en tiempo real de este fichero de log:

tail -f /var/log/zimbra.log

Log del estado de Zimbra y posibles avisos o errores

Si queremos consultar el estado de los servicios de Zimbra accederemos a la consola con el usuario zimbra, con el siguiente comando:

su zimbra

Y ejecutaremos este otro comando (propio de Zimbra):

zmcontrol status

Posibles errores en la instalación de Zimbra y su solución

En el caso del siguiente error podemos responder «n» en el proceso de instalación y configurar posteriormente el hostname y el /etc/hosts como indicamos al principio del artículo:

Running Post Installation Configuration:
Operations logged to /tmp/zmsetup.20180620-220458.log
Installing LDAP configuration database…done.
Setting defaults…No results returned for A lookup of mail.comunidadbiker-mtb.com
Checked nameservers:
1.1.1.1
8.8.8.8
127.0.0.1
No results returned for AAAA lookup of mail.comunidadbiker-mtb.com
Checked nameservers:
1.1.1.1
8.8.8.8
127.0.0.1
DNS ERROR resolving mail.comunidadbiker-mtb.com
It is suggested that the hostname be resolvable via DNS
Change hostname [Yes]

Para el siguiente error en el proceso de instalación  de Zimbra ya se ha explicado su solución principio de este artículo:

ERROR: Installation can not proceeed. Please fix your /etc/hosts file to contain: <ip> <FQHN> <HN>
Where <IP> is the ip address of the host, <FQHN> is the FULLY QUALIFIED host name, and <HN> is the (optional) hostname-only portion

Errores en el envío y recepción de mails (de fichero /var/log/zimbra.log):

Jun 21 10:53:18 mail postfix/postscreen[28719]: CONNECT from [192.168.1.7]:56208 to [192.168.1.7]:25
Jun 21 10:53:18 mail postfix/postscreen[28719]: WHITELISTED [192.168.1.7]:56208
Jun 21 10:53:19 mail postfix/smtpd[28720]: connect from mail.comunidadbiker-mtb.com[192.168.1.7]
Jun 21 10:53:19 mail postfix/smtpd[28720]: NOQUEUE: filter: RCPT from mail.comunidadbiker-mtb.com[192.168.1.7]: <noreply@comunidadbiker-mtb.com>: Sender address triggers FILTER smtp-amavis:[127.0.0.1]:10026; from=<noreply@comunidadbiker-mtb.com> to=<alonsojpd@comunidadbiker.com> proto=ESMTP helo=<mail>
Jun 21 10:53:19 mail postfix/smtpd[28720]: 74FEF453412E: client=mail.comunidadbiker-mtb.com[192.168.1.7]
Jun 21 10:53:19 mail postfix/cleanup[28726]: 74FEF453412E: message-id=<133551641.49.1529571197784.JavaMail.zimbra@comunidadbiker-mtb.com>
Jun 21 10:53:19 mail postfix/qmgr[14733]: 74FEF453412E: from=<noreply@comunidadbiker-mtb.com>, size=1226, nrcpt=1 (queue active)
Jun 21 10:53:19 mail postfix/smtpd[28720]: disconnect from mail.comunidadbiker-mtb.com[192.168.1.7] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Jun 21 10:53:19 mail postfix/smtp[28727]: connect to 127.0.0.1[127.0.0.1]:10026: Connection refused
Jun 21 10:53:19 mail postfix/smtp[28727]: 74FEF453412E: to=<alonsojpd@comunidadbiker.com>, relay=none, delay=0.24, delays=0.12/0.12/0/0, dsn=4.4.1, status=deferred (connect to 127.0.0.1[127.0.0.1]:10026: Connection refused)

Problemas con la configuración de los DNS, hostname y MX pueden generar este error al intentar iniciar los servicios de Zimbra:

Host mail
Starting ldap…Done.
Failed.
Failed to start slapd. Attempting debug start to determine error.
5b2b8a47 daemon: bind(7) failed errno=99 (Cannot assign requested address)
5b2b8a47 slap_open_listener: failed on ldap://mail:389

Error al iniciar servicio amavis, antispam y antivirus:

[zimbra@mail ~]$ zmamavisdctl restart
Stopping amavisd…amavisd is not running.
Stopping amavisd-mc… done.
Starting amavisd-mc…done.
Starting amavisd… The value of variable $myhostname is «mail», but should have beena fully qualified domain name; perhaps uname(3) did not provide such. You must explicitly assign a FQDN of this host to variable $myhostname in amavisd.conf, or fix what uname(3) provides as a host’s network name!
failed.