• Главная
  • Карта сайта
Не найдено

Як налаштувати поштовий сервер для обходу спам-фільтрів: керівництво по DNS, SPF, DKIM

  1. Зміст статті Установка свого поштового сервера, як правило, не викликає особливих труднощів. У Мережі...
  2. Як не потрапити в спам
  3. правильна DNS
  4. Продовження доступно тільки учасникам
  5. Варіант 2. Відкрий один матеріал

Зміст статті

Установка свого поштового сервера, як правило, не викликає особливих труднощів. У Мережі є велика кількість готових інструкцій. Буквально одна команда, і 25-й порт вже готовий до роботи. Весело стає, коли відправлені листи починають повертатися, а одержувачі скаржитися, що повідомлення не доходять. Тут уже хочеш не хочеш, але доведеться шукати причини і виникають в технології.

Хто відправляє листи

Сьогодні можливість прив'язати свій домен до сервісу пропонують багато веб-служби. Особливо популярне розміщення пошти на Gmail або Яндексі. Всі повідомлення будуть йти через наданий ними SMTP-сервер, перевірений постачальник послуг сам сформує всі необхідні заголовки і підписи, які дозволять пройти через будь-який спам-фільтр. Але такий варіант не завжди можливий. Наприклад, організація має велику кількість користувачів, потрібні особливі настройки для пошти, недоступні в хмарних сервісах. Або використовується свій сервер з порталом, CMS або інтернет-магазин, з яких потрібно відправляти повідомлення.

За замовчуванням всі PHP-додатки використовують для відправки пошти функцію mail (), яка, в свою чергу, відправляє їх через локальний SMTP-сервер, описаний в php.ini.

[Mail function] sendmail_path = / usr / sbin / sendmail -t -i

Або в віртуальному хості:

php_admin_value sendmail_path "/ usr / sbin / sendmail -t -i -f [email protected]"

І хоча там в 100% випадків написаний sendmail, насправді це може бути симлінк, а пошту відсилає Postfix або Exim. Щоб відправити пошту з програми, можна вибрати один з трьох варіантів:

  • Сам движок іноді дозволяє вказати зовнішній SMTP-сервер (в дефолтних настройках або через плагін, в WordPress це WP Mail SMTP або Easy WP SMTP). Досить просто вказати дані облікового запису, і всі проблеми вирішені.
  • Використання програми-прокладки, яка емулює роботу локального SMTP-сервера і відправляє повідомлення через поштовий акаунт на сторонньому сервері. Тут дуже популярна SSMTP.
  • Використання свого поштового сервера. Доведеться, звичайно, його налаштувати, зате більше можливостей конфігурації.

Нас цікавить останній варіант. Розберемо, як пробитися через антиспам-технології і гарантовано доставити одержувачу повідомлення. Самі фільтрувати спам не будемо. Це тема іншої статті. В якості піддослідного SMTP-сервера виберемо Postfix і Exim, вони популярні на хостингах, прості і зрозумілі в настройках, хоча основні питання будуть стосуватися всіх SMTP-серверів.

Як не потрапити в спам

Боротьба зі спамом - це головний біль всіх адміністраторів пошти. Причому останнім часом актуальна саме зворотна сторона медалі: спам-фільтри буквально зверствуют. Тому спам в приходить поштою практично відсутня, але ось нормальні повідомлення постійно кудись пропадають, клієнти і керівництво нервують, і доводиться додатково переконуватися, що повідомлення дійшло до адресата. І після установки SMTP-сервера з великою ймовірністю доведеться ще повозитися, щоб повідомлення взагалі хоч кудись доходили. Зокрема, щоб оцінити настройки, слід подивитися, доставляються чи листи в ящики основних поштових систем Gmail, Яндекс, Mail.Ru. Зазвичай на цьому етапі з'являються перші складності, і доводиться вирішувати всі проблеми персонально.

Поштові сервіси використовують багаторівневу систему фільтрації спаму, причому настільки серйозну і засекречену, що про принципи не знає навіть їх власна підтримка. І у кожного сервісу свої пріоритети. Хоча зазвичай якась підказка про причини недоставки міститься в листі сервісу. Також в аналізі причин допомагає сервіс mail-tester.com , Досить відправити лист на вказаний там адресу і потім після аналізу отримати результат і перелік проблем. Деякі з них можна перевірити і вирішити, ще не налаштовуючи SMTP-сервер.

Mail-tester.com - гарна підмога в пошуку проблем

Боротьба зі спамом породила безліч технологій. Найстаріша з них - blacklist, в який заносяться всі IP і домени, які займалися розсилкою спаму, сюди ж можуть потрапити відкриті релеї, проксі і Dialup-адреси, які використовуються для віддаленого доступу (тобто вони теоретично не повинні розсилати пошту). Організовано такі blacklist по-різному. Популярністю користуються DNSBL (DNS blacklist) - чорні списки в форматі DNS, які легко опитувати. На сьогодні є безліч баз, не всі вони популярні і використовуються. Проблема в тому, що списку для конкретного поштового сервісу немає, скільки і які вони опитують - це таємниця.

Доменні імена, як і IP-адреси, сьогодні можуть бути «беушними». Є ймовірність, що до тебе ними користувався сервіс розсилки повідомлень або хост, розміщений на ньому, був зламаний і розсилав спам. Відповідно, вони цілком можуть потрапити в якийсь із DNSBL і бути проблемою. Mail.Ru відкидав листи з одного IP саме через те, що той перебував в одному з таких напівзабутих списків, потрапивши туди в 2010 році. Причому Mail.Ru навіть не утруднявся перевіряти правильність SPF і DKIM. Справа зрушила, лише коли IP прибрали з блек-листа.

Перевірити IP або домен можна самостійно, відіславши DNS-запит до вибраного DNSBL-серверу за допомогою утиліти dig:

$ Host -tA xakep.ru.ex.dnsbl.org Host xakep.ru.ex.dnsbl.org not found: 3 (NXDOMAIN)

Але зручніше користуватися онлайн-сервісами, перевіряючими відразу в декількох базах. IP можна перевірити в dnsbl.info (59 баз) або whatismyipaddress.com (72 бази), домен, крім того, - в mxtoolbox.com (107 баз), spamhaus.org або multirbl.valli.org . Якщо раптом домен або IP виявиться в списку, краще відразу написати в підтримку і прибрати свою адресу.

Проганяємо домен по DNSBL-базам

правильна DNS

При отриманні повідомлення віддалений SMTP-сервер аналізує насамперед його заголовок. Поштова програма відправляє тільки From, To, Date, Subject і X-Mailer. Вони в загальному зрозумілі і просто вказують, від кого і куди слати. Решта заголовок формується як SMTP-сервером, так і додатком, його відправляють. Це, до речі, теж потрібно враховувати, тому що листи, відправлені через Telnet, можуть йти, а з Roundcube - немає, просто тому, що у них різний заголовок. Roundcube, наприклад, підставляє свій HELO / EHLO на підставі змінної server_name або localhost, якщо вона не визначена. Тому іноді потрібно просто поставити його явно:

$ Rcmail_config [ 'smtp_helo_host'] = 'example.org';

Те ж стосується і самописних PHP-скриптів.

При передачі лист буде проходити мінімум через два SMTP-сервера, кожен з яких теж додає щось від себе в заголовок. В першу чергу кожен сервер додає свій Received: from. Читати їх краще від низу до верху. Саме нижнє повідомлення - це сервер відправника, самий верхній - сервер одержувача. Хоча насправді серверів може бути більше, особливо це актуально при роботі з великими провайдерами послуг, які, прийнявши лист, перекидають його далі, або при використанні на шляху SMTP-проксі. Для аналізу шляхи сполучення можна використовувати сервіс від Google , Який покаже в зрозумілій формі все SMTP-сервери, час проходження і тести SPF, DKIM і DMARC (про них далі).

шлях письма

Заголовки Received відрізняються, хоча є загальні правила. Типовий виглядає так:

Received: from server.example.org [1.2.3.4] (helo = server.example.org) by st15.provider.com with esmtps (Exim 4.80.1) (envelope-from <[email protected]>)

Тут повідомлення було отримано з сервера, який називається server.example.org, має IP 1.2.3.4, в привітанні helo було використано цей же ім'я, узяв би своє Exim 4.80.1 сервера st15.provider.com. Повідомлення надіслано з [email protected]. Прийнявши такий заголовок, SMTP-сервер починає перевіряти дані. Пробиває домен і IP по базах DNSBL. Перевіряє наявність MX-записи у домену. MX спочатку використовується для пошуку поштових серверів, які обслуговують даний домен, її наявність підтверджує, що домен відправляє пошту.

Далі він робить зворотне дозвіл імені по IP через зворотний DNS-запит c допомогою PTR-записи. Тобто він дізнається, сервер з яким ім'ям повинен бути за адресою, з якого прийшло повідомлення. Така поведінка було закладено в RFC 2505 від лютого 1999 року Anti-Spam Recommendations for SMTP MTAs. І хоча давно визнано, що зворотні зони не є достатньою умовою для однозначного розпізнавання відправника і часто призводять до помилок і затримок, вони все ж підтримуються. Тому вони повинні співпасти, інакше повідомлення як мінімум отримає мінус в рейтингу, а в гіршому випадку буде відкинуто.

У нашому прикладі за IP 1.2.3.4 повинен бути закріплений server.example.org. DNS-запис виглядає так:

1.2.3.4.in-addr.arpa. IN PTR server.example.org

Для IPv6 використовується ip6.arpa. В принципі, знати про особливості PTR необов'язково, так як PTR, за рідкісним винятком, налаштовує тільки хостинг-провайдер. І якщо воно не влаштовує, то потрібно просто звернутися в підтримку. Перевірити PTR можна за допомогою запиту:

$ Dig -x 1.2.3.4

За фактом PTR-запис після розгортання VDS може вказувати на технічний домен, представлений провайдером, на кшталт srv01.provider.net, в шаблоні VDS hostname вписаний як Ubuntu1604 (змінюється в / etc / hostname), в HELO / EHLO SMTP-сервер пише взагалі localhost .localdomain, а лист йде від домену example.org. Імовірність доставки листа при таких умовах буде стрімко наближатися до нуля. Хоча деякі сервіси відзначають подібні невідповідності як помилку і проводять повну перевірку.

Особливо хочеться звернути увагу, що VDS зазвичай має два IPv4 і v6. Тому все сказане стосується обох версій, так як лист до одного сервера може йти по IPv4 і доставлятися, а інший воліє використовувати IPv6, і лист може не доходити до одержувача. При цьому дуже багато провайдерів, надаючи IPv6, абсолютно не обтяжують себе налаштуванням PTR-записи, і її перевірка повертає помилку. Але Google, наприклад, вважає за краще IPv6 і відразу відкидає лист, якщо PTR не збігається з ім'ям сервера. У відповідному повідомленні сервісу це виглядає так:

Продовження доступно тільки учасникам

Варіант 1. Приєднайся до товариства «Xakep.ru», щоб читати всі матеріали на сайті

Членство в співтоваристві протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалами «Хакера», збільшить особисту накопичувальну знижку і дозволить накопичувати професійний рейтинг Xakep Score! Детальніше

Варіант 2. Відкрий один матеріал

Зацікавила стаття, але немає можливості стати членом клубу «Xakep.ru»? Тоді цей варіант для тебе! Зверни увагу: цей спосіб підходить тільки для статей, опублікованих більше двох місяців тому.


Ru»?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью