Yannik.relaymail

Descripción

Estado de Construcción

Este rol configura un host para que envíe correos electrónicos salientes a través de un smarthost y, de manera opcional, reenvía correos electrónicos dirigidos a usuarios locales del sistema. Es una alternativa segura a ssmtp.

¿Por qué no debería usar ssmtp, no es más fácil de configurar?

Creo que este rol hace que la configuración de postfix sea aún más fácil que la de ssmtp.

Esto es lo que descubrí cuando instalé ssmtp:

Quería usar ssmtp hoy, pero me di cuenta de que NO verifica el certificado SSL/TLS del servidor remoto en las versiones actuales de debian y ubuntu y tampoco verifica el nombre de host del certificado. Este es un gran problema, ya que esto efectivamente hace que la encriptación sea inútil y tu contraseña se transmite como si fuera texto plano, por lo que cualquiera puede interceptarla. Esto también se ha reportado en un error de debian, pero no ha habido progreso en años: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662960

La versión de ssmtp en los paquetes de Redhat ha sido parcheada para al menos verificar el certificado, pero el nombre de host aún NO se verifica, por lo que la encriptación es tan insegura como en debian/ubuntu. Hay un error sobre esto, pero tampoco ha habido progreso en años: https://bugzilla.redhat.com/show_bug.cgi?id=864894

Así que, si te preocupa la seguridad de la cuenta de correo electrónico que usas para los correos salientes de tus servidores, NO uses ssmtp.

ssmtp no ha tenido desarrollo activo desde al menos 2009: https://anonscm.debian.org/gitweb/?p=ssmtp/ssmtp.git

Además de estos puntos, cualquier usuario que pueda enviar correos a través de ssmtp necesita acceso de lectura al archivo de configuración de ssmtp que incluye el nombre de usuario y la contraseña usados para la autenticación smtp. En condiciones normales, probablemente darías permiso de lectura a 'otros', lo que significaría que cada usuario/servicio en ese sistema podría leer tus credenciales SMTP.

Este no es el caso con el diseño enfocado en la seguridad de postfix.

Requisitos

Este rol funciona en todas las distribuciones basadas en debian y podría ser fácilmente adaptado para funcionar en cualquier distribución que ofrezca postfix.

Se requiere Ansible versión 2.4 o superior para este rol.

Variables del Rol

  • relaymail_smtp_host: nombre del servidor smtp utilizado para reenviar correos (requerido)
    • Ejemplo: smtp.ejemplo.org
  • relaymail_smtp_port: puerto del servidor smtp utilizado para reenviar correos
    • Predeterminado: 587
  • relaymail_smtp_user: nombre de usuario para autenticarse en el servidor de correos (requerido)
  • relaymail_smtp_password: contraseña para autenticarse en el servidor de correos (requerido)
  • relaymail_force_from_address: sobrescribir la dirección del remitente con relaymail_smtp_user (o relaymail_from_address si está definido). all sobrescribe la dirección del remitente para todos los correos, local la sobrescribe para todos los correos enviados desde un usuario local, none nunca sobrescribe la dirección del remitente
    • Predeterminado: all
  • relaymail_from_address: dirección del remitente opcional que se usará por relaymail_force_from_address en lugar de relaymail_smtp_user
  • relaymail_overwrite_to: all sobrescribe la dirección de destino para todos los correos, local sobrescribe la dirección de destino para correos dirigidos a usuarios locales, none nunca sobrescribe la dirección de destino
    • Predeterminado: all
  • relaymail_overwrite_to_target: dirección de correo a la que se deben enviar los correos con dirección de destino sobrescrita (requerido cuando relaymail_overwrite_to no es none)
  • relaymail_smtp_tls_security_level: Ver http://www.postfix.org/postconf.5.html#smtp_tls_security_level
    • Ejemplo: dane-only
    • Predeterminado: secure
  • relaymail_smtp_tls_wrappermode: Conectar usando modo SSL/TLS explícito (en lugar de STARTSSL). Requerido al enviar correos en el puerto 465 (SMTPS).
    • Ejemplo: "sí"
    • Predeterminado: "no"
  • relaymail_authorized_submit_users: Solo permitir que los usuarios especificados envíen correos mediante el comando sendmail (ver http://www.postfix.org/postconf.5.html#authorized_submit_users)
    • Ejemplo: root
    • Predeterminado: static:anyone
  • relaymail_restrict_port_25: Restringir el tráfico saliente en el puerto 25 al usuario de postfix (mediante iptables).
    • Ejemplo: falso
    • Predeterminado: verdadero
  • relaymail_enable_smtpd: Habilitar smtpd en el puerto 25 para la presentación de correos basada en smtp
    • Ejemplo: verdadero
    • Predeterminado: falso
  • relaymail_inet_interfaces: Interfaces en las que escuchar cuando smtpd esté habilitado
    • Ejemplo: todas
    • Predeterminado: solo bucle
  • relaymail_mynetworks: Redes desde las cuales aceptar y reenviar correos (solo aplicable cuando smtpd está habilitado)
    • Ejemplo: 127.0.0.0/8 172.30.0.0/16
    • Predeterminado: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • relaymail_authorized_smtp_users: Usuarios permitidos para enviar correos a través del smtp local
    • Ejemplo: ['keepalived']
    • Predeterminado: []
  • relaymail_install_rsyslog: Instala rsyslog, que es responsable de escribir los mensajes de registro de postfix en /var/log/mail.log
    • Ejemplo: falso
    • Predeterminado: verdadero
  • relaymail_additional_options: diccionario de pares clave/valor para agregar a main.cf.
    • Predeterminado: {}
  • relaymail_additional_master_config: Configuración adicional que se agrega a master.cf
    • Predeterminado: ``

Nota: Las opciones establecidas mediante relaymail_additional_options anularán configuraciones anteriores. Según el manual de postfix, "Cuando el mismo parámetro se define varias veces, solo se recuerda la última instancia." Por lo tanto, aunque las anulaciones son válidas, postfix generará un mensaje de advertencia.

Ejemplo de Playbook

- hosts: all
  roles:
    - role: Yannik.relaymail
      relaymail_smtp_host: smtp.ejemplo.org
      relaymail_smtp_user: [email protected]
      relaymail_smtp_password: secreto
      relaymail_overwrite_to: local
      relaymail_overwrite_to_target: [email protected]
      relaymail_additional_options:
        smtp_tls_wrappermode: "sí"

Licencia

GPLv2

Información del Autor

Yannik Sembritzki

Acerca del proyecto

This role setups up a host so that it sends outgoing mails over a smarthost and optionally forwards email addressed to local system users. A secure alternative to ssmtp.

Instalar
ansible-galaxy install Yannik.relaymail
Licencia
gpl-2.0
Descargas
499
Propietario