- Esta guía explica como instalar y configurar un servidor de correo zimbra, en un contenedor de Ubuntu 18.04
- Guía de referencias y entendimiento:
https://www.jorgedelacruz.es/2019/09/17/zimbra-instalando-zimbra-8-8-15-sobre-ubuntu-18-04-lts/
https://www.jorgedelacruz.es/2014/06/24/zimbra-best-practices-enviando-a-gmail-hotmail-etc/
https://www.jorgedelacruz.es/2017/03/06/zimbra-como-configurar-los-dns-para-funcionar-con-zimbra/
https://www.jorgedelacruz.es/2015/01/13/zimbra-una-vez-instalado-que-hago-administrador/
Instalamos
apt install net-tools
Configuramos la red
- Queda así
Esto ya no se aplica xq ahora solo va a tener IP pública
- Ahora abrimos el archivo de configuración de red para agregar las rutas, pero por ser un contenedor el archivo de red proxmox lo sobreescribe cada vez que inicia, esto esta ubicado en /etc/systemd/network/XXX.network (uno por cada interfaz) y es aquí donde hay que agregarlas rutas, entonces para que no lo sobre escriba vamos a crear un archivo .pve-ignore para que proxmox lo ignore
touch /etc/systemd/network/.pve-ignore.eth0.network
- Ahora abrimos el archivo
nano /etc/systemd/network/eth0.network
- Y agregamos las rutas necesarias
[Route]
Gateway=10.20.200.1
Destination=10.20.0.0/16
[Route]
Gateway=10.20.200.1
Destination=10.30.240.0/24
- Quedando así
[Match]
Name = eth0
[Network]
Description = Interface eth0 autoconfigured by PVE
Address = 10.20.200.78/24
DHCP = no
IPv6AcceptRA = false
[Route]
Gateway=10.20.200.1
Destination=10.20.0.0/16
[Route]
Gateway=10.20.200.1
Destination=10.30.240.0/24
- Podemos verificar con el comando
apt install net-tools -y
netstat -rn
- RESULTADO
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 181.193.87.1 0.0.0.0 UG 0 0 0 eth1
10.20.0.0 10.20.200.1 255.255.0.0 UG 0 0 0 eth0
10.20.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.30.240.0 10.20.200.1 255.255.255.0 UG 0 0 0 eth0
181.193.87.0 0.0.0.0 255.255.255.240 U 0 0 0 eth1
Verificación de resoluciones locales
- Lo que vamos a hacer es montar un servidor de correo correo.siua.ac.cr
- Entonces primero debemos verificar que estos datos son correctos:
##################################
#Primero
##################################
nano /etc/resolv.conf
##################################
#RESULTADO
##################################
# --- BEGIN PVE ---
search siua.ac.cr
nameserver 181.193.87.1
# --- END PVE ---
##################################
#Segundo
##################################
nano /etc/hosts
##################################
#RESULTADO
##################################
# --- BEGIN PVE ---
10.20.200.78 correo.siua.ac.cr correo
X
181.193.87.9 correo.siua.ac.cr correo
# --- END PVE ---
##################################
#Tercero
##################################
nano /etc/hostname
##################################
#RESULTADO
##################################
correo
DNSMASQ
- Para mejorar el rendimiento de la aplicación vamos a instalar un servidor minidns para que resuelva los dominios de forma local.
- Ahora como estamos montandolo sobre Ubuntu 18.04 el ya trae uno, por lo que lo vamos a eliminar primero
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo rm /etc/resolv.conf
echo "nameserver 1.1.1.1" > /etc/resolv.conf
- Ahora lo instalamos
apt-get install dnsmasq -y
##Verificamos con
service dnsmasq status
- Ahora abrimos el archivo de configuración
nano /etc/dnsmasq.conf
- Al final agregamos
server=1.1.1.1
listen-address=127.0.0.1
domain=siua.ac.cr
mx-host=siua.ac.cr,correo.siua.ac.cr,0
address=/correo.siua.ac.cr/181.193.87.9
- Reiniciamos el servicio
service dnsmasq restart
- Modificamos el resolv.conf
nano /etc/resolv.conf
- Modificamos
nameserver 1.1.1.1
X
nameserver 127.0.0.1
- Probamos la resolución
dig mx siua.ac.cr
- RESULTADO (lo resuelve 127.0.0.1 an 0 msec)
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> mx siua.ac.cr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28353
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;siua.ac.cr. IN MX
;; ANSWER SECTION:
siua.ac.cr. 0 IN MX 0 correo.siua.ac.cr.
;; ADDITIONAL SECTION:
correo.siua.ac.cr. 0 IN A 181.193.87.9
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Aug 31 21:59:39 UTC 2020
;; MSG SIZE rcvd: 88
- Prueba dominio
dig correo.siua.ac.cr
- RESULTADO
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> correo.siua.ac.cr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33128
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;correo.siua.ac.cr. IN A
;; ANSWER SECTION:
correo.siua.ac.cr. 0 IN A 181.193.87.9
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Aug 31 22:01:35 UTC 2020
;; MSG SIZE rcvd: 62
- Modificamos en proxmox para que el DNS quede así
Configuración DNS interno Window Server 2016
- Creamos un registro «A» apuntando a la IP pública no la interna
- Ahora 181.193.87.9
Creación de dominio MX y A en DNS público
- Abrimos el archivo
nano /etc/bind/db.siua.ac.cr
- Agregamos los registros
;*********************************************************************************
;*************************** RESOLUCION MX PARA SIUA.AC.CR ***********************
;*********************************************************************************
correo 14400 IN A 181.193.87.9
www.correo 14400 IN CNAME correo
siua.ac.cr. 14400 IN MX 10 correo.siua.ac.cr.
Creación de Dominio DNS PUBLICO: MX SPF
- Para que el servidor de correo sea valido a nivel mundial debe crear una sería de registros dentro del DNS entre ellas SPF
- Ingresamos a página https://www.spfwizard.net/
- Este es un asistente que nos permite crear una registro MX TXT. Completamos
- Por tanto insertamos este registro en el dns público
siua.ac.cr. 14400 IN TXT "v=spf1 mx a ptr ip4:181.193.87.9/32 a:correo.siua.ac.cr -all"
Creación de Dominio DNS PUBLICO: MX SenderID
- Para poder enviar correos a microsoft necesitamos crear un registro SenderID para esto agregamos
siua.ac.cr. 14400 IN TXT "v=spf2.0/mfrom,pra a mx include:siua.ac.cr -all"
Creación de rDNS (Resolución inversa) DNS Público
- Abrimos el archivo
nano /etc/bind/db.rev.87
- Y agregamos
9 IN PTR correo.siua.ac.cr.
RESULTADO FINAL de db.siua.ac.cr
correo 14400 IN A 181.193.87.9
www.correo 14400 IN CNAME correo
siua.ac.cr. 14400 IN MX 10 correo.siua.ac.cr.
siua.ac.cr. 14400 IN TXT "v=spf1 mx a ptr ip4:181.193.87.9/32 a:correo.siua.ac.cr -all"
siua.ac.cr. 14400 IN TXT "v=spf2.0/mfrom,pra a mx include:siua.ac.cr -all"
- Reiniciamos el servicio
/etc/init.d/bind9 restart
- Podemos probrobar dentro de dns1
dig MX siua.ac.cr 181.193.87.2
Instalación de Dependencias
- Instalamos
sudo apt install git
- Clonamos
cd ~
git clone https://github.com/jmutai/scripts.git
- Ingresamos al directorio e instalamos
cd scripts/zimbra/
./zimbra_bind_setup_ubuntu.sh
- Completamos la información solicitada
Input Zimbra Base Domain. E.g example.com : siua.ac.cr
Input Zimbra Mail Server hostname (first part of FQDN). E.g mail : correo
Please insert your IP Address : 191.193.87.9
Instalación de zimbra
- Descargamos
cd ~/
wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
- Descomprimimos
tar xvf zcs-8.8.15_GA_*.tgz
- Ingresamos al directorio
cd zcs*/
- Instalamos
sudo ./install.sh
- Indicamos que SI
Operations logged to /tmp/install.log.0BFA9Tow
Checking for existing installation...
zimbra-drive...NOT FOUND
zimbra-imapd...NOT FOUND
zimbra-patch...NOT FOUND
zimbra-mta-patch...NOT FOUND
zimbra-proxy-patch...NOT FOUND
zimbra-license-tools...NOT FOUND
zimbra-license-extension...NOT FOUND
zimbra-network-store...NOT FOUND
zimbra-network-modules-ng...NOT FOUND
zimbra-chat...NOT FOUND
zimbra-talk...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] Y
- Si al repositorio de zimbra
- GUIA /?p=3704
Instalación de DomainKeys Identified Mail (DKIM)
- Es una forma de que la organización tome responsabilidad de los mensajes
- Guia: https://wiki.zimbra.com/wiki/Configuring_for_DKIM_Signing
- Primero instalamos net-tools
apt install net-tools -y
- Para crearlo primero debemos ingresar como un usuario de zimbra
su zimbra
- Agregamos DKIM data a un dominio sin configuración DKIM (Ya que es la primera vez para este dominio), si es necesario modificar consultar guia
/opt/zimbra/libexec/zmdkimkeyutil -a -d siua.ac.cr
- RESULTADO
DKIM Data added to LDAP for domain siua.ac.cr with selector B76F643A-EC32-11EC-BC2D-EF7B1A35B06F
Public signature to enter into DNS:
B76F643A-EC32-11EC-BC2D-EF7B1A35B06F._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAug5Y0rLpZfWS37yHIJn3Oai9GJGBTWSJ7JYzHqMCtZVa8K5ZVGprmRmUrGvboVG688Yzj57tjLnHu6jTxcVMMgsPaTT45uxqdFpX0qnfTEnh7gL95RQORGTsrVlHy9+zteP29sJkMwlRKasF1dLXqf7R0dnPNKb92kSnWlIdPkb9vBGgLfWYBXrEoly6BZj6H3ydDcXe9oNy+m"
"ncLKPVhIGqldDuHV8vRW2UA65Y9FsWYUuQ6rfjyu8z5XeiXl84sHqR3oO64C29ZtQ0TmLUvnEYrmIg/eyIE1lltWyiYYFn5yjbOEDGr1KPeZbQOKWAWuX0A7ukAYbiqmfC9qYSqwIDAQAB" ) ; ----- DKIM key B76F643A-EC32-11EC-BC2D-EF7B1A35B06F for siua.ac.cr
- Si deseamos consultar los datos
/opt/zimbra/libexec/zmdkimkeyutil -q -d siua.ac.cr
- PROXMOX es importante modificar el DNS de la CT para que vea un DNS publico
- Agregamos el registro en el dns publico
;----------------------------- DKIM PARA DOMINIO SIUA.AC.CR ---------------------------
B76F643A-EC32-11EC-BC2D-EF7B1A35B06F._domainkey 14400 IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzJbuGKu5UCtq7MLF0QSaURpOhZUSatJWcMV5MQZXmNB5p3KNLGCjeAs9xovaqYoGzT+UcVCbJzhd2ZbHejAFgCEGJJbau8x6A7iF2H7uIZ/pHzX24F4GIcWBuieIQsAw5yDag/0n9J42R4oAX0xdXN+G0n0+hMlg9hy$
"ibDPx+uQILWIe9cP9DXLwTB9rKo3apSPJGV8j2Yt2B/elRlv5bL4TWudZrIiW9nn1omR5DhiXxk9f2qjdyXBrwQfGQvszQFpGJQjA9YXnipiQXDPMKrwxuxwzvLrm1UkIJQzSVQQIDAQAB" )
- para comprobar que funciona correctamente ejecutamos
dig -t txt SELECTOR._domainkey.DOMAIN NAMESERVER
Ejemplo:
dig -t txt CE648E96-ED41-11EA-903B-A522C0EA4486._domainkey.siua.ac.cr ns.siua.ac.cr
dig -t txt CE648E96-ED41-11EA-903B-A522C0EA4486._domainkey.siua.ac.cr dns1.siua.ac.cr
- RESULTADO
; <<>> DiG 9.16.1-Ubuntu <<>> -t txt CE648E96-ED41-11EA-903B-A522C0EA4486._domainkey.siua.ac.cr 181.193.87.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 50002
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;CE648E96-ED41-11EA-903B-A522C0EA4486._domainkey.siua.ac.cr. IN TXT
;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: mié sep 02 11:36:41 CST 2020
;; MSG SIZE rcvd: 87
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 35568
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;181.193.87.2. IN TXT
;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: mié sep 02 11:36:41 CST 2020
;; MSG SIZE rcvd: 41
- Ahora para comprobar que la key es igual a la zimbra ejecutamos, NOTA: si el comando no da error todo esta bien
/opt/zimbra/common/sbin/opendkim-testkey -d siua.ac.cr -s CE648E96-ED41-11EA-903B-A522C0EA4486 -x /opt/zimbra/conf/opendkim.conf
- Otra posibilidad es comprobarlo con la página https://dkimcore.org/tools/keycheck.html
- RESULTADO
RDNS en Zimbra 8
- Para crear la resolusión inversa dentro de zimbra ingresamos com usuario zimbra
su zimbra
zmprov ms 'correo.siua.ac.cr' zimbraMtaSmtpdBanner correo.siua.ac.cr
zmcontrol restart