SPF - це спеціальне розширення протоколу SMTP. В DNS домена прописується спеціально сформований TXT-запис, за яким сервера можуть перевірити чи лист що вони приймають з довіреного джерела чи ні. В цьому записі власник домена прописує механізм обробки листів відправлених своїм чи іншими доменами.
Найпростіший приклад SPF приводить нам Wikipedia:
example.org. IN TXT "v=spf1 +a +mx -all"
тут ми використовуємо 1 версію SPF (v=spf1) дозволяємо прийом пошти від вузлів які прописані в А-записах DNS (+a) і в MX-записах (+mx) і забороняємо приймати листи від всіх хто не пройшов перевірку (-all).
Модифікатор "+" використовується за замовчуванням, тому його можна і не вказувати, тоді запис виглядатиме так:
example.org. IN TXT "v=spf1 a mx -all"
Опції TXT запису
«v=spf1» — версія SPF (на момент написання статті завжди 1);
«+» — модифікатор "приймати від" (Pass). Цей параметр виставлений за замовчуванням. Якщо немає ніяких інших параметрів то приймається вся пошта від всіх відправників;
«-» — Відхилити (Fail). Забороняє пошту при співпадінні умови;
«~» — «м‘яке відхилення» (SoftFail). Лист приймається з поміткою "СПАМ";
«?» — нейтральне відношення до листа;
«mx» — включає в себе всі адреси серверів з MX-записів домена;
«mx/24» — в список довірених відправників включаються всі IP-адреси, з підмережі /24 MX-сервера домена;
«ip4» — вказує конкретну IPv4-адресу, або блок IPv4-адрес;
«ip6» — вказує конкретну IPv6-адресу, або блок IPv6-адрес;
«a» — включає в себе всі адреси серверів з A-записів домена;
«aaaa» — включає в себе всі адреси серверів з AAAA-записів домена;
«exists» — перевіряє чи домен відправника резолвиться в IP-адресу.
«include» — включає в себе хости, дозволені SPF-записом вказаного домена;
«all» — всі хости.
Увага!
SPF-запис не наслідується на піддомени!!! Кожному домену необхідно мати свій запис;
SPF перевіряється тільки в командах HELO і MAIL FROM.
Опції: redirect и exp
«redirect» — вказує що перевіряти треба SPF-запис домена вказаного в опції а не поточного як за замовчуванням.
«exp» — дозволяє вивести повідомленя про помилку серверу. Повідомлення прописується в іншому TXT-запису який вказується цією опцією. Вказується в кінці SPF запису!
Приклад:
example.org. IN TXT "v=spf1 +a +mx -all exp=spf.example.org"
spf.example.org. IN TXT "You should not be here"
З таким налаштуванням дозволяється прийом пошти від серверів вказаних в A і MX записах домена, а всім іншим віддаватиметься помилка з поясненням "You should not be here".
Ось так просто можна захистити свій домен від небажаних спамерів які хочуть і можуть "підмочити" репутацію вашого домена.
P.S. Рекомендую для всіх піддоменів свого домена створити SPF записи "v=spf1 -all" щоб спамери не змогли ними скористатись.
Гарного адміністрування!
Коментарі