StackFocus.postfix-dovecot

rol-ansible-postfix-dovecot

Un rol de Ansible que automatiza la instalación y configuración de Postfix y Dovecot con autenticación MySQL en Ubuntu. El esquema de MySQL se deriva del siguiente tutorial de Digital Ocean. Puedes ver el esquema de MySQL utilizado en schema.sql.

Variables del Rol

Variables Requeridas

  • dovecot_ssl_cert - la ruta al certificado SSL utilizado por Dovecot. Ten en cuenta que si necesitas proporcionar una cadena de certificados, debe estar concatenada después del certificado en el mismo archivo.
  • dovecot_ssl_key - la ruta a la clave SSL utilizada por Dovecot.
  • postfix_ssl_cert - la ruta al certificado SSL utilizado por Postfix. Esto debe incluir también la CA intermedia si es aplicable.
  • postfix_ssl_key - la ruta a la clave SSL utilizada por Postfix.
  • postfix_dovecot_mysql_password - la contraseña del usuario que tiene permiso para consultar la base de datos en el servidor SQL utilizado para la autenticación.

Variables Opcionales

  • postfix_dovecot_mysql_host - el FQDN o dirección IP del servidor MySQL para autenticación. Por defecto es 127.0.0.1.
  • postfix_dovecot_mysql_db_name - el nombre de la base de datos en el servidor MySQL utilizada para autenticación. Por defecto es servermail.
  • postfix_dovecot_mysql_user - el usuario que tiene permiso para consultar la base de datos en el servidor MySQL utilizado para autenticación. Por defecto es usermail.
  • postfix_dovecot_mysql_password_scheme - el esquema de contraseña utilizado para encriptar las contraseñas en la base de datos. Por defecto es SHA512-CRYPT.
  • postfix_default_domain - el valor que se establece como el dominio predeterminado utilizado por Postfix, especialmente cuando Postfix determina el dominio del remitente al enviar mensajes de rebote. Esto establece el contenido de /etc/mailname.
  • postfix_inet_protocols - el protocolo en el que Postfix debe escuchar. Para tener solo IPv4, establece este valor en ipv4. Por defecto es all.
  • postfix_submission_smtpd_client_restrictions - una lista de restricciones de clientes en el puerto de envío de correo (587). Para más información, visita la documentación de Postfix. Esto por defecto es permit_sasl_authenticated y reject.
  • postfix_smtpd_tls_auth_only - si solo se permite la autenticación SASL a través de SSL/TLS. Por defecto es .
  • postfix_smtpd_recipient_restrictions - una lista de restricciones para destinatarios de correos electrónicos entrantes. Para más información, visita la documentación de Postfix. Esto por defecto es permit_sasl_authenticated, permit_mynetworks, y reject_unauth_destination.
  • postfix_smtpd_relay_restrictions - una lista de restricciones para reenvíos. Para más información, visita la documentación de Postfix. Esto por defecto es permit_mynetworks, permit_sasl_authenticated, y defer_unauth_destination.
  • postfix_mynetworks - una lista de clientes SMTP de confianza. Para más información, visita la documentación de Postfix. Esto por defecto es 127.0.0.0/8, [::ffff:127.0.0.0]/104, [::1]/128.
  • postfix_mydestination - una lista para el valor de configuración mydestination de Postfix. Para más información, visita la documentación de Postfix. Esto por defecto es localhost.
  • postfix_mysql_alias_query - la consulta utilizada para encontrar el destino de un alias cuando se proporciona la fuente. Esto por defecto es SELECT destination FROM virtual_aliases WHERE source='%s';.
  • postfix_mysql_domains_query - la consulta utilizada para determinar si un dominio es válido. Esto por defecto es SELECT 1 FROM virtual_domains WHERE name='%s';.
  • postfix_mysql_users_query - la consulta utilizada para determinar si una dirección de correo electrónico es válida. Esto por defecto es SELECT 1 FROM virtual_users WHERE email='%s';.
  • dovecot_mysql_password_query - la consulta utilizada para autenticar un usuario en el servidor MySQL utilizado para la autenticación. Esto por defecto es SELECT email as user, password FROM virtual_users WHERE email='%u';.
  • postfix_relayhost - envía correos electrónicos a través de un host de reenvío ascendente. Para más información, visita la documentación de Postfix.
  • postfix_smtp_tls_security_level - el nivel de seguridad TLS SMTP para el servidor SMTP de Postfix (envío). El valor predeterminado para Debian y Red Hat >= 8 es dane, para Red Hat 7 es may. Para más información, visita la documentación de Postfix.
  • dovecot_protocols - una lista de protocolos que se habilitarán. Por defecto es lmtp e imap. Para habilitar POP3, agrega pop3 a esta variable. (nota: apt install dovecot-pop3d en el objetivo para usar pop3).
  • dovecot_mail_privileged_group - el grupo que posee la carpeta definida en dovecot_mail_location. Esto le da al proceso de correo de Dovecot la capacidad de escribir en la carpeta. Esto por defecto es mail.
  • dovecot_disable_plaintext_auth - determina si se permite la autenticación sin SSL. Esto por defecto es 'sí'.
  • dovecot_auth_mechanisms - una lista de mecanismos de autenticación permitidos por Dovecot. Esto por defecto es plain y login. Para más información, lee la Documentación de Mecanismos de Autenticación de Dovecot.
  • dovecot_force_imaps - determina si se debe desactivar IMAP y forzar IMAPS. Esto por defecto es true.
  • dovecot_force_pop3s - determina si se debe desactivar POP3 y forzar POP3S. Esto por defecto es true. Ten en cuenta que para habilitar POP3S también, necesitas agregar pop3 a la lista variable dovecot_protocols.
  • dovecot_ssl - determina si se exige SSL en todos los protocolos. Esto por defecto es required. Para más información, lee la documentación de Configuración SSL de Dovecot.
  • dovecot_listen - una lista de direcciones IP o hosts donde Dovecot escucha conexiones. Esto por defecto es * (todas las IPv4) y '::' (todas las IPv6).
  • dovecot_add_example_users - cuando se establece en true, agrega usuarios de ejemplo a la base de datos.

Requisitos

  • Este rol debe ejecutarse con sudo/become o como root, de lo contrario, el rol fallará.
  • El servidor MySQL debe estar preconfigurado, y el usuario debe tener los permisos apropiados para la base de datos (ver [defaults/main.yml] para los valores predeterminados).
  • En servidores Red Hat, necesitas preinstalar PyMSQL (python{2,3}-PyMySQL, el que sea más apropiado para ti).

Ejemplo de Playbook

requisitos.yml

roles:
  - name: stackfocus.postfix-dovecot

site.yml

- hosts: all
  become: yes
  gather_facts: true
  roles:
    - stackfocus.postfix-dovecot
  vars:
    postfix_dovecot_mysql_db_name: mailserver
    postfix_dovecot_mysql_user: mailuser
    postfix_dovecot_mysql_password: mailpass
    postfix_default_domain: example.com
    dovecot_protocols:
      - imap
      - pop3
      - lmtp
    dovecot_mail_privileged_group: vmail
    dovecot_ssl_cert: /etc/ssl/certs/dovecot.pem
    dovecot_ssl_key: /etc/ssl/private/dovecot.pem
    postfix_ssl_cert: /etc/ssl/certs/postfix.pem
    postfix_ssl_key: /etc/ssl/private/postfix.pem
$ ansible-galaxy install -r requirements.yml
$ ansible-playbook -i inventory site.yml --ask-become-pass

Ejemplo Ampliado de Playbook para un servidor nuevo

En este ejemplo usamos algunos roles de geerlingguy para manejar la base de datos y los certificados de certbot.

requisitos.yml

roles:
  - name: stackfocus.postfix-dovecot
  - name: geerlingguy.mysql
  - name: geerlingguy.certbot

El Playbook prepara para ti:

  • base de datos y sus usuarios
  • certificado de Let's Encrypt
  • servicio de transporte de correo postfix
  • servicio de buzón de correo dovecot
---
- name: Configurar correo
  hosts: mailserver.tld
  become: true
  vars:
    mail_domain: mycooldomain.com
    mail_database: maildb
    mail_db_pass: 'ultrasafepassword'
  roles:
    - role: geerlingguy.mysql
      mysql_databases:
        - name: '{{ mail_database }}'
          encoding: utf8mb4
          collation: utf8mb4_czech_ci
      mysql_users:
        - name: '{{ mail_database }}'
          host: "localhost"
          password: '{{ mail_db_pass }}'
          priv: "{{ mail_database }}.*:ALL"
    - role: geerlingguy.certbot
      certbot_certs:
        - domains:
            - '{{ mail_domain }}'
            - 'mail.{{ mail_domain }}'
    - role: stackfocus.postfix-dovecot
      postfix_dovecot_mysql_db_name: '{{ mail_database }}'
      postfix_dovecot_mysql_user: '{{ mail_database }}'
      postfix_dovecot_mysql_password: '{{ mail_db_pass }}'
      postfix_default_domain: '{{ mail_domain }}'
      dovecot_protocols:
        - imap
        - pop3
        - lmtp
      dovecot_mail_privileged_group: vmail
      dovecot_ssl_cert: /etc/letsencrypt/live/{{ mail_domain }}/fullchain.pem
      dovecot_ssl_key: /etc/letsencrypt/live/{{ mail_domain }}/privkey.pem
      postfix_ssl_cert: /etc/letsencrypt/live/{{ mail_domain }}/fullchain.pem
      postfix_ssl_key: /etc/letsencrypt/live/{{ mail_domain }}/privkey.pem
      postfix_smtp_tls_security_level: 'dane'
      postfix_mydestination: '{{mail_domain}}'
      postfix_myhostname: 'mail.{{mail_domain}}'
Acerca del proyecto

automates the installation and configuration of Postfix and Dovecot with SQL authentication

Instalar
ansible-galaxy install StackFocus.postfix-dovecot
Licencia
Unknown
Descargas
30.7k
Propietario