SPF i DKIM pomagają ubijać spam

SPF i DKIM pomagają ubijać spam- właściwie spoofing bo do tego zostały stworzone. Ale można ich używać do różnych celów.

W tym poście zakładam, ze DKIM jest sprawdzany przez serwer poczty. Może to robić SA i wtedy reguły sa odpowiednie gotowe. Używany do tego jest plugin DKIM.

Jeśli domena ma podpis DKIM to wtedy serwer ją sprawdza. Ale co jeśli ktoś się podszywa np wysyła niby z gmaila a nie ma DKIM? Wtedy taki mail przejdzie bez problemu bo skąd system ma wiedzieć, ze tam ma być podpis. Należy pokazać gdzie ma to być, oto reguła która zapobiega takim nadużycią:

header   __ZABOJCASPAMU_FROM_DKIM_SIGNER2 From:addr =~ /\@(hotmail\.com|yahoo\.|gmail\.com|googlemail\.com|facebookmail\.com|wp\.pl|goldenline\.pl|gumtree\.pl|interia\.pl|nasza\-klasa\.pl|praca\.pl|pro\.onet\.pl|yahoo\.pl)/
header    __ZABOJCASPAMU_DKIM_EXISTS_D  DKIM-Signature=~/d=(hotmail\.com|yahoo\.|gmail\.com|googlemail\.com|facebookmail\.com|wp\.pl|goldenline\.pl|gumtree\.pl|interia\.pl|nasza\-klasa\.pl|praca\.pl|pro\.onet\.pl|yahoo\.pl)/m
meta       ZABOJCASPAMU_DKIM_NO_EXISTS  __ZABOJCASPAMU_FROM_DKIM_SIGNER2 && ! __ZABOJCASPAMU_DKIM_EXISTS_D
describe   ZABOJCASPAMU_DKIM_NO_EXISTS  Powinien byc DKIM a nie ma
score      ZABOJCASPAMU_DKIM_NO_EXISTS  1
Małe wyjaśnienie:
From oznacza, że szukać ma w całym polu From
From:addr tylko w adresie tego pola

Oczywiście już zgodnie z tą reguła jeśli mail jest z yahoo.com a podpis ma z gmaila.com to też przejdzie ale nie przesadzajmy:) Inaczej trzeba by pisać regułę dla każdego serwera osobno. Ale nawet taka reguła ma pewna pułapke. Jeśli mamy na stronach formularze to należy  IP strony WWW dodać do whitelisty IP.

Jeśli tego nie zrobimy może odrzucać maile z formularzu. Jeśli adresem nadawcy jest podany przez usera to maile z gmail nie będą miały DKIM i będą odrzucane. Należy IPki swoich stron www z formularzami dodać do dozwolonych serwerów

Ale ta reguła nie jest często aktywowana przez maile. Ale co ciekawe niektórzy wysyłają swoje CV automatami z adresami np wp.pl nie z portalu wp.pl. Gratulacje:)

Oczywiście można ubijać maile które mają nieprawidłowy podpis DKIM. Nie jest to trudne wystarczy sprawdzać czy w mailach są odpowiednie pola.

header ZABOJCASPAMU_DKIM_FAIL     Authentication-Results=~/dkim=fail/
describe ZABOJCASPAMU_DKIM_FAIL Nieprawidlowy DKIM
score ZABOJCASPAMU_DKIM_FAIL 10

Problemem z DKIMem jest taki, że aby wiedzieć czy domena ma ten system trzeba dostać maila. Selector może być dowolny więc trudno w ciemno znależć czy domena podpisuje mila.

 A co ze SPFem?

Czy domena ma SPF czy nie jest bardzo łatwo sprawdzić. Wystarczy sprawdzic rekord txt w DNSie. Można to zrobić sprawdzić na stronie lub komendami

host -t txt przykaldowadomena.txt

albo komendą dig

Należy pamiętać o ograniczeniu SPFu (nie pozwala dokonywać forwardingu maili między domenami). Ale są domeny które nie forwarduja maili. Np DHL, poczta-polska itd. Wystarczy stworzyć regułę która będzie sprawdzać czy niektórych domenach jest spf. Oto reguła:

header  __ZABOJCASPAMU_SPF_REQ_1  From:addr=~/(dhl\.com|dhl\.pl|poczta\-polska\.pl|inpost\.pl|paczkomaty\.pl)/
meta      ZABOJCASPAMU_SPF_REQ    __ZABOJCASPAMU_SPF_REQ_1 && ! SPF_PASS
describe  ZABOJCASPAMU_SPF_REQ Wymagane SPF dla domen
score     ZABOJCASPAMU_SPF_REQ  5

Oczywiście można dopisywać następne domeny.

Czy taka reguła chronii całkowicie przed spoofingiem? Oczywiście nie. Sprawdza tylko pola adresu z From. Fake z DHLu mial inne dowolne adresy a w polu From byl tylko tekst DHL. Co zrobić jak żyć jak się bronić? O tym niedługo….

 

 

 

4 thoughts on “SPF i DKIM pomagają ubijać spam

  1. Jakiś czas temu otrzymałem prawidłową wiadomość z adresu @pro.onet.pl nie zawierającą DKIM, czy na pewno go używają ?

  2. Zastosowałem ostatnią regułę i ogólnie nie działa 🙂
    W czym rzecz: mam na serwerze Sender Rewriting Scheme (SRS), zakładam na nim domenę np. inpost.pl. I wysyłam maila na serwer na którym jest ta reguła. Pole from mam test@inpost.pl, pole Return-Path: SRS0+b63C=NS=inpost.pl=test@mojadomena.pl.
    I tak: serwer z powyższą regułą przyjmuje maila bo mam SPF_PASS [ xx.xx.xx.xx is authorized to use ‚SRS0+b63C=NS=inpost.pl=test@mojadomena.pl’ in ‚mfrom’ identity (mechanism ‚ip4:xx.xx.xx.xx’ matched) ].
    Nie wiem czy to normalne że spamassassin czyta Return-Path zamiast From, czy może błąd w konfiguracji?

    1. W sumie faktycznie moze nie zadziałać:) Piszać widziałem o tym, ze hurtowe sprawdzanie moze dac taki rezultat w pewnych warunkach.
      należałoby sprawdzać pole From i również SPF czy jest sprawdzane dla tych domen. czyli musi byc pole From z inpost i spf=pass dla domeny inpost.
      Tak jak w DKIM wyżej.
      W tym tygodniu uścisle to w nowym wpisie, dzieki za info:)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *