Bagaimana cara mengkonfigurasi SPF untuk banyak domain di server? (juga memungkinkan gmail sebagai pengirim)

9

SPF (Sender Policy Framework) sepertinya cara yang baik untuk memerangi spammer / spoofing.

Namun, meskipun membaca penjelasan beberapa kali, saya tidak cukup mengerti cara mengkonfigurasinya dengan benar.


Katakanlah saya memiliki server saya di a.x.commana host www.x.comdan b.x.comdan c.x.comdan seterusnya.

Saya juga punya a.co.uk b.net c.infodan seterusnya, masing-masing dengan bermacam-macam sub-domain, semuanya diinangix.com

Untuk semua domain dan sub-domain ini, saya ingin mengizinkan surat dikirim a.x.com

Saya juga ingin mereka semua mengizinkan surat yang dikirim dari Gmail untuk semua domain ini.

Bagaimana cara mengatur ini dengan SPF?

Dapatkah saya menetapkan satu catatan SPF untuk x.com(atau a.x.com) dan kemudian untuk semua yang lain hanya memiliki catatan / pointer sederhana untuk x.comcatatan, atau apakah perlu dilakukan secara berbeda?

Adakah yang bisa memberikan beberapa catatan SPF untuk contoh di atas?


Catatan: Bagian kedua dari pertanyaan saya telah dijawab (gunakan " v=spf1 include:x.com -all" untuk memasukkan / menunjuk pada x.comcatatan), tetapi bagian kunci dari apa yang diatur x.comtetap tidak terjawab ...

Peter Boughton
sumber
Sebenarnya itu terbukti cara yang sangat efektif untuk mengurangi spam. Bahkan, bisa dibilang, itu hanya benar-benar dimaksudkan untuk alamat pengirim spoofing pula.
Christopher Edwards
2
"Ini hanya benar-benar dimaksudkan untuk mengatasi spoofing alamat pengirim" - tepatnya, untuk menghentikan pengirim spam mengirim email yang tampaknya berasal dari domain orang lain.
Peter Boughton

Jawaban:

7

Anda tidak dapat menghindari keharusan mengubah file zona untuk domain selain x.com, tetapi Anda dapat menghemat banyak masalah dengan menetapkan kebijakan umum yang dihosting di satu domain dan menggunakan redirectkata kunci SPF di domain lain. Contoh:

  • Di zonefile untuk x.comdomain:
_policy1 DI TXT "v = spf1 a: axcom -all"
_policy2 DI TXT "v = spf1 meliputi: _spf.google.com a: axcom -all"

_spf.google.comadalah catatan yang menyimpan catatan Gmail SPF. Tidak yakin apakah itu didokumentasikan. Secara teoritis Anda harus include:gmail.comtetapi itu adalah pengalihan ke _spf.google.comdan telah ada setidaknya satu tambalan SPF yang banyak digunakan untuk qmail yang tidak mengikutinya dengan benar (diperbaiki pada Agustus 2008 tetapi mungkin masih digunakan.) Kedua kebijakan tersebut adalah contoh, tentu saja - memiliki lebih dari satu dengan berbagai tingkat keketatan sangat berguna saat melakukan debug karena Anda hanya perlu mengubah nama pendek di domain target alih-alih copypasting yang rawan kesalahan.

  • Di zonefiles untuk domain lain:
@ IN TXT "v = spf1 redirect = _policy1.x.com"

atau

@ IN TXT "v = spf1 redirect = _policy2.x.com"

dll. Saya menggunakan redirect, tidak include, menyebabkan pemeriksaan SPF untuk sepenuhnya menggantikan catatan yang saat ini dievaluasi dengan yang saya arahkan ke. includetidak melakukan itu - misalnya, -allpada akhir sebuah includetidak menyebabkan evaluasi berhenti ( includeadalah keliru besar.) Anda harus menghindari menggunakan includeketika Anda ingin "alias" catatan SPF dari domain lain, karena cukup rapuh - jika Anda secara tidak sengaja melupakan trailing -semua Anda mungkin membuat seluruh SPF Anda pada domain itu tidak efektif.

Sunting: Harap dicatat, bahwa Anda harus waspada jika Anda ingin mengizinkan server Gmail sebagai pengirim. Chaptcha Gmail telah di-crack, yang artinya memungkinkan untuk mengotomatiskan pendaftaran akun, yang berarti Gmail dapat (secara tidak langsung) digunakan sebagai relay terbuka (saya mendapatkan puluhan permintaan pendaftaran spambot per minggu untuk forum diskusi perusahaan saya, semuanya menggunakan alamat email gmail.com - dan alamat itu sudah aktif, saya sudah mengizinkan beberapa untuk melewatinya untuk keperluan pemeriksaan.) Selain itu, siapa pun yang memiliki akun Gmail dapat melewati pemeriksaan SPF jika terbiasa dengan bagian nama pengguna dari alamat email di domain Anda .

Mihai Limbăşan
sumber
Terima kasih, ini jawaban yang membantu. Terakhir kali saya memeriksa, Gmail memerlukan validasi email sebelum Anda dapat mengirim email dari alamat lain - jadi begitu kotak masuk untuk alamat itu aman, semuanya baik-baik saja? Seberapa pentingkah / tidak memiliki garis 'www' seperti pada jawaban bortzmeyer?
Peter Boughton
1
Benar, tetapi begitu celah muncul di dalam foudation, saya yakin seseorang akan menemukan cara untuk memeras setengah dari sungai melalui :) Tidak mengatakan Anda tidak boleh, saya hanya merekomendasikan untuk berada di kaki Anda dan secara berkala memeriksa apakah Gmail adalah dieksploitasi, yaitu tolong jangan tinggalkan otoritas ke Gmail tanpa batas. Saya percaya mereka lebih dari saya percaya lebih banyak entitas online, tapi itu hanya kepercayaan kecil versus tidak ada kepercayaan sama sekali.
Mihai Limbăşan
Saya tidak tahu mengapa bortzmeyer memasukkan entri www. Mereka sama sekali tidak berguna kecuali jika Anda benar-benar mengirim email dari @ www.x.com yang (selain tidak banyak digunakan) terlihat sangat aneh dan menimbulkan kebingungan pada orang yang kurang berpengalaman secara teknis.
Mihai Limbăşan
2
Selain itu, saya TIDAK akan menggunakan tipe catatan SPF. Saya sarankan Anda tetap menggunakan TXT. Jenis catatan SPF hanya didukung oleh BIND 9.4 dan lebih tinggi, per RFC Anda juga harus memelihara replika catatan TXT yaitu Anda harus menyalin hal-hal yang buruk (buruk) dan Anda harus mempertahankannya dalam sinkronisasi (keras). Keuntungan tidak ada karena TXT akan menjadi mekanisme pengiriman SPF utama untuk masa mendatang, quoth openspf.org.
Mihai Limbăşan
1
@Mihai Limbasan: jawaban yang bagus, terima kasih sudah berbagi. Jika Anda merasa perlu untuk memperbarui jawaban Anda, Google tampaknya lebih suka v=spf1 include:_spf.google.com ~allmenggantikan -all, seandainya saya mengerti dengan benar, ref. google.com/support/a/bin/answer.py?answer=178723
Marco Demaio
4

Ya, Anda bisa memasukkan konfigurasi dari salah satu domain Anda di catatan SPF untuk semua domain lainnya. Menyetel catatan SPF domain lain sebagai berikut akan melakukan trik:

v=spf1 include:x.com -all
womble
sumber
Apakah ini "hanya berfungsi", atau apakah memerlukan sub-domain _spf, atau serupa?
Peter Boughton
Saya cukup yakin bahwa jika Anda memiliki catatan SPF yang didefinisikan langsung di x.com pada awalnya, penyertaan untuk domain lain bisa langsung menunjuk ke x.com juga. Jika Anda mendefinisikan catatan SPF dalam rute _spf.x.com, maka ya, Anda harus mengubah sedikit menyertakan untuk menunjuk ke FQDN itu juga.
womble
2

Sudahkah Anda mencoba menggunakan alat web di http://www.openspf.org/ ? Mungkin sedikit lebih mudah bagi Anda untuk berurusan dengan ini ...

Cukup masukkan domain Anda di kotak kanan atas dan klik tombol go. Dari sana, Anda harus bisa mengatur semuanya dengan tergesa-gesa.

Avery Payne
sumber
1
Saya sudah mencoba beberapa kali dengan alat itu, tetapi penjelasannya tidak cukup jelas.
Peter Boughton
2

Standar, RFC 4408 , memberikan beberapa contoh yang sangat dekat dari apa yang Anda inginkan. Berikut ini adalah ekstrak dari zonefile x.com:

@ IN TXT "v = spf1 a: axcom -all"
      DALAM SPF "v = spf1 a: axcom -all"

www IN TXT "v = spf1 a: axcom -all"
      DALAM SPF "v = spf1 a: axcom -all"

Catatan:

  • Saya tidak menambahkan server email Gmail karena saya tidak kenal mereka, tanyakan orang-orang Gmail
  • 'a' adalah untuk 'alamat' (ini bukan catatan DNS A, ini termasuk IPv6)
  • Saya menambahkan catatan SPF, per RFC, meskipun hampir semua implementasi hanya menggunakan catatan TXT
bortzmeyer
sumber
1

Ya, Anda perlu menambahkan catatan SPF spesifik ke setiap domain secara terpisah.

Alasan untuk ini adalah bahwa satu-satunya catatan jenis aliasing (berguna) dalam DNS adalah CNAMEcatatan. Namun CNAMEcatatan tersebut menyebabkan alias terjadi untuk SEMUA RRtip dalam RRset - tidak ada cara untuk mengatakan " CNAMEcatatan SPF tetapi tidak MXcatatan "

Alnitak
sumber
Saya memahami bahwa saya harus menambahkan sebuah record SPF untuk setiap domain, tapi aku berharap untuk hanya menyimpan sederhana pointer ke domain utama, di mana semua perintah yang lebih kompleks kemudian dapat hidup. Womble menyarankan saya dapat menggunakan include: {domain} untuk ini, tapi saya masih belum jelas apakah ini hanya termasuk / poin pada catatan SPF untuk domain lain, atau jika saya perlu meng-host subdomain _spf.x.com?
Peter Boughton
ya, lihat jawaban womble
Alnitak