Mailfilter - программа, призванная защитить вас от спама.

  Автор: © Matthias Arndt
Перевод: © Павел В. Ступин (Кобальт).


 

1. Что такое mailfilter?

Mailfilter является инструментом, в полезности которого не приходится сомневаться. Эта программа помогает вашему почтовому ящику держаться подальше от спама. В отличие от фильтрования почты с procmail, mailfilter анализирует почту в режиме онлайн. Это означает, что mailfilter удаляет весь нежелаемый спам напрямую с вашей учетной записи на POP3-серевере, тем самым не давая fetchmail (или вашему любимому POP3-клиенту) даже увидеть этот спам. Именно это отличает mailfilter от procmail, так как последняя программа удаляет спам только после скачивания почты и как раз перед ее направлением в почтовый ящик на вашей машине. (С примерами использования procmail можно ознакомиться в недавней статье из Linux Gazette, написанной Беном Окопником: http://linuxgazette.ru/lg/lg62/articles/rus-okopnik.html.)

Преимущество mailfilter в том, что с этой программой вы больше не будете скачивать спам. Это сохранит от засорения канал и сделает вас намного счастливее, особенно если у вас медленное Интернет-соединение.

Mailfilter очень хорош, прост в установке и легок в работе. Также можно добавить его в ваш .fetchmailrc, таким образом автоматизировав процедуру удаления нежелательного спама перед скачиванием почты.

2. Установка mailfilter

Установка mailfilter очень проста. Просто скачайте исходный код mailfilter (файл .tar.gz) с http://mailfilter.sourceforge.net/ и проделайте следующие шаги.

  1. распакуйте архив во временный каталог
  2. перейдите в этот каталог
  3. наберите ./configure
  4. make
  5. как root (при необходимости используйте su): make install
Прочитайте очень неплохо написанную документацию, поставляемую с исходным кодом, для получения дополнительных деталей.

Для запуска программы просто наберите mailfilter в командной строке. Внимание! Mailfilter'у нужен корректно составленный конфигурационный файл для нормальной работы.

3. Конфигурационный файл mailfilter

3.1 Создание файла

Можно скачать образец этого файла с mailfilter.sourceforge.net, - но в данном случае мы с вами создадим этот файл с нуля.

Каждому пользователю, желающему пользоваться mailfilter, необходим конфигурационный файл. Этот файлназывается.mailfilterrc. Он должен находиться в домашнем каталоге пользователя.

Следуйте этим инструкциям для того, чтобы создать файл и принять меры по обеспечению защищенности файла (хотя бы небольшой).

  1. запустите ваш любимый командный интерпретатор, убедитесь, что вы работаете не как root (в окне терминала или в консоли)
  2. наберите cd для перехода в корень своего домашнего каталога
  3. наберите touch .mailfilterrc
  4. наберите chmod 600 .mailfilterrc, чтобы никто (кроме root) не мог прочитать файл
  5. теперь запустите ваш любимый текстовый редактор для правки .mailfilterrc
Необходимость использования chmod вызвана тем, что mailfilter хранит пароли к вашим учетным записям на POP3-сереверах как простой текст!

Теперь нам нужно наполнить наш конфигурационный файл содержанием. Mailfilter не будет работать, если файл отсутствует.

3.2 комментарии в кофигурационном файлеcomments mailfilter

Строки, начинающиеся с символа # являются комментариями и таким образом игнорируются mailfilter. Также игнорируются пустые строки.

3.3 добавление основной информации в конфигурационный файл mailfilter

Самая важная часть конфигурационного файл содержит информация о ваше почтовой учетной записи. Просто добавьте следующие строки в файл mailfilterrc. Можно задать больше чем одну учетную запись.

На сегодняшний день, mailfilter поддерживает только почтовые ящики для POP3.

Очень важно не менять порядок строк.

  • SERVER=mailserver (пропишите здесь сетевое имя вашего почтового сервера)
  • USER=username (это место для указания вашего имени пользователя на POP3-сервере)
  • PASS=password (введите здесь свой пароль)
  • PROTOCOL=pop3 (оставьте эту строку как есть, потому что IMAP еще не поддерживается)
  • PORT=110 (пропишите здесь порт POP3-сервера, по умолчанию - 110)
Убедитесь, что все ключевые слова написаны большими буквами. Если вы напишите Server вместо SERVER, то mailfilter вас просто не поймет.

Еще одним важным параметром является указание файла лога за счет использования следующей строки:

  • LOGFILE=logfile (укажите здесь имя файла - вы обязательно должны иметь права на запись в этот каталог и файл!)
Mailfilter will refuse to work if you do not specify a logfile. If you do not want to keep logs, use /dev/null as the logfile entry.

Теперь у вас есть рабочий базовый конфигурационный файл. Mailfilter запустится без проблем, но не сделает ничего полезного с вашей почтой.

3.4 добавление фильтров в конфигурационный файл

Это самая сложная часть настройки. Сейчас мы добавим команды, которые на самом деле будут делать что-то полезное с вашей почтой.

Этот эффект достигается за счет добавления специальных командных строк в конфигурационном файле. Mailfilter для фильтрования использует регулярные выражения.

3.4.1 укажите, должен ли mailfilter различать регистр букв при фильтровании

Для того, чтобы сделать это, добавьте следующую строку в ваш файл настроек.

  • REG_CASE=no
Или - "yes", но знайте, что игнорирование регистра существенно облегчает фильтрование.

3.4.2 укажите, должен ли mailfilter преобразовывать текст в нормальный вид

  • NORMAL=yes
Это дает возможность mailfilter воспринимать ``,L.E-G,A.L; ,C.A-B`L`E, +.B-O`X` ;D`E`S,C;R,A.MB;L,E.R-]'' как ``LEGAL CABLE BOX DESCRAMBLER''.

Будьте осторожны! mailfilter не будет пытаться прочитать ``v i a g r a'' как viagra, потому что пробелы не преобразуются в нормальный вид.

3.4.3 добавление поддержки для удаления писем на основе темы

Это легко. Добавьте следующую строку в ваш конфигурационный файл.

  • DENY=Subject:.*some text
Замените some text, который вам необходим для фильтрования.

3.4.4 добавление поддержки для удаления спама от определенных отправителей

Это может оказаться полезным, если вы раз за разом получаете спас с одного и того же адреса. Пользуйтесь следующим синтаксисом:

  • DENY=From:.*spammer@somewhere.org
Замените spammer@somewhere.org почтовым адресом спаммера.

Также можно блокировать спам с целых доменов. Используйте следующий синтаксис для жостижения такого результата:

  • DENY=From:.*@domain
Замените domain на имя домена спаммеров.

Как видно, способ сообщения mailfilter, что делать с почтой, следует простой схеме. Также можно блокировать почту на основе CC, BCC и TO.

3.4.5 получение писем от заданных отправителей

Эта функция позволяет mailfilter "не трогать" почту от указанного отправителя, даже если это противоречит существующим фильтрам.

  • ALLOW=From:.*my_friend@somewhere.com
Вся почта с указанного адреса будет сохранена.

Аналогичную процедуру можно провести и с темами писем. Если спаммер начинает писать, например, о mailfilter.

  • ALLOW=Subject:.*mailfilter


4. Как автоматизировать фильтрование спама с использованием fetchmail?

У fetchmail есть функция, позволяющая вызывать программы фильтрования перед скачиванием почты. Добавьте следующую строку в ваш .fetchmailrc для вызова mailfilter при каждом скачивании почты.

preconnect mailfilter
Замените здесь mailfilter на полный путь и имя к бинарному файлу mailfilter. Например, /usr/local/bin/mailfilter.

Будьте осторожны! Если mailfilter терпит неудачу (поврежденный конфиг, неправильный пароль, password и др.), то fetchmail не проиведет соединения. Поэтому проверяйте свою конфигурацию для mailfilter отдельно, каждый раз когда вы добавляет новую директиву.

5. Заключение

Mailfilter является очень хорошим инструментом. Мне не удалось заставить fetchmail фильтровать по телу письма. Но хотя бы spam блокируется, если правильно указать адреса спаммеров.

Это работает действительно здорово, и я могу только рекомендовать: попробуйте mailfilter, особенно если у вас плохая связь и вы получаете много спама.

Matthias Arndt

Я Linux-энтузиаст из северной Германии. Мне нравится слушать старенький рок-н-ролл пятидесятых, сочинять рассказы и, разумеется, публиковаться в Linux Gazette. Сейчас я занимаюсь изучением применения компьютерных технологий в экономической теории.

 


Copyright © 2001, Matthias Arndt.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 67 of Linux Gazette, June 2001

Вернуться на главную страницу