The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Использоавние Popsneaker для защиты от спама (pop3 spam mail)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: pop3, spam, mail,  (найти похожие документы)
From: Александр Куприн <ru_classic at mail.ru> Date: Mon, 28 Feb 2004 14:31:37 +0000 (UTC) Subject: Использоавние Popsneaker для защиты от спама Оригинал: http://www.linuxrsp.ru/artic/popsnk.html Popsneaker - еще одна линия обороны от спама Александр Куприн ru_classic@mail.ru Введение -------- Можно потратить десятки часов на то, чтобы придумать красочные эпитеты, описывающие интеллектуальный и моральный уровень спамеров. Мысль неплохая, но можно потратить это время с большей пользой и настроить ПО, которое поможет сэкономить ваше красноречие для более важных дел. Наиболее часто упоминаемым инструментом для борьбы со спамом является procmail. На самом деле, методов и инструментов намного больше - это связано с тем, что блокировать письма можно (как минимум) в трех точках движения спама: * на SMTP-сервере; * на POP-сервере; * при приеме почты на локальную машину. В этой статье речь пойдет о способе борьбы со спамом в последней точке его путешествия. Это может представлять интерес для владельцев почтовых ящиков, которые не имеют возможности настроить удаленно фильтры для блокирования писем. Итак, рассмотрим более конкретный случай. У меня есть почтовый ящик у провайдера, к которому я подключен. Кроме этого я открыл на бесплатных почтовых серверах несколько почтовых ящиков и чтобы не идти через пол-Интернета за почтой к ним я настроил пересылку писем на мой почтовый ящик. Провайдер такого сервиса, как настройка блокирования входящей почты не предоставляет, поэтому почту приходится фильтровать при приеме используя procmail. Введение в procmail, примеры настройки .procmailrc, manы на русском по procmail вы найдете здесь (http://sendmail.aiq.ru/documents.htm). Однако, у этого метода есть один недостаток: если вы в файле .procmailrc перенаправили в почту в /dev/null, то это не приведет к тому, что программа приема почты немедленно удалит это письмо и перейдет к следующему. Нет, просто она примет все письмо, но не будет его сохранять (вернее сохранит в "черной дыре" файловой системы Linux, устройстве /dev/null). Поэтому разумным будет следующий подход: перед приемом почты "причесать" свой почтовый ящик у провайдера и удалить те письма, которые подходят под черный список по следующим критериям: * размер письма; * информация, содержащаяся в заголовке письма. И только после этого начать прием оставшейся почты и обработку ее procmailом. В качестве "расчески" рассмотрим работу программы popsneaker. Автор программы - Stefan Baehre [popsneaker at ixtools.de]. Версия программы на момент написания статьи была 0.6.0. Сборка пакета ------------- Для компиляции и работы пакета требуется библиотека Tcp4u. Она распространятется вместе с дистрибутивом Debian GNU/Linux 2.2. На сайте http://www.ixtools.de вы можете найти deb-пакеты и rpm-пакеты этой библиотеки, либо исходники (http://www.ixtools.de/popsneaker/libs/tcp4u331.zip): Исходники пакета popsneaker вы можете взять здесь (http://www.ixtools.de/popsneaker/download/source.html). Если же вы не хотите заниматься самостоятельной сборкой пакета, то можете воспользоваться пакетами с уже откомпилированной программой: в тарболах http://www.ixtools.de/popsneaker/download/binary.html в формате deb http://www.ixtools.de/popsneaker/download/debian.html в формате rpm http://www.ixtools.de/popsneaker/download/redhat.html Если вы решили откомпилировать программу, то напоминаю вам "отче наш" для сборки из "сырцов" (последняя команда под правами root): ./configure make make install На момент написания статьи исходники версии 0.6.0, которые были выложены на сайте, содержали ошибку, которая не позволяла собрать пакет из исходников - в файлах заголовков log.h и scanner.h пропущена ссылка на файл заголовков string.h: #include <string.h> Автор извещен, обещал исправить. Настройка --------- При старте 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)\ |(me@freemailer\.net)\ |(@mydomain\.net))" почта будет принята только в том, случае если Message-ID: содержит корректное значение и в полях To: или Cc: указан один из почтовых адресов. Пример взят из файла 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 POP3 user ваш_логин password ваш_пароль is ваше_локальное_имя options fetchall preconnect '/usr/local/bin/popsneaker pop.isp.com' Обратите внимание на опцию "fetchall". Она необходима, т.к. после завершения работы popsneaker, все сообщения в вашем почтовом ящике буду с пометкой "прочтено". Без этой опции fetchmail не примет ни одного сообщения. И последнее: если вы захотите просто очистить свой почтовый ящик, то укажите из правил фильтрации только одно: maxsize 0

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру