| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Popsneaker - еще одна линия обороны от спама
Введение
Можно потратить десятки часов
на то, чтобы придумать красочные эпитеты, описывающие
интеллектуальный и моральный уровень спамеров. Мысль неплохая,
но можно потратить это время с большей пользой и настроить ПО,
которое поможет сэкономить ваше красноречие для более важных
дел. Наиболее часто упоминаемым инструментом для борьбы со
спамом является
В этой статье речь пойдет о способе борьбы со спамом в последней точке его путешествия. Это может представлять интерес для владельцев почтовых ящиков, которые не имеют возможности настроить удаленно фильтры для блокирования писем. Итак, рассмотрим более конкретный случай. У меня есть почтовый ящик у провайдера, к которому я подключен. Кроме этого я открыл на бесплатных почтовых серверах несколько почтовых ящиков и чтобы не идти через пол-Интернета за почтой к ним я настроил пересылку писем на мой почтовый ящик. Провайдер такого сервиса, как настройка блокирования входящей почты не предоставляет, поэтому почту приходится фильтровать при приеме используя 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. На сайте ./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 не примет ни одного сообщения. И последнее: если вы захотите
просто очистить свой почтовый ящик, то укажите из правил
фильтрации только одно: Источник: |
|
| ||||||||||||||||
|