A kéretlen reklámlevél terjesztők egyik roppant bosszantó szokása, hogy mások e-mail címét felhasználva terjesztik küldeményeiket szerte az Interneten. A postafiók valódi tulajdonosa pedig értetlenül szemléli a neki visszapattanó értesítéseket, amely szerint a címzett ismeretlen, vagy levelének kézbesítése el lett utasítva, mivel kéretlen üzenetet tartalmazott. Levelező szerver üzemeltetőként az egyik alapvető feladatunk az, hogy megpróbáljuk az ilyen e-mail cím visszaéléseket kiküszöbölni.
Ennek egyik lehetséges megoldása az úgynevezett SPF - Sender Policy Framework - alkalmazása. Az SPF alkalmazásával a DNS zóna tulajdonosa meghatározhatja, hogy mely levelező szerverek jogosultak a kérdéses tartomány nevében leveleket küldeni. Az alábbi példában egy tartomány DNS bejegyzése látható, az SPF rekorddal együtt:
$TTL 43200 @ IN SOA ns1.pelda.hu. hostmaster.pelda.hu. ( 2014111401 ; Serial 3600 ; Refresh 3600 ; Retry 1209600 ; Expire 43200) ; Minimum TTL IN NS ns1.pelda.hu. IN NS ns2.pelda.hu. IN MX 10 mail.pelda.hu. IN A 195.56.45.39 IN TXT "v=spf1 ip4:195.56.45.39 a -all" ns1 A 195.56.45.39 ns2 A 195.56.45.39 www A 195.56.45.39 server01 A 195.56.45.39 mail A 195.56.45.39
Az SPF bejegyzés valójában egy TXT rekord a DNS-ben, amely azt állítja, hogy a pelda.hu tartomány e-mail fiókjai nevében kizárólag a 195.56.45.39 IP címmel rendelkező levelezőszerver jogosult e-mailt küldeni. A paraméterek jelentése a következő:
- "v=spf1" - az SPF verziószáma
- "ip4:195.56.45.39" - ha a küldő számítógép ezzel az IP címmel (itt megadható IP tartomány is) rendelkezik, akkor egyezés áll fenn
- "a" - ha a domain név tartalmaz egy olyan "A" rekordot, amely feloldható a küldő IP címére, akkor szintén egyezés áll fenn
- "-all" - ha az előző, úgynevezett mechanizmusok nem találtak egyezést, a beérkező e-mail el lesz dobva, vagyis nem kerül kézbesítésre
Ha a fogadó levelezőszerver leellenőrzi a DNS-ben található SPF rekordot, akkor könnyedén megállapíthatja, hogy a levelet küldő számítógép jogosult-e e-mailt küldeni a tartomány nevében. Ha igen, megpróbálja azt kézbesíteni, ha viszont nem, akkor eldobja a levelet, mivel bizonyos, hogy kéretlen levélről van szó.
Látható tehát, hogy a DNS-ben található TXT rekord szükséges, de nem elégséges feltétel az SPF alkalmazásához. A levelezőszervereket is be kell állítani, hogy használják a DNS-ben található SPF rekordokat. Az alábbiakban a Postfix levelezőt állítjuk be egy Debian Wheezy-t futtató szerveren az SPF rekordok ellenőrzésére.
Telepítsük az alábbi csomagot:
sudo apt-get install postfix-policyd-spf-python
A /etc/postfix/main.cf fájlba illesszük be az alábbi sort:
policy-spf_time_limit = 3600s
Szintén a /etc/postfix/main.cf fájlba illesszünk be egy bejegyzést (lásd a 11. sort), az smtpd_recipient_restrictions részbe:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_invalid_hostname, check_policy_service unix:private/policy-spf, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, permit
A /etc/postfix/master.cf fájlba pedig illesszük be az alábbi két sort:
policy-spf unix - n n - - spawn user=nobody argv=/usr/bin/policyd-spf
Indítsuk újra a Postfix levelezőszervert:
service postfix restart
És ezzel készen is vagyunk. Célszerű minden, általunk felügyelt DNS tartományba felvenni SPF rekordokat, illetve levelezőszervereinket ellátni SPF ellenőrzési képességekkel. Itt az idő, hogy mi keserítsük meg a spammerek életét.
Felhasznált irodalom: