Додаткові правила фільтрації поштових повідомлень.
Для зменшення кількості спаму має сенс додати ще декілька правил фільтрації.
В кінець блоку smtpd_helo_restrictions допишемо:
check_helo_access hash:/etc/postfix/helo.list
А в блок smtpd_recipient_restrictions після правила permit_sasl_authenticated вставимо:
check_sender_access hash:/etc/postfix/ext_sender
Створимо файл /etc/postfix/helo.list #touch /etc/postfix/helo.list
Відкриємо його на редагування та запишемо в нього рядок:
mail.study.local 550 Don't use my hostname
Та створимо з нього індексовану мапу:
#postmap /etc/postfix/helo.list
Відкриємо його на редагування та запишемо в нього рядок:
study.local 550 Do not use my domain in your envelope sender
Та створимо з нього індексовану мапу:
#postmap /etc/postfix/ext_sender
Правилом check_helo_access буде здійснюватись перевірка того, що нам надішле сервер-відправник в команді HELO. В тому випадку, якщо він представиться нашим же іменем (рядок mail.study.local в файлі /etc/postfix/helo.list), то з'єднання буде розірвано. В нормальній ситуації жоден сервер не може представлятися нашим іменем, тому, скоріш за все, це буде сервер, що розповсюджує спам.
Правилом check_sender_access буде здійснюватись перевірка адреси відправника листа. В тому випадку, коли відправник знаходиться в нашому ж домені (рядок study.local у файлі /etc/postfix/ext_sender), буде відмовлено в прийомі такого листа. З точки зору нашого сервера лист з таким відправником не може прийти від якогось відправника ззовні. Такий лист може бути відправлений лише користувачем нашого сервера, але тоді з'єднання буде захищене логіном та паролем і в цьому випадку лист буде прийнятий за правилом permit_sasl_authenticated, яке стоїть попереду і тому спрацює раніше.
Також має сенс додати ще одну перевірку:
reject_unknown_client
Це правило забороняє приймання листа в тому випадку, коли у клієнта неправильні налаштування DNS — відсутнє або неправильне доменне ім'я (DNS запис типу A), або відсутня або неправильна зворотня зона (DNS запис типу PTR). Вставляти це правило треба в блок smtpd_helo_restrictions зразу після permit_sasl_authenticated
Використання чорних списків розповсюджувачів спаму — DNSBL
DNSBL — DNS blacklist або DNS blocklist — списки хостів, збережені з використанням системи архітектури DNS. Зазвичай використовуються для боротьби зі спамом. Поштовий сервер звертається до DNSBL і перевіряє в ньому наявність IP-адреси клієнта, з якого він приймає повідомлення. При позитивній відповіді вважається, що відбувається спроба прийому спам-повідомлення. Серверу відправника повідомляється помилка 5xx (невиправна помилка) і повідомлення не приймається. Поштовий сервер відправника створює «відмовну квитанцію» відправнику про недоставку пошти.
Для налаштування використання чорних списків серверів потрібно в кінець блоку правил smtpd_helo_restrictions додати рядки типу
reject_rbl_client sbl.spamhaus.org
Де sbl.spamhaus.org це і є адреса сервіса DNSBL
Таких списків в інтернеті знайти можна дуже багато, але найчастіше використовуються наступні:
sbl.spamhaus.org
cbl.abuseat.org
dnsbl.sorbs.net
При використанні DNSBL слід бути дуже уважним. Безкоштовні сервіси можуть в будь-яку мить припинити роботу, внести в списки нормальні сервери або створити інші неприємності. Тому користуватися ними слід дуже обережно.