Tener nuestro propio servidor de correo nos puede ser de utilidad para tener el control de nuestros datos y depender menos de gigantes tecnológicos como Google, Microsoft, entre otros. Si planeamos ofrecer servicios complementarios al correo nos sería de utilidad tener este integrado con algún directorio de usuarios para que nuestros servicios sean accesibles con las mismas credenciales, lo cual podemos hacer con LDAP. En este tutorial les mostraré cómo configurar un servidor de correo con LDAP en Ubuntu 20.04 utilizando iRedMail.
Requisitos:
- Un servidor con 2GB de RAM o más (4GB o más para un óptimo rendimiento)
- Un dominio de internet
- Abrir los puertos TCP 25, 143, 389, 587 y 993 al exterior
- Nuestra IP debe tener un registro DNS inverso que apunte al nombre de host que usaremos para el intercambio de correo
- Una instalación fresca de Ubuntu 20.04 o Debian 10
Lo primero que necesitamos es conectarnos mediante SSH a nuestro servidor (si utilizamos MOSH el instalador no se mostrará correctamente). Una vez dentro cambiamos el nombre de host interno al que elegimos para el intercambio de correo.
sudo hostnamectl set-hostname mail.asgardius.company
Actualizamos el archivo Hosts de nuestro sistema para asociar .
echo "192.168.1.208 mail.asgardius.company mail" | sudo tee /etc/hosts
Reinicamos y esperamos a que vuelva a inicar para volver a conectarnos mediante SSH. Una vez en la consola SSH instalamos algunos paquetes necesarios
sudo apt install gzip wget
entramos a la página de descargas de iRedMail y copiamos el enlace de descarga de la última versión estable en la consola SSH para descargar el paquete de la siguiente forma
wget https://github.com/iredmail/iRedMail/archive/1.3.2.tar.gz
Desempaquetamos el archivo descargado
tar zxf 1.3.2.tar.gz
Entramos al directorio del instalador y lo abrimos
cd iRedMail-1.3.2
bash iRedMail.sh
Una vez que se descarguen algunas dependencias nos aparecerá la siguiente pantalla
Nos preguntará el directorio donde queremos guardar los buzones de correo
El instalador nos preguntará si queremos instalar el servidor web Nginx. En mi caso no lo instalaré
El instalador nos preguntará por el tipo de base de datos que usaremos para guardar las credenciales de los usuarios, en este caso será OpenLDAP
El instalador nos preguntará por el sufijo LDAP, el cual suele estar asociado al nombre de dominio (en mi caso sería dc=asgardius,dc=company)
El instalador nos preguntará por la contraseña que usaremos para el administrador de MySQL
El instalador nos preguntará por el nombre de dominio que usaremos para el correo
Ahora debemos introducir la contraseña del administrador del dominio, el cual recibirá notificaciones sobre el estado del sistema
El instalador nos preguntará por algunos extras opcionales
El instalador nos mostrará información sobre la configuración elegida y nos preguntará si queremos realizar la instalación
Una vez configurado el servidor de correo nos preguntará si queremos habilitar algunas reglas para el firewall.
En caso de que usar el servidor únicamente para correos conviene habilitarlo, mientras que en caso de querer agregar más servicios en el futuro recomiendo no hacerlo. Una vez hecha la decisión termina la instalación y nos toca reiniciar.
Despues de reiniciar abrimos como root el archivo “iRedMail.tips” que se ubica en el directorio del instalador (en mi caso /root/iRedMail-1.3.2). Anotamos todos los elementos que aparecen en este ejemplo ( solo se ocuparán los subrayados para este tutorial) para conectar otras aplicaciones al directorio en el futuro
OpenLDAP:
* LDAP suffix: dc=asgardius,dc=company
* LDAP root dn: cn=Manager,dc=asgardius,dc=company, password: GCQ3XaA85jI7pQL1yOwm2mgMUzqqfKGd
Editamos el archivo “tools/create_mail_user_OpenLDAP.sh”
sudo nano tools/create_mail_user_OpenLDAP.sh
Llenamos los campos “LDAP_SUFFIX” y “BINDPW” con los datos que nos proporcionó el archivo. Para elegir la contraseña inicial de los usuarios la introducimos en el campo “DEFAULT_PASSWD” y nos aseguramos de que la variable “USE_DEFAULT_PASSWD” tenga el valor “NO”. Una vez que tengamos el archivo configurado podemos crear nuestros usuarios de la siguiente forma
bash tools/create_mail_user_OpenLDAP.sh asgardius.company page emily
En este caso mi nombre de dominio es “asgardius.company”, mientras que estoy creando dos usuarios, Page y Emily repectivamente. Ahora necesitamos una serie de registros DNS para que el servidor de correo funcione (más información aquí)
Referencias: