Parece que la última actualización del receptor de correo Self-hosted mail-receiver update following Let's Encrypt root certificate change ya no resuelve direcciones IP a nombres de host. Esto causa problemas con las restricciones de acceso de cliente de Postfix que antes funcionaban, habilitadas al agregar la siguiente línea a mail-receiver.yml:
POSTCONF_smtpd_client_restrictions: 'regexp:/etc/postfix/shared/client_access_regex'
Este es un fragmento del registro de mail-receiver que muestra una conexión entrante:
Oct 01 17:38:11 discourse-mail-receiver postfix/master[1]: reload -- version 3.5.6, configuration /etc/postfix
Oct 01 17:41:58 discourse-mail-receiver postfix/smtpd[151]: connect from unknown[167.71.160.115]
Oct 01 17:41:59 discourse-mail-receiver postfix/smtpd[151]: disconnect from unknown[167.71.160.115] ehlo=2 starttls=1 mail=1 quit=1 commands=5
Lo que antes se resolvía al nombre de host del cliente de origen www11-do.checktls.com[167.71.160.115] ahora aparece sin resolver y marcado como unknown[167.71.160.115].
Esto entra en conflicto con las entradas de expresión regular en el archivo client_access_regex, diseñado para rechazar todos los hosts sin un registro PTR válido (básicamente, todos los retransmisores de spam), así como todos los hosts de rangos de IP dinámicos (principalmente hosts virtuales y, de nuevo, básicamente todos los retransmisores de spam).
Dado que ninguna IP se resuelve a un nombre de host, ninguna de las reglas funciona ya, y lo que es peor, la línea /unknown/ REJECT ahora bloquea todo el correo electrónico entrante. Tuve que desactivar temporalmente la regla para permitir las conexiones entrantes, y todas las demás reglas quedan inactivas debido al problema de resolución, por lo que esto ahora expone el servidor al spam nuevamente (mi foro fue inundado por spam antes de implementar estas reglas, y después de hacerlo, no recuerdo haber recibido ninguno).
No puedo volver a la versión anterior como solución temporal (debido a los problemas con Let’s Encrypt), y la nueva versión vuelve a abrir las compuertas del spam, por lo que estaría muy agradecido por una solución (intenté averiguar cómo habilitar manualmente la resolución DNS dentro de la imagen de Docker, pero sin éxito).
Aquí hay un archivo client_access_regex de referencia, por si alguien tiene los mismos problemas recurrentes de spam y desea probarlo (utiliza Customize direct-delivery Postfix configuration para configurar /etc/postfix/shared y mail-receiver.yml):
# regex dns: ([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}
# regex ip: ((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
#
# dyn-ip-dns:
/((\\.|-|x)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){2}((\\.|-)[a-zA-Z0-9]+)+\\.[a-zA-Z]{2,}/ REJECT
/unknown/ REJECT
/sample-spam\\.domain\\.com/ REJECT