Платный
хостинг от провайдера HostSpace.com.ua - хостинг, регистрация доменов.
Поддержка PHP, MySQL, почта - в каждом тарифном плане.
Popsneaker - еще одна линия обороны от спама
Александр Куприн
Введение
Можно потратить десятки часов
на то, чтобы придумать красочные эпитеты, описывающие
интеллектуальный и моральный уровень спамеров. Мысль неплохая,
но можно потратить это время с большей пользой и настроить ПО,
которое поможет сэкономить ваше красноречие для более важных
дел. Наиболее часто упоминаемым инструментом для борьбы со
спамом является procmail. На самом деле, методов и
инструментов намного больше - это связано с тем, что
блокировать письма можно (как минимум) в трех точках движения
спама:
на SMTP-сервере;
на POP-сервере;
при приеме почты на локальную машину.
В этой статье речь пойдет о
способе борьбы со спамом в последней точке его путешествия.
Это может представлять интерес для владельцев почтовых ящиков,
которые не имеют возможности настроить удаленно фильтры для
блокирования писем.
Итак, рассмотрим более
конкретный случай. У меня есть почтовый ящик у провайдера, к
которому я подключен. Кроме этого я открыл на бесплатных
почтовых серверах несколько почтовых ящиков и чтобы не идти
через пол-Интернета за почтой к ним я настроил пересылку писем
на мой почтовый ящик. Провайдер такого сервиса, как настройка
блокирования входящей почты не предоставляет, поэтому почту
приходится фильтровать при приеме используя 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 POP3
user ваш_логин
password ваш_пароль
is ваше_локальное_имя
options fetchall
preconnect /usr/local/bin/popsneaker pop.isp.com
Обратите внимание на опцию
"fetchall". Она необходима, т.к. после завершения работы
popsneaker, все сообщения в вашем почтовом ящике буду с
пометкой "прочтено". Без этой опции fetchmail не примет ни
одного сообщения.
И последнее: если вы захотите
просто очистить свой почтовый ящик, то укажите из правил
фильтрации только одно: maxsize 0
Источник: http://www.softerra.ru/freeos/17696/
www.sdteam.com
Операционные системы 29-01-2007
Возможности нового Планировщика заданий в Windows Server 2008 28-07-2008 Операционные системы Планировщик заданий (Task scheduler) в Windows Server 2008 подвергся значительной модификации по сравнению с предыдущими версиями Windows Server. Теперь ключевыми элементами запланированных заданий стали триггеры (Triggers), действия (Actions), условия (Conditions) и параметры (Settings).Набор настроек триггеров и действий запланированного задания в Windows Server 2008 значительно расширился. Среди стандартных триггеров – возможность начинать зад...
Как намертво заблокировать процедуру входа в Windows Vista 02-07-2008 Операционные системы Недавно в одной из статей в рамках серии обзоров возможностей Windows Vista я показал, как можно вручную войти в систему Windows Vista на домашнем компьютере: «Как обойти процедуру входа в Windows Vista». Несмотря на то, что данная там инструкция предназначалась для людей, единолично использующих Windows Vista на домашней машине, множество читателей не разделили мнение о том, что можно оставить систему незащищенной.Основываясь на этих отзывах, я ...
Оптимизация и настройка служб Windows Vista 25-06-2008 Операционные системы По умолчанию окно Диспетчера задач (Task Manager) выглядит так, как показано на этом снимке. В нём отображены только процессы, работающие под вашей пользовательской учётной записью. Чтобы увидеть также и процессы, работающие под служебными учётными записями, нужно нажать кнопку Отображать процессы всех пользователей (Show processes from all users), которая находится в нижнем левом углу окна.Используйте Диспетчер задач для того, чтобы увидеть все ...
Персонализация функции быстрого поиска в меню «Пуск» Vista 19-05-2008 Операционные системы К счастью, функцию быстрого поиска в меню «Пуск» (Start) Vista можно сделать еще удобнее, объединив ее с поиском Google. Для этого придется воспользоваться Редактором локальной групповой политики (Local Group Policy Editor). Чтобы его запустить, нажмите клавиши [Windows]+[R], введите в диалоговом окне «Открыть» (Run) фразу gpedit.msc и нажмите «OK». После этого появится диалоговое окно системы Контроля учетных записей пользователей (UAC), в котор...
Использование утилиты проверки диска Check Disk в системе Windows Vista 13-05-2008 Операционные системы Утилита «Проверка диска» (Check disk) операционной системы Windows Vista позволяет проверить целостность диска, выявить повреждённые сектора и восстановить информацию.Щёлкните правой кнопкой на пиктограмме нужного диска и в раскрывшемся контекстном меню выберите пункт «Свойства» (Properties), как показано на изображениях A и B.Изображение A.Изображение B.В диалоговом окне «Свойства» (Properties) перейдите на вкладку «Сервис» (Tools) и нажмите кно...
Выборочное отключение контроля учетных записей (UAC) для проверенных приложений в Windows Vista 13-05-2008 Операционные системы Недавно я прочёл копию статьи Базы знаний Microsoft «Как отключить Контроль учётных записей пользователей для отдельных приложений» (How To Disable The User Account Control Prompt For Certain Applications), в которой продемонстрировано, как выборочно отключить контроль учётных записей (UAC) для конкретных программ при помощи пятой версии пакета средств обеспечения совместимости приложений Microsoft Application Compatibility Toolkit. Этой инструкц... |