Postfix replace_unknown_reverse_client_hostname: reemplace default unknown_client_reject_code (450) a 550. ¿Por qué / cuándo no debería?

9

En la batalla diaria contra el SPAM, en varias ocasiones he tenido la tentación de hacer cumplir los requisitos de DNS de los clientes que se conectan desde Internet.

En detalle, habría agregado la configuración del rechazo_desconocido_reverso_nombre_host_cliente dentro de mi sección smtpd_client_restrictions , como en:

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            reject_unknown_reverse_client_hostname
            reject_unauth_pipelining 

De todos modos, noté que cuando se aplica dicha restricción, el comportamiento de Postfix es bastante "blando" ya que el valor predeterminado para unknown_client_reject_code450 es. Por lo tanto, se invita al cliente a seguir intentándolo nuevamente.

Mientras investigaba una respuesta 550, me encontré con la siguiente declaración, en la documentación oficial de Postfix :

ingrese la descripción de la imagen aquí

Estoy absolutamente no un experto acerca de todo el RFC 5321 , pero como alguien lo suficientemente mayor para saber RFC 821 , realmente no veo por qué, una respuesta en lugar de un 450 550, podría afectar mi ejemplo Postfix en el nivel máximo de SMTP ( romper el cumplimiento de RFC), especialmente considerando que en caso de errores temporales, Postfix se mantendrá con un 450 independientemente de la configuración explícita.

Entonces, ¿alguien puede ayudarme a entender cuál es el problema con tal reemplazo?


PD: mientras tanto, terminé con una restricción "relajada":

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            warn_if_reject reject_unknown_reverse_client_hostname
            reject_non_fqdn_helo_hostname
            reject_unauth_pipelining 
            reject_invalid_helo_hostname 
Damiano Verzulli
fuente

Respuestas:

12

Comenzaré con dos respuestas prácticas.

  1. La primera y más obvia respuesta es que, en el caso de que haya un error temporal de DNS, un rebote temporal permitirá que el servidor de correo del remitente vuelva a intentarlo hasta que se solucione el error de DNS. En este caso, un rebote permanente impedirá que el correo de jamón real llegue a usted.

  2. La segunda respuesta es que se envía una gran cantidad de correo no deseado a través de cajas de botnet que no tienen ninguna forma de programas funcionales reales para enviar el correo. Rociarán su basura solo una vez, y no intentarán reenviar ningún mensaje si dicho mensaje recibe un error temporal o permanente. Entonces, al usar un error temporal, está bloqueando un gran porcentaje del spam para siempre, pero todavía está permitiendo que Ham lo intente nuevamente. (Por cierto, esta es la razón por la que las listas grises todavía funcionan y aún atrapan mucho spam).

Además de estas, también hay una respuesta que se relaciona más con la teoría y el RFC.

El RFC dice en la sección 4.2.1. ese:

Una regla general para determinar si una respuesta encaja en la categoría 4yz o 5yz (ver más abajo) es que las respuestas son 4yz si pueden tener éxito si se repiten sin ningún cambio en el formulario de comando o en las propiedades del remitente o receptor (es decir, , el comando se repite de forma idéntica y el receptor no presenta una nueva implementación).

En el caso de una falla de búsqueda inversa, sería posible que el mensaje fuera aceptable sin ningún cambio en el mensaje mismo, siempre que el error de DNS sea reparado. Por lo tanto, esto debería ser un error temporal.

En el caso de que el mensaje no sea spam, el administrador del servidor de correo remitente puede notar el mensaje de error y solucionar el problema de DNS, de modo que el mensaje se pueda entregar sin que el usuario tenga que intervenir y volver a enviar el mensaje. Y a menos que el usuario que envía el correo electrónico también esté a cargo del servidor de correo y / o sus entradas DNS, incluso si obtienen un rebote permanente directamente, no podrán hacer nada con él, a diferencia, por ejemplo, del caso de un error ortográfico habla a.

Por supuesto, siempre tiene el derecho de rechazar cualquier correo electrónico por cualquier motivo.

Jenny D
fuente
Pensé en problemas temporales de DNS pero ... parece que no deberían ser un problema ya que ... " El servidor SMTP siempre responde con 450 cuando falla la asignación debido a una condición de error temporal ". Estos deberían incluir problemas temporales de búsqueda de DNS. Tu no? En cuanto al segundo punto (BotNet, listas grises, etc.), parece razonable: cuando los clientes no implementan un mecanismo de cola adecuado, una respuesta 4XX produce los mismos efectos que una 5XX. De todos modos, todavía extraño por qué esto tiene impactos a nivel RFC.
Damiano Verzulli
2
@DamianoVerzulli Se aplicaría cuando la asignación falla con un error, no cuando el DNS está mal configurado para devolver el nombre incorrecto, y posteriormente se corrige. En cualquier caso, me he expandido un poco en los temas relacionados con el RFC.
Jenny D
1
Gracias por señalar la sección RFC adecuada. Me estoy centrando en esto: "las respuestas son 4yz si pueden tener éxito si se repiten SIN NINGÚN CAMBIO en el formulario de comando o en las PROPIEDADES del ENVIADOR o del receptor". Mi primera suposición es que el nombre de host DNS del cliente, así como su mapeo DNS inverso, son propiedades del remitente. Tu no? De lo contrario, no puedo ver lo que podría ser una propiedad del remitente. (Por cierto: no tome mis comentarios personalmente. ¡Estoy realmente interesado en esta discusión y realmente aprecio sus puntos! ¡Gracias por comentar!).
Damiano Verzulli
1
@DamianoVerzulli El nombre de host DNS no es una propiedad del servidor de correo remitente y no se puede cambiar dentro de la configuración del servidor de correo. Está controlado por el servidor DNS autorizado, que generalmente ni siquiera es el mismo servidor, y mucho menos parte del servidor de correo electrónico. A veces ni siquiera se controla dentro de la misma organización. (No lo estoy tomando personalmente, esta es una discusión de hechos, sin ningún argumento ad hominem, ¡no hay nada que tomar personalmente! Estoy de acuerdo en que es muy interesante y no creo que sea claro, hay un caso para ser hecho para el otro lado también.)
Jenny D