Popsneaker – ще одна лінія оборони від спаму

Олександр Купрін

Введення

Можна витратити десятки годин на те, щоб придумати барвисті епітети, які описують інтелектуальний і моральний рівень спамерів. Думка непогана, але можна витратити цей час з більшою користю і налаштувати ПЗ, яке допоможе заощадити ваш красномовство для більш важливих справ. Найбільш часто згадуваним інструментом для боротьби зі спамом є procmail. Насправді, методів і інструментів набагато більше – це пов’язано з тим, що блокувати листи можна (як мінімум) в трьох точках руху спаму:

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

Отже, розглянемо більш конкретний випадок. У мене є поштова скринька у провайдера, до якому я підключений. Крім цього я відкрив на безкоштовних поштових серверах декілька поштових скриньок і щоб не йти через пів-Інтернету за поштою до них я налаштував пересилку листів на мою поштову скриньку. Провайдер такого сервісу, як настройка блокування вхідної пошти не надає, тому пошту доводиться фільтрувати при прийомі використовуючи procmail.

Введення в procmail, приклади налаштування. procmailrc, manи російською по procmail ви знайдете
тут.

Однак, у цього методу є один недолік: якщо ви у файлі. procmailrc перенаправили в пошту в / dev / null, то це не призведе до того, що програма прийому пошти негайно видалить цей лист і перейде до наступного. Ні, просто вона прийме всі лист, але не буде його зберігати (вірніше збереже в “чорній дірі” файлової системи Linux, пристрої / dev / null). Тому розумним буде наступний підхід: перед прийомом пошти “причесати” свою поштову скриньку у провайдера і видалити ті листи, які підходять під чорний список за наступними критеріями:

І тільки після цього почати прийом залишилася пошти та обробку її procmailом. В якості “Гребінці” розглянемо роботу програми popsneaker. Автор програми – Stefan Baehre [popsneaker at ixtools.de]. Версія програми на момент написання статті була 0.6.0.

Збірка пакету

Для компіляції та роботи пакета вимагається бібліотека Tcp4u. Вона распространятется разом з дистрибутивом Debian GNU / Linux 2.2. На сайті www.ixtools.de ви можете знайти deb-пакети та rpm-пакети цієї бібліотеки, або
исходники:
пакети для Debian:
runtime пакет
development пакет
пакети для Red
Hat:
runtime пакет
development пакет
Исходники пакета popsneaker ви можете взяти тут. Якщо ж ви не хочете займатися самостійною збіркою пакета, то можете скористатися пакетами з вже скомпільованій програмою:
в тарболи
у форматі deb
у форматі rpm
Якщо ви вирішили відкомпілювати програму, то нагадую вам “отче наш” для збірки з “Сирця” (остання команда під правами root):

 ./configure
make
make install

На момент написання статті исходники версії 0.6.0, які були викладені на сайті, містили помилку, яка не дозволяла зібрати пакет з исходников – у файлах заголовків log.h і scanner.h пропущена посилання на файл заголовків string.h:

#include 

Автор сповіщений, обіцяв виправити.

Налаштування

При старті popsneaker шукає інформацію про настройки конфігурації в наступних файлах і використовує дані з першого зустрінутого їм файлу:

 ~/.popsneakerrc
/etc/popsneakerrc
/usr/etc/popsneakerrc
/usr/local/etc/popsneakerrc

У програмі існує п’ять типів фільтра: maxsize, accept, assume, deny і dupcheck:

 – maxsizeсинтаксис: maxsize [опції] <розмір>використовується для контролю розміру вхідної пошти,наприклад, правило:
maxsize 10240змусить popsneaker видаляти будь-які листи,чий розмір більше, ніж 10 Кб.
– acceptсинтаксис: accept [опції] “правила”використовується для дозволу прийому важливою пошти,видалення якоїнебажано, наприклад, правило:
accept “^From: .*my.friend@isp.com”змусить приймати пошту від .
– assumeсинтаксис: assume [опції] “правила”використовується для дозволу прийому пошти,яка задовольняєвсіма правилами перерахованим для assume, наприклад:
assume “^Message-ID: .*<.+@.+..+>”
assume “^(to|cc): .* ((privat1@my-isp.com) |(iam@work.com) |(@mydomain.net))”пошта буде прийнята тільки в тому випадку якщо Message-ID:містить коректне значення і в полях To: або Cc: вказанийодин з поштових адрес:
, , або<Любой_адрес@mydomain.net>.Приклад узятий з файлу example.popsneakerrc.
– denyсинтаксис: deny [опції] “правила”використовується для видалення пошти, властивості якої задовольняютьправилам, наприклад, згідно з правилами:
deny -silent “^From: .*@buyers.com”
deny -case -silent “^Subject: .*MONEY”пошта, яка містить в темі слово MONEY абозворотну адресу містить доменне ім’я buyers.com.
– dupcheckсинтаксис: dupcheck-strict
dupcheck -relaxedце правило використовується для видалення дублікатів поштових повідомлень.Ключ-Strict змушує перевіряти поле Message-ID: перевіряється пошти,якщо зустрічається збіг, то повідомлення буде видалене. Ключ “-relaxed”перевіряє пошту за іншими критеріями: розмір, тема листа, відправник.З другим ключем потрібно бути обережним, тому що залишається невеликийризик того, що всі три параметри співпадуть. Це можливо в тому випадку, якщоваш респондент вишле вам листа по одній темі, які виявлятьсяоднакового розміру.

Опис регулярних виразів які використовуються в правилах для accept, assume і deny ви можете знайти в man по regex:
man 7 regex

Ключів, які застосовуються в фільтрах всього чотири. Вони можуть використовуватися разом з
accept, assume, deny:

 – Case – робить вирази чутливими до регіструзустрічаються символів;- Nocase – робить вирази нечутливими до регіструзустрічаються символів (використовується за замовчуванням);- Verbouse – при видаленні повідомлення пишеться інформаціяпро нього в лог-файл.- Silent – при видаленні повідомлення ніякої інформації про цев лог-файл не пишеться.

Для прискорення роботи ви можете вказати програмі, за якими саме полям в заголовках листів робити фільтрацію. Для цього скористайтеся ключовим словом restrict:

 restrict “to:” “cc:” “from:” “subject:”
restrict “list-id:” “message-id”

Зверніть увагу на наступне: якщо ви застосували обмеження фільтрації по полях заголовків повідомлень, то не забудьте в оголошенні restrict описати всі поля, для яких ви написали правила accept, assume і deny, інакше вони працювати не будуть.

Трохи про принцип побудови правил фільтрації. Принцип простий – якщо право першим описано, то воно і виконується. Якщо у вас є лист із темою містить слово ╚ test ╩ і ви пропишіть у файлі конфігурації ось такі рядки:
accept “^Subject: .*test”
deny
“^Subject: .*test”
то пошта буде прийнята, якщо поміняєте їх місцями, то видалена. Тому, щоб не заплутатися, спочатку прописуйте правила для пошти, яку ви хочете отримати і тільки потім правила для пошти, яка повинна бути вилучена.

Тепер про що залишилися параметрах, описаних у procmailrc:

 – logfileсинтаксис: logfile “шлях до лог файлу”визначає шлях до лог-файлу (не забудьте про права доступу до файлу):
logfile “/var/log/popsneaker.log”
– debuglevelсинтаксис: debuglevel <рівень>визначає обсяг налагоджувальної інформації; 0 √ мінімальний,5 √ максимальний, за замовчуванням √ 3:
debuglevel 3
– timeoutсинтаксис: timeout <секунди>період тайм-ауту для мережних з’єднань; 0 √ відключений,за замовчуванням 300 сек:
timeout 300
– connectionsсинтаксис: connection <кількість каналів>визначає кількість одночасно відкритих каналів з поштовимисерверами; 1 – за замовчуванням:
connections 2
– testmodeсинтаксис: testmode on / offвключає / вимикає налагоджувальний режим; за замовчуванням √ відладкавимкнена, інакше правила будуть виконають, результати операційзаписуватися в лог, але реально віддалятися з поштової скринькинічого не буде:
testmode on
– accountсинтаксис: account [опції] “ім’я сервера” “логін” “пароль”описує налаштування для підключення до вашого поштового сервера,підтримує два протоколи pop3 і apop; за замовчуванням використовується
pop3:
account -protocol pop3 “pop.mail.ru” “ru_classic” “********”

Popsneaker і fetchmail

Якщо ви забираєте пошту при допомоги fetchmail, то ви можете скористатися опцією preconnect, описавши її у файлі fetchmailrc (приклад взятий з документації по popsneaker):

 poll pop.isp.com
proto POP3user ваш_логінpassword ваш_парольis ваше_локальное_імя
options fetchall
preconnect ‘/usr/local/bin/popsneaker pop.isp.com’

Зверніть увагу на опцію “Fetchall”. Вона необхідна, тому що після завершення роботи popsneaker, всі повідомлення у вашій поштовій скриньці буду з позначкою “прочитано”. Без цієї опції fetchmail не прийме ні одного повідомлення.

І останнє: якщо ви захочете просто очистити свою поштову скриньку, то вкажіть з правил фільтрації тільки одне:
maxsize 0


Джерело: http://www.softerra.ru/freeos/17696/

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


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

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

Ваш отзыв

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

*

*