Yannik.relaymail
Descripció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
- Ejemplo:
relaymail_smtp_port
: puerto del servidor smtp utilizado para reenviar correos- Predeterminado:
587
- Predeterminado:
relaymail_smtp_user
: nombre de usuario para autenticarse en el servidor de correos (requerido)- Ejemplo:
[email protected]
- Ejemplo:
relaymail_smtp_password
: contraseña para autenticarse en el servidor de correos (requerido)relaymail_force_from_address
: sobrescribir la dirección del remitente conrelaymail_smtp_user
(orelaymail_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
- Predeterminado:
relaymail_from_address
: dirección del remitente opcional que se usará porrelaymail_force_from_address
en lugar derelaymail_smtp_user
- Ejemplo:
usuario
o[email protected]
- Ejemplo:
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
- Predeterminado:
relaymail_overwrite_to_target
: dirección de correo a la que se deben enviar los correos con dirección de destino sobrescrita (requerido cuandorelaymail_overwrite_to
no esnone
)- Ejemplo:
[email protected]
- Ejemplo:
relaymail_smtp_tls_security_level
: Ver http://www.postfix.org/postconf.5.html#smtp_tls_security_level- Ejemplo:
dane-only
- Predeterminado:
secure
- Ejemplo:
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"
- Ejemplo:
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
- Ejemplo:
relaymail_restrict_port_25
: Restringir el tráfico saliente en el puerto 25 al usuario de postfix (mediante iptables).- Ejemplo:
falso
- Predeterminado:
verdadero
- Ejemplo:
relaymail_enable_smtpd
: Habilitar smtpd en el puerto 25 para la presentación de correos basada en smtp- Ejemplo:
verdadero
- Predeterminado:
falso
- Ejemplo:
relaymail_inet_interfaces
: Interfaces en las que escuchar cuando smtpd esté habilitado- Ejemplo:
todas
- Predeterminado:
solo bucle
- Ejemplo:
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
- Ejemplo:
relaymail_authorized_smtp_users
: Usuarios permitidos para enviar correos a través del smtp local- Ejemplo:
['keepalived']
- Predeterminado:
[]
- Ejemplo:
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
- Ejemplo:
relaymail_additional_options
: diccionario de pares clave/valor para agregar amain.cf
.- Predeterminado:
{}
- Predeterminado:
relaymail_additional_master_config
: Configuración adicional que se agrega amaster.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
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.
ansible-galaxy install Yannik.relaymail