Búsqueda de sitios web

Instalación multiservidor de Zimbra en CentOS 7


Esta guía tiene como objetivo ayudarle a realizar una instalación multiservidor de Zimbra en CentOS 7. Zimbra ha sido calificada como la mejor suite de colaboración de correo de código abierto. Sólo se puede combinar con Exchange y otros productos de correo electrónico comerciales.

La instalación de Zimbra de un solo servidor es un proceso sencillo, pero obtener una configuración de múltiples servidores es un proceso con muchas partes móviles y debe realizarse en el siguiente orden.

  1. Instalar servidores LDAP: replicación multimaestro (MMR) o replicación
  2. Instalar servidores de buzones de correo Zimbra
  3. Instalar servidores MTA
  4. Instalar servidores proxy

Mi configuración tendrá los siguientes servidores:

  • 2 servidores LDAP con replicación multimaestro (MMR)
  • 2 servidores de buzones
  • 2 servidores MTA
  • 2 servidores Proxy – con keepalived y VIP

Entonces, la cantidad total de servidores para esta configuración es 7. Los nombres de host usan los siguientes formatos

  • Servidores LDAP: ldap-01.domain.com y ldap-02.domain.com
  • Servidores de buzones de correo: mx-01.domain.com y mx-02.domain.com
  • 2 servidores MTA: mta-01.domain.com y mta-02.domain.com
  • 2 servidores proxy: proxy-01.domain.com y proxy-02.domain.com. VIP en mail.dominio.com

Es posible que tengas que reemplazar dominio.com con tu nombre de dominio activo si sigues estrictamente esta guía. O modifíquelo para adaptarlo a su entorno.

Configuración e instalación del entorno de laboratorio

Los pasos a continuación cubrirán la configuración del sistema operativo y la instalación de varios servicios de Zimbra.

Paso 1: instale CentOS 7 en todos los servidores

El primer paso es instalar CentOS 7 en todos los servidores de destino y actualizar los paquetes a la última versión ejecutando:

sudo yum -y update

Paso 2: Instalar los paquetes de requisitos previos de Zimbra y establecer nombres de host

Instale todos los paquetes necesarios para la instalación de Zimbra y establezca nombres de host en todos los servidores. Estos paquetes se pueden instalar ejecutando el comando:

sudo yum -y install perl-core unzip libaio nmap-ncat sysstat openssh-clients

Establezca nombres de host usando el comando:

$ sudo hostnamectl set-hostname <hostname>

P.ej

sudo hostnamectl set-hostname ldap-01.domain.com

Paso 3: Modifique /etc/hosts con el nombre de host y la dirección IP

Ahora que has configurado el nombre de host correcto en cada servidor, edita el archivo de hosts para tener la dirección IP y el nombre de host. Puedes usar el comando echo para esto:

$ sudo vim /etc/hosts
192.168.1.20 mta-01.domain.com 

Haz esto en todos los servidores que tengas.

Paso 4: descargue la última versión de Zimbra localmente en todos los servidores

Descargue el paquete comprimido Zimbra en cada servidor y extráigalo para prepararlo para el proceso de instalación. Para esta instalación, estoy usando Zimbra 8.8.

wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3869.RHEL7_64.20190918004220.tgz
tar xvf zcs-8.8.15_GA_3869.RHEL7_64.20190918004220.tgz

Me gusta conservar el nombre completo del archivo y el directorio, ya que ayuda más adelante al realizar una actualización. Si descarga la misma versión de Zimbra, debe tener un directorio llamado zcs-8.8.8_GA_2009.RHEL7_64.20180322150747/.

Paso 4: Instale el servidor LDAP 1 de Zimbra (ldap-01.domain.com)

Comenzaremos con la primera instalación de Zimbra en el servidor LDAP. Para el otro servidor LDAP configuraremos la replicación multimaestro.

cd zcs-8.8.15_GA_3869.RHEL7_64.20190918004220

Inicie el proceso de instalación:

sudo ./install.sh

Complete la información como a continuación:

Do you agree with the terms of the software license agreement? [N] y       
Use Zimbra's package repository [Y] y

Select the packages to install
Install zimbra-ldap [Y] y       

Install zimbra-logger [Y] n

Install zimbra-mta [Y] n

Install zimbra-dnscache [N] n

Install zimbra-snmp [Y] y

Install zimbra-store [Y] n

Install zimbra-apache [Y] n

Install zimbra-spell [Y] n

Install zimbra-memcached [Y] n

Install zimbra-proxy [Y] n

Install zimbra-chat [N] n

Install zimbra-drive [N] n
Checking required space for zimbra-core

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-snmp

The system will be modified.  Continue? [N] Y

La descarga de paquetes debería comenzar ahora. Mis configuraciones son las siguientes:

Common configuration

   1) Hostname:                                ldap-01.domain.com
   2) Ldap master host:                        ldap-01.domain.com
   3) Ldap port:                               389                           
   4) Ldap Admin password:                     set                           
   5) Store ephemeral attributes outside Ldap: no                            
   6) Secure interprocess communications:      yes                           
   7) TimeZone:                                UTC                           
   8) IP Mode:                                 ipv4                          
   9) Default SSL digest:                      sha256 

Ldap configuration

   1) Status:                                  Enabled                       
   2) Create Domain:                           yes                           
   3) Domain to create:                        mail.domain.com
   4) Ldap root password:                      set                           
   5) Ldap replication password:               set                           
   6) Ldap postfix password:                   set                           
   7) Ldap amavis password:                    set                           
   8) Ldap nginx password:                     set                           
   9) Ldap Bes Searcher password:              set 

Vuelva a verificar la configuración del host maestro, el nombre de host y el dominio de Ldap para crear. Una vez que estés convencido con la configuración, presiona para iniciar el proceso de instalación y configuración.

*** 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.31786] 
Saving config in /opt/zimbra/config.31786...done.
The system will be modified - continue? [No] Yes

Una vez que se complete la instalación, obtenga las credenciales de contraseña que necesitará para los siguientes pasos:

ldap_amavis_password = 4Y9WzugHAz
ldap_bes_searcher_password = 4Y9WzugHAz
ldap_nginx_password = 4Y9WzugHAz
ldap_postfix_password = 4Y9WzugHAz
ldap_replication_password = 4Y9WzugHAz
ldap_root_password = 4Y9WzugHAz
zimbra_ldap_password = 4Y9WzugHAz

Paso 5: habilite LDAP MMR en el servidor ldap-01

Dado que estamos configurando ambos servidores LDAP para que actúen como maestros, debemos habilitar esta funcionalidad en el primer servidor maestro que acabamos de instalar.

Habilitar la replicación Multi-Master en un maestro de nodo único existente:

[root@ldap-01 ~]# su - zimbra
[zimbra@ldap-01 ~]$ ./libexec/zmldapenable-mmr -s 1 -m ldap://ldap-02.domain.com:389/
[zimbra@ldap-01 ~]$ ./libexec/zmldapenable-mmr -r 101 -m ldap://dap-02.domain.com:389/
[zimbra@ldap-01 ~]$ /opt/zimbra/libexec/zmldapmmrtool -q
Master Server ID: 1
Master replication agreement: 1
rid: 100 URI: ldap://ldap-02.domain.com:389/ TLS: critical
Master replication agreement: 2
rid: 101 URI: ldap://ldap-02.domain.com:389/ TLS: critical
[zimbra@ldap-01 ~]$

En Ldap Server 2, instale Zimbra como la primera vez, pero su configuración debería verse como a continuación:

Common configuration

   1) Hostname:                                ldap-02.domain.com
   2) Ldap master host:                        ldap-01.domain.com
   3) Ldap port:                               389                           
   4) Ldap Admin password:                     set                           
   5) Store ephemeral attributes outside Ldap: no                            
   6) Secure interprocess communications:      yes                           
   7) TimeZone:                                UTC                           
   8) IP Mode:                                 ipv4                          
   9) Default SSL digest:                      sha256 


Ldap configuration

   1) Status:                                  Enabled                       
   2) Create Domain:                           yes                           
   3) Domain to create:                        mail.domain.com
   4) Ldap replication type:                   mmr                           
   5) Ldap Server ID:                          2                             
   6) Ldap root password:                      set                           
   7) Ldap replication password:               set                           
   8) Ldap postfix password:                   set                           
   9) Ldap amavis password:                    set                           
  10) Ldap nginx password:                     set                           
  11) Ldap Bes Searcher password:              set  

Se debe configurar lo siguiente:

  • Contraseña de administrador Ldap
  • Contraseña de replicación ldap
  • Tipo de replicación ldap: mmr
  • Todas las demás contraseñas

Consulte el paso 4  para saber cómo obtener todas las contraseñas necesarias.

Paso 6: Instalar los servidores de buzones de correo Zimbra

Ahora instale dos servidores de buzones ejecutando el instalador.

sudo ./install.sh

Los paquetes a instalar son:

Do you agree with the terms of the software license agreement? [N] y       
Use Zimbra's package repository [Y] y

Select the packages to install
Install zimbra-ldap [Y] n      

Install zimbra-logger [Y] y

Install zimbra-mta [Y] n

Install zimbra-dnscache [N] 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] n

Install zimbra-proxy [Y] n

Install zimbra-chat [N] n

Install zimbra-drive [N] n
Install zimbra-imapd (BETA - for evaluation only) [N] n
Checking required space for zimbra-core

Installing:
    zimbra-core
    zimbra-logger
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-convertd
    zimbra-archiving
    zimbra-drive

The system will be modified.  Continue? [N] Y

Tenga en cuenta que necesita instalar el registrador en un solo servidor. Para mí, el registrador está instalado en mx-01. Las configuraciones se ven a continuación:


Common configuration

   1) Hostname:                                mx-01.domain.com
   2) Ldap master host:                        ldap-01.domain.com
   3) Ldap port:                               389                           
   4) Ldap Admin password:                     set                           
   5) LDAP Base DN:                            cn=zimbra                     
   6) Store ephemeral attributes outside Ldap: yes                           
   7) Value for zimbraEphemeralBackendURL:     ldap://default                
   8) Secure interprocess communications:      yes                           
   9) TimeZone:                                UTC                           
  10) IP Mode:                                 ipv4                          
  11) Default SSL digest:                      sha256 

En Configuración común, establezca:

  • Nombre de host: mx-01.dominio.com
  • Host maestro Ldap: ldap-01.domain.com
  • Contraseña de administrador de Ldap:

En zimbra-store asegúrate de que los siguientes elementos estén configurados:

  • Clave de administrador:
  • Servidor SMTP:
  • Configurar para usar con proxy de correo: TRUE
  • Configurar para usar con proxy web: TRUE
  • Instalar la interfaz de usuario (zimbra, aplicaciones web zimbraAdmin): 
  • Instalar mailstore (aplicación web de servicio): 

Puedes modificar cualquier otra configuración que consideres necesaria e iniciar el proceso de instalación. Para el otro servidor de buzones de correo, repita los mismos pasos pero no instale el registrador, se ejecutará en mx-01.

Paso 7: Instale los servidores Zimbra MTA

La siguiente fase es la instalación de servidores MTA. Su selección de paquete debe ser la siguiente:

Select the packages to install

Install zimbra-ldap [Y] n
Install zimbra-logger [Y] n
Install zimbra-mta [Y] y
Install zimbra-dnscache [Y] y
Install zimbra-snmp [Y] y
Install zimbra-store [Y] n
Install zimbra-apache [Y] n
Install zimbra-spell [Y] n
Install zimbra-memcached [Y] n
Install zimbra-proxy [Y] n
Install zimbra-chat [N] n
Install zimbra-drive [N] n

Checking required space for zimbra-core

Installing:
    zimbra-core
    zimbra-mta
    zimbra-snmp
    zimbra-dnscache

The system will be modified.  Continue? [N] y

En la ventana de configuraciones, asegúrese de configurar lo siguiente:

En 1) Configuración común, establezca:

  • Nombre de host:
  • Anfitrión maestro Ldap:
  • Contraseña de administrador de Ldap:
 1) Hostname:                                mta-01.domain.com
 2) Ldap master host:                        ldap-01.domain.com
 3) Ldap port:                               389                           
 4) Ldap Admin password:                     set                           
 5) LDAP Base DN:                            cn=zimbra                     
 6) Store ephemeral attributes outside Ldap: yes                           
 7) Value for zimbraEphemeralBackendURL:     ldap://default                
 8) Secure interprocess communications:      yes                           
 9) TimeZone:                                UTC                           
10) IP Mode:                                 ipv4                          
11) Default SSL digest:                      sha256  

En 2) zimbra-mta establecer

  • Contraseña de enlace para el usuario ldap de postfix:
  • Contraseña de enlace para el usuario amavis ldap:

Mira el paso 4  para saber cómo obtenerlos.

Mta configuration

   1) Status:                                  Enabled                       
   2) Enable Spamassassin:                     yes                           
   3) Enable Clam AV:                          yes                           
   4) Enable OpenDKIM:                         yes                           
   5) Notification address for AV alerts:      [email 
   6) Bind password for postfix ldap user:     set                           
   7) Bind password for amavis ldap user:      set 

En zimbra-dnscache, configure las direcciones IP del DNS maestro separadas por espacios:

DNS Cache configuration

   1) Status:                                  Enabled                       
   2) Master DNS IP address(es):               8.8.4.4 1.1.1.1  8.8.8.8 
   3) Enable DNS lookups over TCP:             yes                           
   4) Enable DNS lookups over UDP:             yes                           
   5) Only allow TCP to communicate with Master DNS: no 

Una vez hecho esto, guarde la configuración y escriba  para comenzar la configuración de Zimbra MTA.

Paso 7: Instale los servidores proxy Zimbra

Para la instalación de los servidores Zimbra Proxy, debe seleccionar los siguientes paquetes durante la instalación:

Select the packages to install

Install zimbra-ldap [Y] n

Install zimbra-logger [Y] n

Install zimbra-mta [Y] n

Install zimbra-dnscache [N] n

Install zimbra-snmp [Y] y

Install zimbra-store [Y] n

Install zimbra-apache [Y] n

Install zimbra-spell [Y] n

Install zimbra-memcached [Y] y

Install zimbra-proxy [Y] y

Install zimbra-chat [N] n

Install zimbra-drive [N] n
Checking required space for zimbra-core

Installing:
    zimbra-core
    zimbra-snmp
    zimbra-memcached
    zimbra-proxy

The system will be modified.  Continue? [N] y

Complete toda la información requerida:


Common configuration

   1) Hostname:                                proxy-01.domain.com
   2) Ldap master host:                        ldap-01.domain.com
   3) Ldap port:                               389                           
   4) Ldap Admin password:                     set                           
   5) LDAP Base DN:                            cn=zimbra                     
   6) Store ephemeral attributes outside Ldap: yes                           
   7) Value for zimbraEphemeralBackendURL:     ldap://default                
   8) Secure interprocess communications:      yes                           
   9) TimeZone:                                UTC                           
  10) IP Mode:                                 ipv4                          
  11) Default SSL digest:                      sha256  

Proxy configuration

   1) Status:                                  Enabled                       
   2) Enable POP/IMAP Proxy:                   TRUE                          
   3) Enable strict server name enforcement?   TRUE                          
   4) IMAP server port:                        7143                          
   5) IMAP server SSL port:                    7993                          
   6) IMAP proxy port:                         143                           
   7) IMAP SSL proxy port:                     993                           
   8) POP server port:                         7110                          
   9) POP server SSL port:                     7995                          
  10) POP proxy port:                          110                           
  11) POP SSL proxy port:                      995                           
  12) Bind password for nginx ldap user:       set                           
  13) Enable HTTP[S] Proxy:                    TRUE                          
  14) Web server HTTP port:                    8080                          
  15) Web server HTTPS port:                   8443                          
  16) HTTP proxy port:                         80                            
  17) HTTPS proxy port:                        443                           
  18) Proxy server mode:                       redirect 

Para el modo de servidor proxy, puede elegir http, https, ambos, redireccionamiento o mixto según sus requisitos. En mi caso, estoy usando un redireccionamiento.

Una vez que todos los servidores proxy Zimbra estén instalados, habilite la consola proxy en el puerto 9071  ejecutando el siguiente comando en los servidores proxy como usuario de Zimbra:

$ sudo  su - zimbra
$ /opt/zimbra/libexec/zmproxyconfig -e -w -C -H `zmhostname`
  • Esto habilitará el puerto proxy 9071 de la consola de administración en el servidor proxy.
  • Asegúrese de que la consola de administración del servidor de buzones de correo esté configurada en el puerto 7071 (predeterminado).

Debe reiniciar el servicio de proxy después de realizar los cambios:

$ zmproxyctl restart

El servicio debe vincularse al puerto 9071, puede confirmar esto con el comando ss:

$ ss -tunelp | grep 9071

Para acceder a la consola de administración a través de un proxy, la URL debe ser https://proxy-0x.domain.com:9071/

Paso 8: Configurar el servicio Zimbra Logger

Como se mencionó anteriormente, nuestro servicio de registro se ejecutará en el servidor de buzón 1 (mx-01.dominio.com). Para esto, primero debemos instalar y configurar el servicio rsyslog en este servidor.

Descomente las siguientes líneas en /etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514

Además, agregue esta línea después de $UDPServerRun 514:

SYSLOGD_options="-r -m 0"

Luego configure Zimbra syslog y reinicie el servicio rsyslog:

$ /opt/zimbra/libexec/zmfixperms -e -v
$ /opt/zimbra/libexec/zmsyslogsetup

updateSyslog: Updating /etc/rsyslog.conf...done.

$ sudo systemctl restart rsyslog.service
$ sudo su - zimbra
$ /opt/zimbra/libexec/zmloggerinit

Stopping logswatch...done.
Starting logswatch...done.
$ /opt/zimbra/bin/zmupdateauthkeys

Verifique LogHostname usando los siguientes comandos. (debe configurarse con el nombre del host del monitor registrador en todos los servidores)

$ sudo su - zimbra
$ zmprov gacf | grep zimbraLogHostname
zimbraLogHostname: mx-01.domain.com

Si es diferente, cambie lo mismo a Logger monitor Host usando el siguiente comando.

$ zmprov mcf zimbraLogHostname <Logger monitor Hostname>

Configure cada servidor Zimbra para iniciar sesión en el servidor de registro recién configurado.

$ sudo /opt/zimbra/libexec/zmfixperms -e -v
$ sudo su - zimbra
/opt/zimbra/bin/zmupdateauthkeys ; exit

$ /opt/zimbra/libexec/zmsyslogsetup
$ sudo systemctl restart rsyslog
$ sudo su - zimbra -c "zmcontrol restart"

Paso 9: Configurar Zimbra Proxy HA con Keepalived

Como tenemos dos servidores proxy Zimbra, debemos asegurarnos de tener HA para el servidor proxy. Mi configuración para el proxy es:

  • 2 servidores proxy: proxy-01.domain.com y proxy-02.domain.com
  • Ambos se entregarán mediante mail.domain.com

El diagrama de solución objetivo es

En pocas palabras, así es como funciona:

  1. El Proxy Master como VIP
  2. El Proxy Master deja de estar disponible
  3. El VIP se pasa al servidor de respaldo que manejará el servicio.

Configuraré proxy-01 como maestro y proxy-02 como servidor de respaldo.

Instale Keepalived en ambos servidores.

sudo yum -y install keepalived

Configurar Keepalived en el servidor maestro (proxy-01)

$ sudo vim /etc/keepalived/keepalived.conf
vrrp_script chk_zimbra_nginx {
  script "killall -0 nginx" # check the zimbra nginx process  interval 2 # every 2 seconds
  weight 2 # add 2 points if OK}vrrp_instance VI_1 {
  interface eth0 # interface to monitor
  state MASTER # MASTER on proxy-01, BACKUP on proxy-02
  virtual_router_id 51
  priority 101 # 101 on proxy-01, 100 on proxy-02
  virtual_ipaddress {
   192.168.1.23/24
  }
  track_script {
    chk_zimbra_nginx
  }
}

Configurar Keepalived en Backup Server (proxy-01)

$ sudo vim /etc/keepalived/keepalived.conf
vrrp_script chk_zimbra_nginx {
  script "killall -0 nginx" # check the zimbra nginx process
  interval 2 # every 2 seconds
  weight 2 # add 2 points if OK
}

vrrp_instance VI_1 {
  interface eth0 # interface to monitor
  state BACKUP # MASTER on proxy-01, BACKUP on proxy-02
  virtual_router_id 51
  priority 100 # 101 on proxy-01, 100 on proxy-02
  virtual_ipaddress {
    192.168.1.23/24
  }
  track_script {
    chk_zimbra_nginx
  }
}

Habilite el reenvío de IP y configure firewalld:

Keepalived requiere configurar el reenvío de IP y agregar algunas reglas de firewall para que lleguen los paquetes VRRP.

Habilitar el reenvío de IP:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Agregue reglas de firewall para permitir la comunicación VRRP utilizando la dirección IP de multidifusión 224.0.0.18 y el protocolo VRRP (112) en cada interfaz de red que Keepalived controlará, por ejemplo:

sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT 

sudo firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT 

sudo firewall-cmd --reload

Habilite e inicie el servicio keepalived en cada servidor:

sudo systemctl enable keepalived
sudo systemctl start keepalived

Si cambia la configuración de Keepalived, vuelva a cargar el servicio keepalived:

sudo systemctl reload keepalived

Puede probar la funcionalidad keepalived eliminando el proceso nginx  en el servidor maestro y ver si la IP virtual se cambiará al servidor de respaldo:

$ sudo killall nginx
$ ip add > Run on Backup server to check IP address configuration

Paso 10: restablecer la contraseña de administrador y acceder a la interfaz de usuario web

Restablecer contraseña de administrador:

$ sudo su - zimbra
$ zmprov sp [email  strongpassword

Acceda a la interfaz de usuario web mediante acceso directo a servidores proxy o nombres de host que apunten a servidores proxy. Se puede acceder al panel de administración desde el puerto 9071.

Puede configurar reglas de firewall para servidores proxy usando:

sudo firewall-cmd --add-service={http,https,smtp,smtps,imap,imaps,pop3,pop3s} --permanent
sudo firewall-cmd --add-port=11211/tcp --permanent
sudo firewall-cmd --add-port=9071/tcp --permanent
sudo firewall-cmd --reload

Para restringir el acceso o la interfaz de administración desde una dirección IP específica, utilice reglas enriquecidas de firewalld en su lugar:

sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=source-ip-address/32 \
destination address=dest-ip-address/32 port port=9071 protocol=tcp accept"

Recuerde reemplazar dirección-ip-origen con la dirección IP de origen y dirección-ip-destino con la dirección IP de destino del servidor proxy.

Ahora debería estar listo para comenzar, restablecer la contraseña de administrador e iniciar sesión en el panel de administración para comenzar a realizar cambios y realizar más configuraciones en su instalación de Zimbra. Lea también nuestra guía anterior sobre Configuración del Firewall Zimbra con ufw para Ubuntu y firewalld para CentOS.