Mă joc cu Exim și am creat un server de e-mail care poate accepta și trimite e-mailuri în regulă. Acum, vreau să activez verificarea SPF pentru fiecare e-mail primit, astfel încât a SPF primit
antet este adăugat la aceste e-mailuri. Dar nu pot să-mi dau seama cum să fac asta.
Doctorul spune, Suportul de verificare SPF este încorporat în Exim dacă SUPPORT_SPF=yes este setat în Local/Makefile. Suportul folosește biblioteca libspf2 https://www.libspf2.org/.
Dar presupun că se poate seta această opțiune la da numai dacă el/ea construiește Exim de la sursă. L-am instalat direct din pachetul ubuntu (îmi imaginez că libspf2 este instalat automat atunci) și nu știu unde se află locația Local/Makefile
este. Sunt destul de sigur că acest lucru se poate face destul de ușor, dar nu am nicio idee despre asta acum.
De asemenea, am verificat directorul de configurare Exim și am găsit următoarea bucată de cod relevantă în 30_exim4-config_check_rcpt
fişier.
Acest lucru spune clar, Exim va verifica înregistrarea SPF a expeditorului după comanda RCPT dacă verificarea SPF este activată și spf-tools-perl
este instalat. am instalat spf-tools-perl
si tot nu am vazut niciunul SPF primit
antet. Deci, acest lucru ridică două întrebări.
- Cum se activează verificarea SPF pentru a activa execuția acestui cod?
- De ce spf-tools-perl, așa cum spune în mod clar documentul, Exim folosește libspf. Atunci de ce două biblioteci?
# Utilizați spfquery pentru a efectua o pereche de verificări SPF.
#
# Acest lucru este destul de costisitor în ceea ce privește căutările DNS (~6 căutări per e-mail). Nu face
# activați dacă aceasta este o problemă. De asemenea, rețineți că, dacă activați acest lucru, trebuie
# instalați „spf-tools-perl” care oferă comanda spfquery.
# Lipsa spf-tools-perl va declanșa „Eroarea neașteptată în
# Avertisment de verificare SPF.
.ifdef CHECK_RCPT_SPF
nega
mesaj = [SPF] $sender_host_address nu are permisiunea de a trimite e-mail de la \
${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}.
log_message = verificarea SPF a eșuat.
!acl = acl_local_deny_exceptions
condiție = ${run{/usr/bin/spfquery.mail-spf-perl --ip \
${quote:$sender_host_address} --identitate \
${if def:domeniu_adresa_expeditorului \
{--scope mfrom --identity ${quote:$sender_address}}\
{--scope helo --identity ${quote:$sender_helo_name}}}}\
{nu}{${if eq {$runrc}{1}{da}{nu}}}}
amâna
mesaj = Eroare DNS temporară la verificarea înregistrării SPF. Încercați mai târziu.
!acl = acl_local_deny_exceptions
condiție = ${dacă eq {$runrc}{5}{da}{nu}}
a avertiza
condiție = ${dacă <={$runrc}{6}{da}{nu}}
add_header = SPF primit: ${if eq {$runrc}{0}{pass}\
{${if eq {$runrc}{2}{softfail}\
{${dacă eq {$runrc}{3}{neutru}\
{${if eq {$runrc}{4}{permerror}\
{${if eq {$runrc}{6}{none}{eroare}}}}}}}}\
} client-ip=$adresa_gazdă_emițătorului; \
${if def:domeniu_adresa_expeditorului \
{envelope-from=${sender_address}; }{}}\
helo=$sender_helo_name
a avertiza
log_message = Eroare neașteptată la verificarea SPF.
condiție = ${dacă >{$runrc}{6}{da}{nu}}
.endif```