Як налаштувати SPF для кількох доменів на сервері? (також дозволяє gmail як відправник)


9

SPF (Sender Policy Framework) здається хорошим способом боротьби зі спамерами та підробкою.

Однак, незважаючи на те, що я читав пояснення кілька разів, я не зовсім розумію, як правильно його налаштувати.


Скажімо , у мене є свій сервер , на a.x.comякому господарі www.x.comі b.x.comта c.x.comі так далі.

У мене також є a.co.uk b.net c.infoі так далі, кожен з них має асортимент піддоменів, всі розміщені наx.com

Для всіх цих доменів і субдоменів я хочу дозволити надсилання пошти звідти a.x.com

Я також хотів би, щоб усі вони дозволяли надсилати пошту з Gmail для всіх цих доменів.

Як встановити це за допомогою SPF?

Чи можу я встановити один запис SPF для x.com(або a.x.com), а потім для всього іншого просто мати просто включення / покажчик на x.comзапис, або це потрібно зробити по-іншому?

Чи може хтось надати деякі записи SPF для наведеного вище прикладу?


Примітка . Друга частина мого запитання отримала відповідь (використовуйте " v=spf1 include:x.com -all" для включення / вказування на x.comзапис запису), але ключова частина того, що потрібно встановити, x.comзалишається без відповіді ...


Насправді це доведений безнадійно неефективний спосіб зменшення спаму. Насправді, мабуть, це лише справді має на меті вирішити підробку адреси відправника.
Крістофер Едвардс

2
"це справді призначене лише для того, щоб вирішувати підробку адреси відправника" - саме для того, щоб не дозволяти спамерам надсилати пошту, яка з’являється з інших доменів.
Пітер Бауфтон

Відповіді:


7

Ви не можете уникнути необхідності змінювати файли зон для доменів, крім x.com, але ви можете заощадити собі багато проблем, визначивши загальну політику, розміщену на одному домені, та використовуючи redirectключове слово SPF для інших доменів. Приклад:

  • У файлі зони для x.comдомену:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 включають: _spf.google.com a: axcom -all"

_spf.google.comце запис, що містить запис SPF Gmail. Не впевнений, чи це документально. Теоретично слід, include:gmail.comале це переспрямування, _spf.google.comі був принаймні один широко використовуваний патч SPF для qmail, який не виконував його належним чином (виправлений у серпні 2008 року, але все ще може бути розгорнутий.) Дві політики - це, звичайно, приклади - наявність декількох з різними рівнями суворості надзвичайно корисна при налагодженні, оскільки вам потрібно лише змінити коротке ім’я в цільовому домені замість копіювальної помилки, схильної до помилок.

  • У зональних файлах для інших доменів:
@ IN TXT "v = spf1 redirect = _policy1.x.com"

або

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

і т. д. Я використовую redirect, не для того include, щоб перевірити SPF повністю замінити поточно оцінений запис на той, на який я перенаправляюсь. includeне робить цього - наприклад, -allнаприкінці includeанкети не спричиняє зупинку оцінки ( includeце велика помилка.) Вам слід уникати використання, includeколи ви хочете "псевдонімати" запис SPF з іншого домену, оскільки він досить крихкий - якщо ви випадково забудете трейлінг - всі ви можете зробити всю свою SPF на цьому домені неефективною.

Редагувати: Зауважте, що вам потрібно бути на варті, якщо ви хочете дозволити сервери Gmail як відправників. Чапча Gmail була зламана, це означає, що можливо автоматизувати реєстрацію облікових записів, а це означає, що Gmail можна (побічно) використовувати як відкрите реле (я отримую десятки запитів на реєстрацію спама на тиждень для мого дискусійного форуму, все використовуючи Адреси електронної пошти gmail.com - і ці адреси в реальному часі, я дозволив переглядати декілька для цілей перевірки.) Крім того, кожен, хто має обліковий запис Gmail, може обійти перевірку SPF, якщо знайомий з частинами імені власного імені електронних адрес у ваших доменах. .


Дякую, це корисна відповідь. Востаннє я перевіряв, Gmail вимагає перевірити електронну пошту, перш ніж ви зможете надсилати електронні листи з інших адрес - тож коли папка "Вхідні" для цієї адреси буде захищена, все буде в порядку? Наскільки важливо / не має також "www" рядків, як у відповіді bortzmeyer?
Пітер Бауфтон

1
Щоправда, але як тільки у тріщині з’являється тріщина, я впевнений, що хтось знайде спосіб проткнути половину річки :) Не кажу, що не варто, я просто рекомендую бути на пальцях ніг і періодично перевіряти, чи Gmail під час експлуатації, тобто не відмовляйтеся від повноважень у Gmail на невизначений термін. Я довіряю їм більше, ніж я довіряю більшості інтернет-організацій, але це лише трохи довіри проти взагалі ніякого довіри.
Mihai Limbăşan

Я поняття не маю, чому bortzmeyer включав записи www. Вони абсолютно марні, якщо ви насправді не надсилаєте пошту від @ www.x.com, яка (крім того, що вона не використовується дуже сильно) виглядає просто дивною і викликає розгубленість у менш технічних кмітливих людей.
Mihai Limbăşan

2
Крім того, я НЕ використовую типи записів SPF. Я рекомендую дотримуватися TXT. Тип запису SPF підтримується лише BIND 9.4 і вище, на RFC ви також повинні підтримувати репліки TXT-записів, тобто ви повинні копіювати речі (неправильно) і підтримувати їх у синхронізації (жорсткий). Коефіцієнт посилення відсутній, оскільки TXT буде основним механізмом доставки SPF в осяжному майбутньому, quoth openspf.org.
Міхай Лімбашан

1
@Mihai Limbasan: відмінна відповідь, дякую за обмін. Якщо ви вважаєте, що потрібно оновити свою відповідь, Google, здається, вважає v=spf1 include:_spf.google.com ~allза краще замість цього -all, припустимо, що я правильно зрозумів, відправте. google.com/support/a/bin/answer.py?answer=178723
Марко Демайо

4

Так, ви можете включити конфігурацію одного з ваших доменів у записи SPF для всіх інших доменів. Встановлення запису SPF інших доменів слід зробити таким чином:

v=spf1 include:x.com -all

Чи це "просто працює", чи для нього потрібен піддомен _spf чи подібне?
Пітер Бауфтон

Я майже впевнений, що якщо у вас спочатку записи SPF визначені безпосередньо на x.com, включення для інших доменів також може вказувати безпосередньо на x.com. Якщо ви визначаєте свій SPF-запис у маршруті _spf.x.com, то так, вам потрібно буде трохи змінити включити, щоб також вказати на цей FQDN.
живіт

2

Ви спробували скористатися веб-інструментом на веб-сайті http://www.openspf.org/ ? Це може полегшити вам справу з цим ...

Просто введіть свій домен у верхньому правому полі та натисніть кнопку "Перейти". Звідти ви повинні мати можливість налагоджувати речі поспіхом.


1
Я кілька разів пробував цей інструмент, але пояснення недостатньо зрозумілі.
Пітер Бауфтон

2

Стандарт, RFC 4408 , містить кілька прикладів, дуже близьких до того, що ви хочете. Ось витяг з зонального файлу x.com:

@ IN TXT "v = spf1 a: axcom -всі"
      В SPF "v = spf1 a: axcom -всі"

www IN TXT "v = spf1 a: axcom-всі"
      В SPF "v = spf1 a: axcom -всі"

Примітки:

  • Я не додав сервери електронної пошти Gmail, тому що я їх не знаю, запитайте людей у ​​Gmail
  • 'a' - це 'address' (це не запис DNS A, він включає IPv6)
  • Я додав SPF-записи на RFC, хоча майже у всіх реалізаціях використовується лише запис TXT

1

Так, вам потрібно додати специфічний запис SPF до кожного домену окремо.

Причиною цього є те, що єдиним (корисним) записом типу псевдоніму в DNS є CNAMEзапис. Однак CNAMEзапис призводить до виникнення псевдоніму для ВСІХ RRtypes у RRset - немає ніякого способу сказати " CNAMESPF-запис, але не MXзаписи "


Я розумію , що я повинен додати в SPF запис для кожного домена, але я сподівався , просто зберігати простий покажчик на основний домен, де все більш складні команди можуть потім жити. Womble пропонує мені використовувати для цього include: {domain}, але мені все одно незрозуміло, чи це просто включає / вказує на записи SPF для іншого домену, чи мені потрібно розмістити піддомен _spf.x.com?
Пітер Бауфтон

так, дивіться відповідь
жінки,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.