¿Cómo configurar EXIM para verificar el registro SPF de los correos electrónicos entrantes y agregar el encabezado "Recibido SPF" a los correos electrónicos entrantes?

¿Cómo configurar EXIM para verificar el registro SPF de los correos electrónicos entrantes y agregar el encabezado "Recibido SPF" a los correos electrónicos entrantes?

Estoy jugando con Exim y creé un servidor de correo que puede aceptar y enviar correos electrónicos. Ahora, quiero habilitar la verificación de SPF para cada correo electrónico entrante para que Received SPFse agregue un encabezado a estos correos electrónicos. Pero parece que no puedo encontrar una manera de hacer esto.

El doctor dice,SPF verification support is built into Exim if SUPPORT_SPF=yes is set in Local/Makefile. The support uses the libspf2 library https://www.libspf2.org/.

Pero supongo que uno sólo puede establecer esta opción en Sí si está compilando Exim desde la fuente. Lo instalé directamente desde el paquete ubuntu (me imagino que libspf2 se instala automáticamente en ese momento) y no sé dónde está la ubicación Local/Makefile. Estoy bastante seguro de que esto se puede hacer con bastante facilidad, pero no tengo ni idea de ello en este momento.

También verifiqué el directorio de configuración de Exim y encontré el siguiente fragmento de código relevante en 30_exim4-config_check_rcptel archivo.

Esto dice claramente que Exim verificará el registro SPF del remitente después del comando RCPT si la verificación SPF está habilitada y spf-tools-perlinstalada. Lo instalé spf-tools-perly todavía no vi ningún Received SPFencabezado. Entonces, esto plantea dos preguntas.

  1. ¿Cómo habilitar la verificación SPF para permitir la ejecución de este código?
  2. ¿Por qué spf-tools-perl como dice claramente el documento? Exim usa libspf. ¿Por qué entonces dos bibliotecas?
  # Use spfquery to perform a pair of SPF checks.
  #
  # This is quite costly in terms of DNS lookups (~6 lookups per mail).  Do not
  # enable if that's an issue.  Also note that if you enable this, you must
  # install "spf-tools-perl" which provides the spfquery command.
  # Missing spf-tools-perl will trigger the "Unexpected error in
  # SPF check" warning.
  .ifdef CHECK_RCPT_SPF
  deny
    message = [SPF] $sender_host_address is not allowed to send mail from \
              ${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}.
    log_message = SPF check failed.
    !acl = acl_local_deny_exceptions
    condition = ${run{/usr/bin/spfquery.mail-spf-perl --ip \
                   ${quote:$sender_host_address} --identity \
                   ${if def:sender_address_domain \
                       {--scope mfrom  --identity ${quote:$sender_address}}\
                       {--scope helo --identity ${quote:$sender_helo_name}}}}\
                   {no}{${if eq {$runrc}{1}{yes}{no}}}}

  defer
    message = Temporary DNS error while checking SPF record.  Try again later.
    !acl = acl_local_deny_exceptions
    condition = ${if eq {$runrc}{5}{yes}{no}}

  warn
    condition = ${if <={$runrc}{6}{yes}{no}}
    add_header = Received-SPF: ${if eq {$runrc}{0}{pass}\
                                {${if eq {$runrc}{2}{softfail}\
                                 {${if eq {$runrc}{3}{neutral}\
                  {${if eq {$runrc}{4}{permerror}\
                   {${if eq {$runrc}{6}{none}{error}}}}}}}}}\
                } client-ip=$sender_host_address; \
                ${if def:sender_address_domain \
                   {envelope-from=${sender_address}; }{}}\
                helo=$sender_helo_name

  warn
    log_message = Unexpected error in SPF check.
    condition = ${if >{$runrc}{6}{yes}{no}}
  .endif```  

información relacionada