SPF kasutamine Postfixiga
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
- Postfix
- http://www.postfix.org/SMTPD_POLICY_README.html
- Spam
- http://en.wikipedia.org/wiki/Sender_Policy_Framework
- http://en.wikipedia.org/wiki/Sender_Rewriting_Scheme
- http://www.rfc-editor.org/rfc/rfc4408.txt
- http://homepage.ntlworld.com./jonathan.deboynepollard/Proposals/IM2000/
- http://www.openspf.org/SRS