Jak skonfigurować SPF dla wielu domen na serwerze? (zezwalając również na Gmaila jako nadawcę)

9

SPF (Sender Policy Framework) wydaje się dobrym sposobem na zwalczanie spamerów / fałszowania.

Jednak pomimo kilkukrotnego przeczytania wyjaśnień nie do końca rozumiem, jak poprawnie to skonfigurować.


Powiedzmy, że mam serwer na a.x.comktórym gospodarze www.x.comi b.x.coma c.x.comi tak dalej.

Mam również a.co.uk b.net c.infoi tak dalej, każdy z nich z asortymentem subdomen, wszystkie hostowane nax.com

W przypadku wszystkich tych domen i subdomen chcę zezwolić na wysyłanie poczty a.x.com

Chciałbym też, aby wszystkie zezwoliły na pocztę wysyłaną z Gmaila dla wszystkich tych domen.

Jak skonfigurować to za pomocą SPF?

Czy mogę ustawić jeden rekord SPF dla x.com(lub a.x.com), a następnie dla wszystkiego innego mieć po prostu prosty wskaźnik włączania / wskaźnika do x.comrekordu, czy też trzeba to zrobić inaczej?

Czy ktoś może podać rekordy SPF dla powyższego przykładu?


Uwaga: na drugą część mojego pytania udzielono odpowiedzi (użyj „ v=spf1 include:x.com -all”, aby dołączyć / wskaż x.comrekord), ale kluczowa część tego, co ustawić, x.compozostaje bez odpowiedzi ...

Peter Boughton
źródło
W rzeczywistości okazało się to beznadziejnie nieskutecznym sposobem na ograniczenie spamu. W rzeczywistości, prawdopodobnie tak naprawdę ma to na celu jedynie rozwiązanie problemu fałszowania adresów nadawców.
Christopher Edwards,
2
„tak naprawdę ma to na celu jedynie rozwiązanie problemu fałszowania adresów nadawców” - właśnie po to, aby powstrzymać spamerów przed wysyłaniem poczty pochodzącej z domen innych osób.
Peter Boughton

Odpowiedzi:

7

Nie można uniknąć konieczności zmiany plików stref dla domen innych niż x.com, ale można zaoszczędzić sobie wiele kłopotów, definiując wspólne zasady hostowane w jednej domenie i używając redirectsłowa kluczowego SPF w innych domenach. Przykład:

  • W pliku strefy dla x.comdomeny:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 obejmują: _spf.google.com a: axcom -all"

_spf.google.comjest rekordem zawierającym rekord SPF Gmaila. Nie jestem pewien, czy jest to udokumentowane. Teoretycznie powinieneś, include:gmail.comale to jest przekierowanie do, _spf.google.coma dla qmaila była co najmniej jedna powszechnie używana łatka SPF, która nie postępowała zgodnie z nią (została naprawiona w sierpniu 2008 roku, ale nadal może zostać wdrożona). Dwie zasady są oczywiście przykładami - posiadanie więcej niż jednego z różnymi poziomami rygorystyczności jest niezwykle przydatne podczas debugowania, ponieważ wystarczy zmienić krótką nazwę w domenie docelowej zamiast podatnego na błędy kopiowania.

  • W plikach strefy dla innych domen:
@ IN TXT „v = spf1 redirect = _policy1.x.com”

lub

@ IN TXT „v = spf1 redirect = _policy2.x.com”

itp. Używam redirect, nie include, aby sprawić, że kontrola SPF całkowicie zastąpi aktualnie oceniany rekord na ten, do którego przekierowuję. includenie robi tego - na przykład znak „ -allna końcu” includenie powoduje zatrzymania oceny ( includejest to duży błąd). Należy unikać używania, includegdy chcemy „aliasować” rekord SPF z innej domeny, ponieważ jest on dość kruchy - jeśli przypadkowo zapomnisz końcowy -all, możesz sprawić, że cały SPF w tej domenie będzie nieskuteczny.

Edycja: pamiętaj jednak, że musisz być czujny, jeśli chcesz zezwolić serwerom Gmaila na wysyłanie. Chaptcha Gmaila została złamana, co oznacza, że ​​można zautomatyzować rejestrację konta, co oznacza, że ​​Gmail może (pośrednio) być używany jako otwarty przekaźnik (dostaję dziesiątki próśb o rejestrację spambotu na forum mojej firmy, wszystkie za pomocą adresy e-mail gmail.com - a te adresy są aktywne, pozwoliłem przejść kilku osobom w celu sprawdzenia). Ponadto każdy, kto ma konto Gmail, może pominąć sprawdzanie SPF, jeśli zna części uwsername adresów e-mail w twoich domenach .

Mihai Limbăşan
źródło
Dzięki, to jest pomocna odpowiedź. Gdy ostatnio sprawdzałem, Gmail wymaga sprawdzenia poprawności wiadomości e-mail, aby można było wysyłać wiadomości e-mail z innych adresów - więc kiedy skrzynka odbiorcza dla tego adresu jest bezpieczna, wszystko jest w porządku? Jak ważne są / nie mają również linii „www” jak w odpowiedzi bortzmeyera?
Peter Boughton,
1
To prawda, ale gdy w fundamencie pojawi się pęknięcie, jestem pewien, że ktoś znajdzie sposób, aby przecisnąć się przez pół rzeki :) Nie mówiąc, że nie powinieneś, po prostu zalecam być na czele i okresowo sprawdzać, czy Gmail jest wykorzystywane, tzn. nie rezygnuj z uprawnień Gmaila na czas nieokreślony. Ufam im bardziej niż większym podmiotom internetowym, ale to tylko trochę zaufania w porównaniu z brakiem zaufania.
Mihai Limbăşan
Nie mam pojęcia, dlaczego bortzmeyer zawarł wpisy na stronie www. Są całkowicie bezużyteczne, chyba że faktycznie wysyłasz pocztę z @ www.x.com, która (oprócz tego, że nie jest często używana) wygląda dziwnie dziwnie i wprowadza zamieszanie u osób mniej doświadczonych technicznie.
Mihai Limbăşan,
2
Ponadto NIE używałbym typów rekordów SPF. Polecam trzymać się TXT. Typ rekordu SPF jest obsługiwany tylko przez BIND 9.4 i wyższe, zgodnie z RFC musisz również utrzymywać repliki rekordów TXT, tzn. Musisz kopiować pliki (złe) i musisz je synchronizować (twarde). Zysk nie istnieje, ponieważ TXT będzie głównym mechanizmem dostarczania SPF w dającej się przewidzieć przyszłości, quoth openspf.org.
Mihai Limbăşan,
1
@Mihai Limbasan: doskonała odpowiedź, dziękuję za udostępnienie. Jeśli uważasz, że konieczne jest zaktualizowanie odpowiedzi, Google wydaje się preferować v=spf1 include:_spf.google.com ~allzamiast -all, jeśli dobrze zrozumiałem, ref. google.com/support/a/bin/answer.py?answer=178723
Marco Demaio
4

Tak, możesz dołączyć konfigurację z jednej ze swoich domen do rekordów SPF dla wszystkich pozostałych domen. Ustawienie rekordu SPF innych domen na następujące powinno załatwić sprawę:

v=spf1 include:x.com -all
womble
źródło
Czy to „po prostu zadziała”, czy wymaga subdomeny _spf lub podobnej?
Peter Boughton,
Jestem prawie pewien, że jeśli masz początkowo zdefiniowane rekordy SPF bezpośrednio na x.com, to dołączenie dla innych domen może również wskazywać bezpośrednio na x.com. Jeśli zdefiniujesz swój rekord SPF na trasie _spf.x.com, to tak, musisz nieco zmienić dołączenie, aby wskazywało również na tę nazwę FQDN.
womble
2

Czy próbowałeś użyć narzędzia internetowego na http://www.openspf.org/ ? Może ci to ułatwić poradzenie sobie z tym ...

Po prostu wpisz swoją domenę w prawym górnym polu i kliknij przycisk Idź. Stamtąd powinieneś być w stanie szybko wszystko skonfigurować.

Avery Payne
źródło
1
Próbowałem kilka razy z tym narzędziem, ale wyjaśnienia nie są wystarczająco jasne.
Peter Boughton
2

Standard RFC 4408 , zawiera kilka przykładów, które są bardzo zbliżone do tego, co chcesz. Oto fragment pliku strefy x.com:

@ IN TXT "v = spf1 a: axcom -all"
      W SPF „v = spf1 a: axcom -all”

www IN TXT "v = spf1 a: axcom -all"
      W SPF „v = spf1 a: axcom -all”

Uwagi:

  • Nie dodałem serwerów poczty Gmail, ponieważ ich nie znam, zapytaj ludzi Gmaila
  • „a” jest „adres” (to nie rekord DNS A, zawiera on IPv6)
  • Dodałem rekordy SPF, zgodnie z RFC, chociaż prawie wszystkie implementacje używają tylko rekordu TXT
bortzmeyer
źródło
1

Tak, musisz dodać konkretny rekord SPF do każdej domeny osobno.

Powodem tego jest to, że jedynym (użytecznym) rekordem typu aliasingu w DNS jest CNAMErekord. Jednak CNAMErekord powoduje aliasing dla WSZYSTKICH typów RR w zestawie RR - nie można powiedzieć „ CNAMErekord SPF, ale nie MXrekordy

Alnitak
źródło
Rozumiem, że będę musiał dodać do rekordu SPF dla każdej domeny, ale miałem nadzieję, że po prostu przechowywać prosty wskaźnik do domeny głównej, gdzie wszystkie bardziej skomplikowane polecenia mogą następnie żywo. Womble sugeruje, że mogę do tego użyć parametru include: {domain}, ale nadal nie jestem pewien, czy to po prostu zawiera / wskazuje rekordy SPF dla innej domeny, czy też muszę hostować subdomenę _spf.x.com?
Peter Boughton,
tak, patrz odpowiedź womble
Alnitak