Comando Helo rechazado: se necesita un nombre de host completo

10

Mi servidor de correo está en alguna lista negra por causa de spam. Reconfuguré postfix. A menudo, mis clientes reciben este error y no pueden enviar correos electrónicos.

404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname

En Mail.log:

postfix/smtpd[9853]: NOQUEUE: reject: RCPT from unknown[xx.xx.xx.xx]: 
404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname; 
from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<PLLAMNAZIFE>

En mi main.cf:

   # rules restrictions
smtpd_client_restrictions =
        permit_sasl_authenticated 
smtpd_helo_restrictions =
        permit_mynetworks,
        reject_non_fqdn_helo_hostname,
        reject_invalid_helo_hostname,
        permit
smtpd_sender_restrictions =
smtpd_recipient_restrictions = 
        permit_sasl_authenticated, 
        reject_unauth_pipelining,
        reject_non_fqdn_recipient,
        reject_unknown_recipient_domain,
        permit_mynetworks, 
        reject_unauth_destination, 
        reject_invalid_hostname, 
        reject_non_fqdn_sender, 
        reject_unknown_sender_domain,
        reject_rhsbl_client blackhole.securitysage.com, 
        reject_rhsbl_sender blackhole.securitysage.com, 
        reject_rbl_client zen.spamhaus.org, 
        reject_rbl_client bl.spamcop.net, 
        reject_rbl_client blackholes.easynet.nl, 
        reject_rbl_client cbl.abuseat.org, 
        reject_rbl_client proxies.blackholes.wirehub.net, 
        reject_rbl_client dnsbl.njabl.org

smtpd_helo_required = yes
unknown_local_recipient_reject_code = 550
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining
RedLEON
fuente

Respuestas:

17

Ese mensaje de error aparece porque el cliente de correo envía solo un nombre de host simple ("PLLAMNAZIFE") en lugar de un nombre de host completo (por ejemplo, "PLLAMNAZIFE.example.com") en la parte HELO/ EHLOparte de la transacción SMTP y su servidor Postfix está configurado para rechazar dicho correo.

Muchos programas de cliente de correo no envían nombres de host válidos, completos y con el formato correcto en HELO/ EHLO. Dado que debe aceptar dicho correo de los clientes que pagan y tener poco o ningún control sobre el cliente de correo que usan (y debido a que los HELOcheques no son realmente útiles para bloquear el correo no deseado), probablemente sea mejor deshabilitar los HELOcheques.

Para deshabilitar las HELOcomprobaciones, elimine las siguientes dos líneas de su configuración de Postfix:

    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,

Aún mejor, elimine toda la smtpd_helo_restrictions = ...regla y smtpd_helo_required = yes.

cas
fuente
gracias. Deshabilité esas líneas y ahora funciona. Puedo enviar con Mozilla Thunderbird en mi PC. Pero mi cliente no puede enviar ningún correo con Outlook en su PC. ¿Hay alguna forma de solucionar este problema con HELO check config?
RedLEON
Si ha eliminado los cheques de saludo y sus clientes aún no pueden enviar correo, lo más probable es que sea otro problema, con un motivo de rechazo diferente en el registro de correo.
cas
Pueden enviar ahora. Pero quiero configurar mi servidor como seguro
RedLEON
2
¿Qué te hace pensar que los cheques helo mejoran la seguridad?
cas
8

Puede omitir las restricciones HELO para usuarios autenticados insertando permit_sasl_authenticatedantes de rechazar las reglas en la smtpd_helo_restrictionslista:

smtpd_helo_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permit
Stas
fuente
1

La variable de nombre de host para su servidor de correo no es válida.

Intente y cambie el valor del myhostnamecampo del /etc/postfix/main.cfvalor predeterminado a su nombre de host (por ejemplo, yourwebsite.como mail.yourwebsite.com)

Jason Swartz
fuente
0

Me ha llevado años resolver esto

Estoy ejecutando un servidor centos y recibí un correo electrónico que devuelve el informe de error "Comando Helo rechazado: necesito un nombre de host totalmente calificado"

Terminé habilitando "Referencia / etc / mailhelo para SMTP HELO saliente [?]" Esto estaba ubicado en "administrador de configuración exim" y luego "Dominios e IPS" en el servidor VPS

Luego usé masilla y remoté en el servidor y ejecuté este comando "sudo nano / etc / mailhelo"

En ese archivo creé los dominios example.com: example.com sub.example.com: example.com example.net: example.net addon.example.net: example.net *: hostname.example.com

(según http://docs.cpanel.net/twiki/bin/view/AllDocumentation/WHMDocs/EximDifferentIps )

He probado enviar correos electrónicos y todo se ve bien hasta ahora

Matt Bird
fuente
0

No es su servidor de correo electrónico el que rechaza al cliente, sino un servidor SMTP externo que rechaza el mensaje de su servidor SMTP, el problema es que su servidor SMTP no envía su nombre FQDN en el mensaje helo cuando se comunica con otros servidores.

Esto generalmente se puede resolver agregando la IP pública al archivo de hosts con el FQDN al archivo / etc / hosts. Me gusta esto:

1.1.1.1 host.domain.com host

127.0.0.2 host.domain.com host

Donde 1.1.1.1 es la IP oficial.

Tuve este problema y no ayudó que el DNS funcionara en ambos sentidos hacia adelante / atrás en la IP pública y solo tenía mi propio servidor de nombres en /etc/resolv.conf. Incluso hostname -f devolvió el correcto. Todavía tenía que poner la ip y el nombre de host a / etc / hosts para que sendmail realmente use el FQDN en lugar de solo el nombre de host corto.

Si hace telnet a su servidor en el puerto 25, asegúrese de que la línea 220 diga el FQDN y no solo el host. Me gusta esto:

220 host.domain.com ESMTP Sendmail 8.15.2 / 8.15.2 / SuSE Linux 0.8; Lun, 9 Jul 2018 18:19:48 +0200

Jonas Kvinge
fuente
0

A veces un servidor tiene un "hipo". Causado, por ejemplo, por ataques de correo.

Primero intente reiniciar el servidor. Luego configure el correo en el servidor en apagado después de 15 segundos nuevamente.

A veces, el cmd HELO rechazado se debe a que el correo no puede cargar nuevas definiciones de antivirus; como AmaVis que se usa en los servidores de Apple. Un reinicio y apagado / encendido de la aplicación de correo en el servidor resuelve este problema. Salud.

Danny
fuente
0

Recibía un nombre que no era de dominio cuando lo ejecutaba hostname -f. Así que busqué en Google sin dominio en "hostname -f" . Resultó que necesitaba editar /etc/hostname(estoy en Debian) para resolver el problema. Después de que tanto hostname -fy heloestaban usando nombre de host completo.

Jarekczek
fuente
0

Si desea rechazar HELO con nombres de host incorrectos, pero aún así permite que sus usuarios puedan enviar incluso si sus clientes no envían FQDN con HELO, puede dejar estas líneas en su lugar tal como las tiene:

reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,

Pero asegúrese de que estén precedidos por:

permit_sasl_authenticated,

De esta forma, cuando uno de sus usuarios se autentique, se les permitirá enviar correos electrónicos independientemente de la validez de su comando HELO, y solo conexiones no autenticadas (que solo deberían ser otros servidores SMTP que le envíen correo, porque usted es obviamente, requerir que todos sus usuarios se autentiquen, ¿verdad?) estará sujeto al requisito válido de HELO.

Nick Coons
fuente