Ускладнимо жінь спамерів використовуючи spamd

                          Електронна пошта є досить важливим сервісом і вимагає особливої ​​уваги через великого обсягу небажаних повідомлень і спаму Великий обсяг спаму став вельми болючою проблемою, коли вирусописатели почали писати поштових червяків і перевантажувати поштові сервіси На початку 2000-х років сукупний обсяг спаму та шкідливих програм розповсюджуються через пошту дійшло до рівня, коли запуск поштового сервісу SMTP без заходів захисту від спаму став просто немислимим

Заходи боротьби зі спамом практично на стільки старі, як і сама проблема його існування Ранні зусилля були спрямовані на аналіз змісту поштових повідомлень (більш відомий як фільтрація контексту) і в деякій мірі на інтерпретацію повідомлень шляхом тривіального витягування даних заголовків, таких як передбачуваний адреса відправника (From 🙂 або заголовків Recieved

Коли команда OpenBSD розробляла свій інструмент боротьби зі спамом названий spamd, що вперше зявився в OpenBSD 33 в 2003 році, вони зосередилися на роботі

мережевого рівня і негайне взаємодії з партнером SMTP, в поєднанні з будь

наявною інформацією про хостах які мали справу з доставкою повідомлення Розробники задалися метою створити невелику, досить просту і безпечну програму Подальша реалізація була практично виключно заснована на творчому використанні таблиць PF в поєднанні з даними з надійних зовнішніх джерел

На додаток до демона блокування спаму OpenBSD, пакету SpamAssassin заснованому на фільтрації контенту (http://spamassassinapacheorg) є програма названа spamd Обидві програми розроблені для надання допомоги в боротьбі зі спамом, але вони мають дуже різні підходи до вирішення однієї проблеми і не мають прямої взаємодії Слід зазначити, що коли обидві програми правильно налаштовані й запущені, вони чудово доповнюють один одного

Аналіз поведінки мережевого рівня і чорні спискиОригінальний дизайн spamd заснований на тому спостереженні, що спамери відправляють багато пошти і ймовірність того, що ви перша людина довідався про це неймовірно мала Крім того, спам розсилається за допомогою декількох спам-мереж і безлічі викрадених (хайджек – в класичному розумінні) машин Повідомлення і машини які їх передають досить швидко потрапляють у відповідні чорні списки, і ці дані чорних списків містять IP адреси відправляють спам формують основу для роботи spamd

При взаємодії з блокованими хостами spamd використовує метод званий tarpitting Коли демон отримує SMTP зєднання, він виставляє банер і миттєво

перемикається на режим, в якому відповідає SMTP трафіком зі швидкістю 1 байт в

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

1 У більш довгостроковій перспективі, цілком імовірно, що цілі мережі і великі діапазони IP адрес будуть переассоцііровани з новими власниками у відповідь на події зовнішнього світу

2 Перш ніж pfctl придбав можливість працювати із закінченням табличних записів, для управління закінченням використовувалася спеціальна утиліта expitrtable Якщо ваш pfctl ще не підтримує режим витікання записів, знайдіть expiretable у вашій системі пакетів

Ця реалізація tarpittingа c однобайтового відповіддю часто згадується як заїкання Чорний список заснований на тарпіттінге із заїканням є режимом за замовчуванням для spamd до версії OpenBSD 40 включно

На FreeBSD і NetBSD, spamd не є частиною базової системи, однак доступний через систему портів і пакетів як mail / spamd Якщо ви запускаєте PF на базі релізу FreeBSD 5x або NetBSD 40 або більш новому, вам слід зробити установку порту або пакета

Налаштування spamd в режимі чорного спискуДля налаштування spamd в традиційному режимі чорного списку, спочатку створіть спеціальні таблиці і відповідні перенаправлення в pfconf, а вже потім переведіть увагу на spamdconf spamd чіпляється до набору правил PF через таблицю

і перенаправлення Вам необхідно додати наступні рядки в файл pfconf:

table &ltspamd&gt persist

pass in on $ext_if inet proto tcp from &ltspamd&gt to { $ext_if, $localnet } port smtp rdr-to 127001 port 8025

Для pre-OpenBSD 47 наступний синтаксис:

table &ltspamd&gt persist

rdr pass on $ext_if inet proto tcp from &ltspamd&gt to { $ext_if, $localnet } port smtp -&gt 127001 port 8025

Таблиця – Місце для зберігання IP адрес, які ви імпортуєте з довірених джерел чорних списків Перенаправлення бере на себе турботу про всіх спробах встановлення SMTP сполук з хостів знаходяться в чорних списках spamd слухає порт 8025 і м-е-д-л-е-н-н-о відповідає (зі швидкістю 1 байт в секунду) на всі переадресуемие SMTP зєднання Пізніше, ви додасте в набір правил соотвествующее правило, забезпечує пропуск легітимного SMTP трафіку до поштового сервера

У файлі spamdconf ви вказуєте джерела даних чорних списків і будь-які винятки або локальні перевизначення

На OpenBSD 40 і більш ранніх релізах (і відповідно в базі портів основаних на версіях до OpenBSD 41), spamdconf знаходився в директорії / etc Починаючи з OpenBSD 41, spamdconf можна знайти в / etc / mail Приклад файлу конфігурації spamd при установці з системи портів FreeBSD можна знайти в / usr / local / etc / spamd / spamdconfsample

На початку spamdconf ви можете помітити рядок без знака коментаря #, яка виглядає як all: \ Цей рядок вказує чорні списки які ви будете використовувати Наприклад:

all:\

:uatraps:whitelist:

Додайте всі чорні списки які ви хотітет використовувати нижче рядка all: \, розділяючи їх двокрапкою (:) Для використання білих списків адрес, з вирахуванням їх з чорних списків, додайте імя білого списку відразу після назви кожного чорного списку, наприклад як: blacklist: whitelist: Далі йде визначення чорного списку:

uatraps:\

:black:\

:msg=&quotSPAM Your address %A has sent spam within the last 24 hours&quot:\

:method=http:\

:file=wwwopenbsdorg/spamd/traplistgz

Використовуючи чорні списки за замовчуванням, spamd може виключати великі блоки Інтернет, у тому числі деякі діапазони адрес, які охоплюють записи цілих країн Якщо ваш сайт передбачає обмін легітимного поштою з будь-якої з країн, про яку йде мова, ці списки можуть бути не оптимальні для вашої установки Інші популярні чорні списки з діапазоном джерел спаму / 16 повинні бути так само докладно розглянуті до їх використання в робочих політиках

Введіть рядка для spamd і параметрів запуску в ваш / etc / rcconflocal на OpenBSD, або в / etc / rcconf на FreeBSD або NetBSD Ось приклад:

spamd_flags=&quot-v -b&quot # for normal use: &quot&quot and see spamd-setup(8)

Тут ми включаємо spamd і встановлюємо запуск режиму чорних списків використовуючи прапор-b Крім того, флаг-v включає рашіреніе журналирование, яке корисне для відстеження активності spamd при налагодженні

У FreeBSD, установка obspamd_enable в / etc / rcconf позволяущая контролювати поведінку spamd повинна бути встановлена ​​в YES для включення spamd, а параметр obspamd_flags можна заповнити будь-якими параметрами командного рядка spamd:

obspamd_enable=&quotYES&quot

obspamd_flags=&quot-v -b&quot # for normal use: &quot&quot and see spamd-setup(8)

Для запуску spamd в рідному режимі чорного списку на OpenBSD 41 і новіших релізах, ви можете отримати той же ефект шляхом установки змінної spamd_black в значення YES, а потім перезапустити spamd

Після того, як ви закінчите редагування конфігурації, запустіть spamd з необхідними опціями, і завершите конфігурування установки Нарешті, створіть завдання cron яке викликає spamd-setup для поновлення чорних списків через розумні проміжки часу У рідному режимі чорних списків, ви можете проматрівать і маніпулювати собержімим таблиць використовуючи команду pfctl

Журналювання spamdЗа замовчуванням, журнали spamd включаються в загальні системні журнали Для того, щоб відправити повідомлення журналирования spamd в окремий журнал, слід

додати наступний запис в syslogconf:

!!spamd daemonerrdaemonwarndaemoninfodaemondebug

/var/log/spamd

Як тільки spamd запущений і робить саме те що ви намагалися від нього домогтися, ви можете додати файл журналювання spamd в систему ротатаціі журналів Після запуску spamd-setup і заповнення таблиць, ви можете переглядати вміст таблиць використовуючи pfctl

Зразок pfconf на початку даного розділу містить правило перенаправлення (rdr-to) як частина правила pass Якщо ви плануєте використовувати замість нього інші відповідні правила (або, якщо ви використовуєте стару версію PF і вирішили написати правило rdr, що не включає частину pass), вам слід переконатися, що ви створили правило pass, що дозволяє проходження трафіку до вашого перенаправлення Так ж може знадобитися встановити правила для пропуску легітимного пошти Однак, якщо сервіс електронної пошти у вашій мережі вже працює, з великою ймовірністю ви можете продовжити використовувати старі правила пропуску SMTP

Маючи набір надійних і впорядкованих чорних списків, spamd в рідному режимі чорного списку виробляє видиму роботу щодо скорочення спаму Тим не менше, тільки в режимі чорних списків, ви ловите трафік тільки від хостів які вже намагалися відправляти спам (і це було ким то зафіксовано – пп), і спираєтесь на зовнішні довірені джерела на підставі даних яких вирішуєте, для яких хостів можете застосовувати тарпітт Для створення установки забезпечує безпосередню реакцію на поведінку мережевого рівня і пропонує превентивні заходи у боротьбі зі спамом, слід розглянути використання сірих списків (graylists), які є важливою частиною сучасної роботи spamd

Джерело: Книга про PF, by Peter NM Hansteen, Переклад виконав Михайлов Олексій aka iboxjo

Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*