SPF kasutamine Postfixiga

Allikas: Kuutõrvaja
Redaktsioon seisuga 11. oktoober 2019, kell 16:56 kasutajalt Aus (arutelu | kaastöö) (Sissejuhatus)

Sissejuhatus

SPF http://www.openspf.org/ ...

SPF kontroll käib ümbriku saatja (envelope from) pihta (ehk siis kirja body sees olev From).

SPF on Sender Policy Framework, mis peaks koostöös DKIM ja DMARCiga tänapäevaste meetoditega võitlema spämmi saatmise vastu.

SPF töötab kirja VASTUVÕTVA postiserveris ja kontrollib saatja domeeni ja kirja saatnud e-posti serveri vastavust.

SPF on TXT nimekirje nimeserveris ja koosneb:

"v=spf1 a mx -all"

TXT kirje komponendid

  • v= - versioon, hetkel ainuke valiidne spf1
  • [a mx ... jne] - määrab ära, kes võib kirja saata
  • -all - vt piirangud

kirjasaatja võimalused

  • a - lubab kirjasaatmise domeeni A kirjelt (dünaamiline, st muutes A kirjet kehtib SPF reegel edasi)
  • mx - lubab kirjasaatmise domeeni MX kirjelt (dünaamiline, st muutes MX kirjet kehtib SPF reegel edasi)
  • include:_spf.protection.uusdomeen.ee - includeb _spf.protection.uusdomeen.ee kirje sinu kirje sisse (samuti dünaamiline, kuna selle kirje muutumisel muutub ka sinu kirje)
  • 193.40.0.2/32 - võid kasutada IPd ja/või vahemikku kirjasaatmise lubamisel

Piirangud

  • -all - range "fail" - keela kõik ülejäänud
  • ~all - pehmem "softfail" - hoiata kirjasaajat ja suhtu ettevaatlikkusega
  •  ?all - veelpehmem "neutral" - neutraalne olek, saaja ise otsustab
  • +all - vägapehme "pass" - SPF kirje küll on, aga lase kõik teised ka läbi

Tarkvara paigaldamine

SPF tarkvara paigaldamiseks sobib öelda

# apt-get install postfix-policyd-spf-python

Nimesüsteemi ettevalmistamine

spf.py skriptiga saab testida SPF DNS TXT kirjet, nt selliselt

  • küsida domeeni SPF andmeid
$ python /usr/share/pyshared/spf.py loomaaed.tartu.ee
v=spf1 ip4:192.168.10.0/24 mx a:mail.loomaaed.tartu.ee ~all
  • Testida ettenäidatud SPF andmetele vastavalt tulemust
$ python /usr/share/pyshared/spf.py "v=spf1 +mx +ip4:10.0.0.2 -all" 10.0.0.1 mart@loomaaed.tartu.ee a
('fail', 550, 'SPF fail - not authorized') -all

null SPF kirjed

www.loomaaed.tartu.ee.   IN  TXT  "v=spf1 -all"

SPF seadistamine kirju vastuvõtva Postfixi juures

Kirju vastuvõtva Postfixi juures juhib SPF tööd seadistusfail /etc/postfix-policyd-spf-python/policyd-spf.conf, mille sisu on vaikimisi selline ja võiks üldiselt sobida kasutamiseks

# cat /etc/postfix-policyd-spf-python/policyd-spf.conf
debugLevel = 1
defaultSeedOnly = 1

HELO_reject = SPF_Not_Pass
Mail_From_reject = Fail

PermError_reject = False
TempError_Defer = False 

skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128

kus

  • debugLevel - määrab mail.log faili logi kirjutamise määra
  • defaultSeedOnly - väärtus 0 kasutamisel posti liiklust SPF ei muuda, kuid kirjadele lisatakse vastavad päised
  • HELO_reject -
  • Mail_From_reject -
  • PermError_reject - kontrollib, mida teha, kui vasvata SPF TXT nimekirje lahendamisel saadakse vastuseks katkine kirje, nt kirjes esineb süntaksiviga; False puhul käsitletakse sellist olukorda samaväärselt kirje puudumisega
action=prepend Received-SPF: Permerror (SPF Permanent Error: Invalid IP4 address: ip4:1.2.3.4.5)
  • TempErrorDefer - kontrollib, mida teha kui, kui vasvata SPF TXT nimekirje lahendamine ei õnnestu, nt vastavalt nimeserverilt ei saada vastust; False puhul käsitletakse sellist olukorda samaväärselt kirje puudumisega
action=defer_if_permit Message deferred due to: SPF Temporary Error: DNS no working nameservers found.

Kasulikud lisamaterjalid

  • man policyd-spf.conf

SPF testimine

Öelda

$ python /usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf < /tmp/sisend
action=prepend Received-SPF: None (no SPF record) identity=mailfrom; \
  client-ip=192.168.0.1; helo=mail.loomaaed.tartu.ee; envelope-from=mart@loomaaed.tartu.ee; receiver=priit@eesti.ee

kus

$ cat /tmp/sisend
request=smtpd_access_policy
protocol_state=RCPT
protocol_name=SMTP
helo_name=mail.loomaaed.tartu.ee
sender=mart@loomaaed.tartu.ee
recipient=priit@eesti.ee
client_address=192.168.0.1
TÜHI RIDA JA REA LÕPUS REAVAHETUS

Postfixi seadmistamine

TODO

Süsteemi kasutamine

TODO

SRS

TODO

Märkused

  • TODO

Kasulikud lisamaterjalid