ROCK5GmbH.mailserver

Rol de Ansible para configurar un servidor de correo

Este rol de ansible instala un servidor de correo como se describe en esta publicación del blog de Thomas Leistner.

SSL

Se espera que los certificados y claves SSL estén en /etc/myssl/$FQDN.crt y /etc/myssl/$FQDN.key en el host de correo (donde $FQDN es el FQDN del host). Esto se puede cambiar ajustando la variable {{ ssl_directory }} a una ruta diferente. Si estos archivos no existen, se creará un certificado autofirmado para uso inicial, los cuales no son recomendados para una configuración en producción. Si necesitas un certificado firmado por una CA de confianza, prueba Let's Encrypt.

Variables

Las siguientes variables deben ser establecidas por ti para usar este rol:

Variable Explicación
dbserver_root_pw contraseña para el usuario root de la base de datos
mailserver_sql_vmail_password contraseña para el usuario vmail en la base de datos
milter_sql_spamass_password contraseña para el usuario spamassassin en la base de datos
mailserver_hostname nombre del host del servidor de correo (ej. mail)
mailserver_domain dominio del servidor de correo (ej. example.com)

Hay muchas más variables disponibles para personalizar la instalación del servidor de correo, puedes encontrarlas en el defaults/main.yml de este rol y sus dependencias.

Contraseñas

En lugar de guardar contraseñas en texto plano en vars/vars.yml, considera usar el vault de ansible.

Para un inicio rápido con el vault, puedes ejecutar ansible-vault create vars/vault.yml y llenarlo de esta manera:

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(Reemplaza foo, bar y baz con contraseñas seguras)

Ahora, cada vez que ejecutes un playbook con este rol, recuerda usar --ask-vault-pass con ansible-playbook.

Despliegue

Antes del despliegue, debes establecer contraseñas para los usuarios de la base de datos (ver arriba). Además, este playbook asume una instalación predeterminada de Ubuntu Server 16.04 y no ha sido probado en ninguna otra distribución.

Un ejemplo de playbook podría verse así:

---
- hosts: all
  become: yes
  roles:
    - ROCK5GmbH.mailserver
  vars:
    - vault.yml

Para obtener este rol y todas sus dependencias, puedes usar ansible galaxy:

ansible-galaxy install ROCK5GmbH.mailserver

Para desplegar en un solo host, es suficiente ejecutar

ansible-playbook --ask-vault-pass -i $HOST, playbook.yml

donde $HOST es la dirección IP o URL del servidor.

Si deseas desplegar en múltiples hosts, se recomienda trabajar con inventarios, para que puedas establecer variables por host mientras mantienes variables comunes.

Después del despliegue, el servidor de correo estará casi listo para funcionar. Solo queda agregar dominios y usuarios reales a tu base de datos SQL. Primero usa doveadm pw -s SHA512-CRYPT para generar un hash para la contraseña del usuario. Para agregar el usuario, inicia sesión en tu servidor y luego conéctate a la base de datos a través de

mysql -u root -p

e ingresa la contraseña root para la base de datos SQL. Ahora agrega un dominio (aquí: mysystems.tld) y un usuario (user1):

use vmail;
insert into domains (domain) values ('mysystems.tld');
insert into accounts (username, domain, password, quota, enabled, sendonly) values ('user1', 'mysystems.tld', '{SHA512-CRYPT}$kgid87hdenss', 2048, true, false);

Personalización adicional

Esta configuración también permite políticas TLS en la base de datos SQL, lo que te permite establecer políticas TLS específicas para dominios específicos. Puedes agregar una política a través de

insert into tlspolicies (domain, policy, params) values ('gmx.de', 'secure', 'match=.gmx.net');

Las diferentes políticas posibles están enumeradas y explicadas aquí. (El match=.gmx.net asegura que postfix verifique el certificado para gmx.net, ya que no tienen uno para gmx.de)

También es posible que desees agregar tu nuevo servidor de correo a tu DNS (registros A(AAA) y MX), así como añadir una entrada para SPF y DKIM.

Acerca del proyecto

This role installs a mailserver with Postfix, Dovecot, Spamassassin, Amavis, ClamAV and a database backend.

Instalar
ansible-galaxy install ROCK5GmbH.mailserver
Licencia
mit
Descargas
139
Propietario
Sophisticated Web Applications & Plattform Operations