Postfix no pone en cola el correo electrónico saliente, pero todas las configuraciones son predeterminadas. ¿Por qué?

Postfix no pone en cola el correo electrónico saliente, pero todas las configuraciones son predeterminadas. ¿Por qué?

Configuré un servidor de correo con Postfix, Roundcube y Dovecot. Todo funciona bien, casi.

En mi país existe un popular servicio de correo electrónico gratuito llamado inbox.lv. Y tienen configurada una regla antispam que cuando un nuevo servidor intenta enviarles correos electrónicos, primero lo incluyen en la lista gris durante 10 minutos y requieren que el servidor vuelva a enviar el correo electrónico. Me parece bien.

Sin embargo, cuando se utiliza Postfix para enviar correos electrónicos salientes (ya sea desde Roundcube o Thunderbird), no pone el mensaje en cola. En lugar de eso, regresa inmediatamente con un error. También hay una entrada de registro (nuevas líneas/espaciados agregados por mí para mayor legibilidad; direcciones IP y de correo electrónico redactadas por razones de privacidad):

May 31 23:17:18 21 postfix/smtpd[24814]: NOQUEUE: reject: RCPT from unknown[MY.IP.ADDRESS.HERE]: 
    450 4.1.1 <[email protected]>: Recipient address rejected: unverified address:
    host mx1.inbox.lv[194.152.32.74] said: 450 4.7.1 <unknown[SERVER.IP.ADDRESS.HERE]>:
    Client host rejected: greylisted, please retry in 597 seconds (in reply to RCPT TO command);
    from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.1.216]>

Todas las configuraciones de la cola se dejan en los valores predeterminados. La versión de Postfix es 2.10.1.

¿Por qué sucede esto y cómo puedo hacer que Postfix ponga los mensajes en cola y vuelva a intentarlo en 10 minutos?

Agregado:Configuración de Postfix (anonimizada):

[root@myserver etc]# postconf mail_version
mail_version = 2.10.1

[root@myserver etc]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 100000000
milter_default_action = accept
mydestination = localhost
mydomain = mydomain.lv
myhostname = mydomain.lv
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = $smtpd_milters
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_milters = inet:127.0.0.1:8891
smtpd_recipient_restrictions = reject_unverified_recipient
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mydomain.lv/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mydomain.lv/privkey.pem
smtpd_tls_security_level = may
unknown_local_recipient_reject_code = 550
virtual_mailbox_domains = d1.lv d2.lv d3.lv d4.lv
virtual_mailbox_limit = 0
virtual_transport = lmtp:unix:/var/run/dovecot/lmtp

[root@myserver etc]# postconf -M
smtp       inet  n       -       n       -       -       smtpd
submission inet  n       -       n       -       -       smtpd
smtps      inet  n       -       n       -       -       smtpd
pickup     unix  n       -       n       60      1       pickup
cleanup    unix  n       -       n       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
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
[root@myserver etc]#

Respuesta1

Configuró Postfix para conectarse a destinos remotos y preguntarles sobre los destinatarios, como requisito.antesaceptas cualquier cosa en tu cola local.

smtpd_recipient_restrictions =reject_unverified_recipient

En un servidor de correo de propósito general, esto no es apropiado para nada.perodominios bajo su control o con cuyos operadores tenga un acuerdo.

Preguntar a los servidores remotos si tienen ciertos usuarios sin entregar correos hará que un buen número de servidores dejen de querer interactuar con usted. Antes de saber lo que enviará, no podrán saber fácilmente si es un spammer que intenta lavar una lista de sus próximas víctimas o alguien que intenta entregar correo.

El cambio más simple para abordar esa preocupación y resolver su problema original:

smtpd_recipient_restrictions =permit_sasl_authenticated,reject_unauth_destination, reject_unverified_recipient

Debido a que las restricciones se procesan en el orden especificado, esto exime a sus usuarios autenticados y a las solicitudes de retransmisión no relacionadas (rechazadas de todos modos). De esta manera, aún puede aplicar la aplicación reject_unverified_recipientde los mensajes entrantes (donde presumiblemente dovecot confirmará las direcciones sin demora). Pero sin molestar a los servidores remotos sobre destinatarios para los que en un momento aún no tienes correo. Sin embargo, debe ser más complejo que esto si desea que la función también esté habilitada para que sus usuarios se escriban mensajes entre sí. El archivo ADDRESS_VERIFICATION_README en su documentación de postfix es... un poco antiguo, pero aún así debería brindarle una descripción general.


Generalmente recomiendo usar master.cf (que viene con plantillas adecuadas, al menos en tiempos más recientes) para configurar instancias smtpd parcialmente separadas, una en el puerto 25 para uso general de Internet, una en el puerto 465 para envíos de usuarios autenticados obligatoriamente. De esa manera, puede aplicar, de manera razonablemente fácil de mantener, diferentes reglas por servicio, lo que facilita aún más la tarea de tratar el tráfico de retransmisión de manera diferente del tráfico entrante.

información relacionada