Библиотека Интернет Индустрии I2R.ru |
|||
|
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. На сайте http://www.ixtools.de/ вы можете найти deb-пакеты и rpm-пакеты
этой библиотеки, либо исходники: ./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" заставит принимать почту от Описание регулярных выражений, которые
используются в правилах для accept, assume и deny вы можете найти в man по
regex: Ключей, которые применяются в фильтрах всего четыре. Они могут использоваться вместе с accept, assume, deny: - case – делает выражения чувствительными к регистру встречаемых символов; - nocase – делает выражения нечувствительными к регистру встречаемых символов (используется по умолчанию); - verbouse – при удалении сообщения пишется информация о нем в лог-файл. - silent – при удалении сообщения никакой информации об этом в лог-файл не пишется. Для ускорения работы вы можете указать программе, по каким именно полям в заголовках писем производить фильтрацию. Для этого воспользуйтесь ключевым словом restrict: restrict "to:" "cc:" "from:" "subject:" restrict "list-id:" "message-id" Обратите внимание на следующее: если вы применили ограничение фильтрации по полям заголовков сообщений, то не забудьте в объявлении restrict описать все поля, для которых вы написали правила accept, assume и deny, иначе они работать не будут. Немного о принципе построения правил фильтрации.
Принцип прост – если правило первым описано, то оно и выполняется. Если у вас
есть письмо с темой содержащей слово «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 не примет ни одного сообщения. И последнее: если вы захотите просто очистить
свой почтовый ящик, то укажите из правил фильтрации только одно: Анонсы статей сайта Softerra |
|
2000-2008 г. Все авторские права соблюдены. |
|