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>
53 lines
2.9 KiB
CFEngine3
53 lines
2.9 KiB
CFEngine3
# Postfix master process configuration
|
|
# service type private unpriv chroot wakeup maxproc command + args
|
|
#
|
|
# chroot = n en TODOS los servicios (incidente 2026-07-29, fallo 4).
|
|
# El chroot de Postfix exige poblar /var/spool/postfix/{etc,dev} en el build; sin
|
|
# resolv.conf dentro del jail no hay resolución de MX y el correo se queda en cola
|
|
# con "Name service error for name=<destino> type=MX" — aunque `getent hosts` dentro
|
|
# del contenedor SÍ resuelva. En un contenedor el chroot no aporta nada: el
|
|
# contenedor ES el jail.
|
|
|
|
# Port 25 — SMTP (TLS optional, SASL required to relay)
|
|
smtp inet n - n - - smtpd
|
|
|
|
# Port 587 — Submission (TLS required, SASL required)
|
|
submission inet n - n - - smtpd
|
|
-o smtpd_tls_security_level=encrypt
|
|
-o smtpd_tls_auth_only=yes
|
|
-o smtpd_sasl_auth_enable=yes
|
|
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
|
|
-o smtpd_tls_loglevel=1
|
|
|
|
pickup unix n - n 60 1 pickup
|
|
cleanup unix n - n - 0 cleanup
|
|
qmgr unix n - n 300 1 qmgr
|
|
rewrite unix - - n - - trivial-rewrite
|
|
bounce unix - - n - 0 bounce
|
|
defer unix - - n - 0 bounce
|
|
trace unix - - n - 0 bounce
|
|
verify unix - - n - 1 verify
|
|
flush unix n - n 1000? 0 flush
|
|
proxymap unix - - n - - proxymap
|
|
proxywrite unix - - n - 1 proxymap
|
|
smtp unix - - n - - smtp
|
|
relay unix - - n - - smtp
|
|
showq unix n - n - - showq
|
|
error unix - - n - - error
|
|
retry unix - - n - - error
|
|
discard unix - - n - - discard
|
|
local unix - n n - - local
|
|
virtual unix - n n - - virtual
|
|
lmtp unix - - n - - lmtp
|
|
anvil unix - - n - 1 anvil
|
|
scache unix - - n - 1 scache
|
|
|
|
# tlsmgr — sin este daemon smtpd ANUNCIA STARTTLS en el EHLO pero no puede hacerlo,
|
|
# y devuelve "454 4.7.0 TLS not available due to local problem" (incidente, fallo 2).
|
|
tlsmgr unix - - n 1000? 1 tlsmgr
|
|
|
|
# postlogd — Postfix escribe a syslog y en este contenedor no corre ninguno, así que
|
|
# `kubectl logs` salía VACÍO y el incidente se diagnosticó a ciegas (fallo 5).
|
|
# Junto con maillog_file en main.cf, manda el log a un fichero legible.
|
|
postlog unix-dgram n - n - 1 postlogd
|