Implementé el filtrado de valid_recipients a través de postfix/valid_recipients y rellené /etc/postfix/valid_recipients. Desde entonces, he estado viendo advertencias repetidas e intentos de conexión entrante cada ~6 minutos. Aquí hay un segmento sanitizado de mi registro.
Salida exacta del registro
Jul 23 05:13:40 ubuntu-mail-receiver postfix/smtpd[2265]: warning: /etc/postfix/valid_recipients, line 1: expected format: key whitespace value -- ignoring this line
Jul 23 05:13:40 ubuntu-mail-receiver postfix/smtpd[2265]: warning: /etc/postfix/valid_recipients, line 2: expected format: key whitespace value -- ignoring this line
...
Jul 23 05:13:40 ubuntu-mail-receiver postfix/smtpd[2265]: warning: /etc/postfix/valid_recipients, line 16: expected format: key whitespace value -- ignoring this line
Estas advertencias aparecen cada pocos minutos, alineadas con intentos de conexión no autenticados repetidos como:
Jul 23 05:13:40 ubuntu-mail-receiver postfix/smtpd[2265]: warning: hostname unassigned.quadranet.com does not resolve to address 198.55.98.3
Jul 23 05:13:40 ubuntu-mail-receiver postfix/smtpd[2265]: connect from unknown[198.55.98.3]
Jul 23 05:13:40 ubuntu-mail-receiver postfix/smtpd[2265]: disconnect from unknown[198.55.98.3] ehlo=1 auth=0/1 quit=1 commands=2/3
Este mismo patrón se repite desde 198.55.98.3 a lo largo de docenas de ciclos durante la hora.
El correo legítimo pasa
Solo para confirmar, las entregas legítimas (por ejemplo, de Microsoft 365) están funcionando:
Buscando: ¿Es necesario o recomendable modificar manualmente postfix main.cf al implementar un archivo valid_recipients para restricciones de destinatarios en un contenedor de receptor de correo de Discourse? ¿Se debe editar main.cf directamente, o todos los cambios recomendados se manejan mediante variables de entorno de docker o configuraciones de archivo yml del lanzador para configuraciones de receptores de correo de Discourse?
No, no es necesario ni recomendable modificar manualmente main.cf en el contenedor del receptor de correo para filtrar destinatarios válidos al seguir la configuración estándar de Discourse.
Enfoque Correcto:
La guía oficial de receptor de correo y la configuración del contenedor de Discourse están diseñadas para que no edites main.cf manualmente. En su lugar:
Debes usar la sección env de mail-receiver.yml para establecer parámetros de Postfix, específicamente usando una variable de entorno como:
Docker/launcher aplica correctamente estas configuraciones al iniciar el contenedor, inyectándolas en Postfix sin necesidad de editar archivos directamente.
Editar main.cf directamente puede causar conflictos o ser sobrescrito en reconstrucciones del contenedor. También es fácil romper cosas (como el formato del archivo o el mapeo de destinatarios) de esta manera.
Sobre Tu Error:
Las advertencias que ves:
warning: /etc/postfix/valid_recipients, line 1: expected format: key whitespace value -- ignoring this line
son causadas por un archivo valid_recipients mal formateado, no por cómo se establece la configuración (env vs main.cf). Asegúrate de que tus entradas sean como:
alloweduser@yourdomain.com OK
another@yourdomain.com OK
default REJECT
Sin dos puntos, signos de igual o comas, solo la dirección, espacio en blanco y OK (o REJECT).
No editesmain.cf a menos que tengas una configuración altamente avanzada y completamente personalizada y entiendas exactamente lo que estás haciendo.
Todas las instrucciones normales (incluido el filtrado de destinatarios y remitentes válidos) se realizan estableciendo variables de entorno en mail-receiver.yml.
Resumen:
No deberías necesitar tocar main.cf para configuraciones estándar de receptor de correo de Discourse. Las variables de entorno en el yml son la forma recomendada y compatible. Para los mapas de destinatarios, usa siempre formatos hash/texthash correctos y sintaxis de archivo correcta.
en realidad he eliminado por completo la configuración personalizada, la configuración descrita aquí, y mi prueba de correo funcionó bien.
Se detectó la arquitectura x86_64.
Asegurando que el lanzador esté actualizado
Obteniendo origen
El lanzador está actualizado
Deteniendo contenedor antiguo
+ /usr/bin/docker stop -t 600 mail-receiver
mail-receiver
release: Extrayendo de discourse/mail-receiver
Digest: sha256:2a0d45bb92a783c846a821e635413764eeadb3441ef6190085545a4[9 dígitos redactados]
Status: La imagen está actualizada para discourse/mail-receiver:release
docker.io/discourse/mail-receiver:release
ERROR: No se puede encontrar la biblioteca Ruby o la biblioteca compartida pups
cd /pups && /pups/bin/pups --stdin
/bin/bash: advertencia: setlocale: LC_ALL: no se puede cambiar la configuración regional (en_US.UTF-8)
sha256:[6 dígitos redactados]69734d779a95ec83c7103dc2fc04f1d690ebde62[18 dígitos redactados]
[¿Clave API de 64 caracteres? Redactado]
Eliminando contenedor antiguo
+ /usr/bin/docker rm mail-receiver
mail-receiver
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e MAIL_DOMAIN=discourse. MIOTRODOMINIO.com -e DISCOURSE_BASE_URL=https:// MIOTRODOMINIO.com -e DISCOURSE_API_KEY=[clave API de 64 dígitos redactada] -e DISCOURSE_API_USERNAME=system -h ubuntu-mail-receiver -e DOCKER_HOST_IP=172.17.0.1 --name mail-receiver -t -p 25:25 -v /var/discourse/shared/mail-receiver/postfix-spool:/var/spool/postfix --mac-address [dirección MAC redactada] local_discourse/mail-receiver /sbin/boot
[¿Clave API de 64 dígitos? Redactado]
root@ubuntu:/var/discourse# ./launcher logs mail-receiver
Se detectó la arquitectura x86_64.
/bin/bash: advertencia: setlocale: LC_ALL: no se puede cambiar la configuración regional (en_US.UTF-8)
Entorno operativo:
HOSTNAME=ubuntu-mail-receiver
LANGUAGE=en_US.UTF-8
MAIL_DOMAIN=discourse.MIOTRODOMINIO.com
DOCKER_HOST_IP=172.17.0.1
PWD=/
DISCOURSE_BASE_URL=https:// MIOTRODOMINIO.com
HOME=/root
LANG=en_US.UTF-8
TERM=xterm
SHLVL=1
DISCOURSE_API_USERNAME=system
LC_ALL=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
INCLUDE_DMARC=true
DISCOURSE_API_KEY=[clave API de 64 dígitos redactada]
_=/usr/bin/env
Entregando correo enviado a discourse.MIOTRODOMINIO.com a Discourse
Iniciando OpenDKIM...
perl: advertencia: Falló la configuración de la configuración regional.
perl: advertencia: Por favor, compruebe que su configuración regional:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
estén soportadas e instaladas en su sistema.
perl: advertencia: Volviendo a la configuración regional estándar ("C").
Añadiendo usuario `postfix' al grupo `opendkim'...
<86>Jul 23 13:27:19 usermod[16]: add 'postfix' to group 'opendkim'
<86>Jul 23 13:27:19 usermod[16]: add 'postfix' to shadow group 'opendkim'
Hecho.
Iniciando OpenDMARC...
perl: advertencia: Falló la configuración de la configuración regional.
perl: advertencia: Por favor, compruebe que su configuración regional:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
estén soportadas e instaladas en su sistema.
perl: advertencia: Volviendo a la configuración regional estándar ("C").
<22>Jul 23 13:27:19 opendkim[24]: OpenDKIM Filter v2.11.0 starting (args: -x /etc/opendkim.conf)
Añadiendo usuario `postfix' al grupo `opendmarc'...
<86>Jul 23 13:27:19 usermod[31]: add 'postfix' to group 'opendmarc'
<86>Jul 23 13:27:19 usermod[31]: add 'postfix' to shadow group 'opendmarc'
Hecho.
<22>Jul 23 13:27:19 opendmarc[39]: OpenDMARC Filter v1.4.2 starting (args: -c /etc/opendmarc.conf)
<22>Jul 23 13:27:19 opendmarc[39]: servicios de autenticación confiables adicionales: (ninguno)
postfix: Postfix está usando configuraciones predeterminadas compatibles con versiones anteriores
Jul 23 13:27:19 ubuntu-mail-receiver postfix[51]: Postfix está usando configuraciones predeterminadas compatibles con versiones anteriores
postfix: Ver http://www.postfix.org/COMPATIBILITY_README.html para más detalles
Jul 23 13:27:19 ubuntu-mail-receiver postfix[51]: Ver http://www.postfix.org/COMPATIBILITY_README.html para más detalles
postfix: Para deshabilitar la compatibilidad con versiones anteriores, usa "postconf compatibility_level=3.6" y "postfix reload"
Jul 23 13:27:19 ubuntu-mail-receiver postfix[51]: Para deshabilitar la compatibilidad con versiones anteriores, usa "postconf compatibility_level=3.6" y "postfix reload"
Iniciando Postfix
Jul 23 13:27:19 ubuntu-mail-receiver postfix/master[1]: daemon started -- version 3.7.11, configuration /etc/postfix
Jul 23 13:27:53 ubuntu-mail-receiver postfix/smtpd[122]: connect from mail-il1-f180.google.com[209.85.166.180]
<22>Jul 23 13:27:54 policyd-spf[129]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.166.180; helo=mail-il1-f180.google.com; envelope-from= persona@gmail.com; receiver=discourse.MIOTRODOMINIO.com
Jul 23 13:27:54 ubuntu-mail-receiver postfix/smtpd[122]: BC6D71BF9C8: client=mail-il1-f180.google.com[209.85.166.180]
Jul 23 13:27:54 ubuntu-mail-receiver postfix/cleanup[130]: BC6D71BF9C8: message-id=<CWXP1[8 dígitos redactados]81B627937FA7F4B2CE65A15FA@CWXP123MB2918.GBRP123.PROD.OUTLOOK.COM>
<22>Jul 23 13:27:55 opendkim[24]: BC6D71BF9C8: DKIM verification successful
<22>Jul 23 13:27:55 opendkim[24]: BC6D71BF9C8: s=20230601 d=gmail.com a=rsa-sha256 SSL
<22>Jul 23 13:27:55 opendmarc[39]: implicit authentication service: ubuntu-mail-receiver.localdomain
<22>Jul 23 13:27:55 opendmarc[39]: BC6D71BF9C8: gmail.com pass
Jul 23 13:27:55 ubuntu-mail-receiver postfix/qmgr[120]: BC6D71BF9C8: from=<persona@gmail.com>, size=75533, nrcpt=1 (queue active)
Jul 23 13:27:55 ubuntu-mail-receiver postfix/smtpd[122]: disconnect from mail-il1-f180.google.com[209.85.166.180] ehlo=1 mail=1 rcpt=1 bdat=2 quit=1 commands=6
<23>Jul 23 13:27:55 receive-mail[133]: Recipient: persona.REDACTED@discourse.MIOTRODOMINIO.com
Jul 23 13:27:55 ubuntu-mail-receiver postfix/pipe[132]: BC6D71BF9C8: to=< persona.REDACTED@discourse.MIOTRODOMINIO.com>, relay=discourse, delay=1.8, delays=1.6/0.01/0/0.22, dsn=2.0.0, status=sent (delivered via discourse service)
Jul 23 13:27:55 ubuntu-mail-receiver postfix/qmgr[120]: BC6D71BF9C8: removed