Some checks failed
Build smtp-relay / build (push) Failing after 1m10s
El correo saliente de manabo.org lo sostenian cuatro cambios aplicados con
postconf/adduser sobre el contenedor vivo. Llevaban 70 dias fuera de git: el
primer rollout restart, reschedule o actualizacion del Image Updater los borraba
y el relay volvia a quedar mudo -- sin aviso posible, porque la alerta ES el
correo.
La lista no se copio del README: se midio. Se arranco un contenedor de la imagen
que corre hoy (digest 38ebbe1d) y se diffeo su postconf -n/-M contra el pod vivo.
Son SEIS cambios, no cuatro:
master.cf falta el daemon tlsmgr -> smtpd ANUNCIA STARTTLS en el EHLO y luego
no puede hacerlo: 454 4.7.0 TLS not available due to local problem
master.cf falta postlog/postlogd -> Postfix escribe a syslog, aqui no hay
ninguno y kubectl logs sale VACIO (el incidente se diagnostico a
ciegas)
master.cf chroot y->n en los 20 servicios
main.cf falta maillog_file = /var/log/postfix.log
main.cf smtpd_sasl_local_domain: $myhostname -> el dominio real
Dockerfile postfix no estaba en el grupo sasl -> /etc/sasldb2 es root:sasl 0640
y smtpd no puede abrirlo: 454 Temporary authentication failure
Dos matices sobre lo que estaba anotado:
El chroot no se "pobla desde el build", se DESACTIVA. En el pod vivo
/var/spool/postfix/etc sigue vacio con fecha Mar 6 2024: nadie lo poblo nunca.
Poblarlo habria metido un mecanismo jamas ejercitado y dejado fuera el que
sostiene el correo. En un contenedor el chroot no aporta nada: el contenedor ES
el jail.
El realm no se fija a pelo en main.cf sino desde RELAY_AUTH_DOMAIN en el
entrypoint, que es la misma variable con la que saslpasswd2 crea la entrada del
sasldb. Declarados aparte pudieron divergir en silencio, y eso es exactamente lo
que causo el fallo de autenticacion.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.4 KiB
CFEngine3
36 lines
1.4 KiB
CFEngine3
myhostname = relay.manabo.org
|
|
myorigin = $myhostname
|
|
mydestination =
|
|
local_transport = error:local delivery disabled
|
|
inet_interfaces = all
|
|
inet_protocols = all
|
|
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
|
|
|
|
# Logging a fichero — requiere el servicio postlog/postlogd en master.cf.
|
|
# Sin esto Postfix escribe a syslog, que aquí no existe, y `kubectl logs` sale vacío.
|
|
maillog_file = /var/log/postfix.log
|
|
|
|
# SASL authentication (Cyrus SASL / sasldb2)
|
|
smtpd_sasl_auth_enable = yes
|
|
smtpd_sasl_type = cyrus
|
|
smtpd_sasl_path = smtpd
|
|
smtpd_sasl_security_options = noanonymous
|
|
cyrus_sasl_config_path = /etc/postfix/sasl
|
|
# smtpd_sasl_local_domain lo fija el entrypoint desde RELAY_AUTH_DOMAIN — la MISMA
|
|
# variable con la que saslpasswd2 crea la entrada del sasldb. Antes estaba aquí a
|
|
# $myhostname y divergía: el realm salía relayuser@relay.manabo.org y la entrada real
|
|
# era relayuser@manabo.org ⇒ "454 4.7.0 Temporary authentication failure"
|
|
# (incidente 2026-07-29, fallo 3). No lo pongas aquí: se volverían a poder separar.
|
|
|
|
# Only accept mail from authenticated clients
|
|
smtpd_relay_restrictions = permit_sasl_authenticated, reject
|
|
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
|
|
|
|
# TLS (cert mounted from ExternalSecret)
|
|
smtpd_tls_cert_file = /etc/postfix/tls/tls.crt
|
|
smtpd_tls_key_file = /etc/postfix/tls/tls.key
|
|
smtpd_tls_security_level = may
|
|
smtpd_tls_auth_only = yes
|
|
smtpd_tls_loglevel = 1
|
|
smtp_tls_security_level = may
|