Самоделки провинциального сисадмина

P3MXLOOK

( POP3 proxy with spam filtering capabilities )

Общие замечания

Фильтр оформлен в виде сервиса Windows, который реализует POP3 прокси сервер со встроенной спам фильтрацией. Фильтр явлется Windows вариацией фильтра mxlookup, а поэтому в основу его работы положены те же принципы. А именно - оценка достоверности соответствия "релей - домен отправителя". Информация для анализа берется из заголовка сообщения. В некоторых случаях дополнительная информация запрашивается у DNS сервера. Для обхода анализа и задания предопределенных действий используются "белые" списки.

Область применения

Фильтр предназначен для персонального использования или для использования в небольших рабочих группах с относительно стабильным списком респондентов.

Возможности и особенности

  • формат фильтра - POP3 прокси сервер;
  • максимальное количество одновременных клиентских соединений - 16;
  • для работы программы должен быть доступен DNS сервер;
  • поддерживает работу с релей-серверами: sendmail, postfix, exim;
  • сообщения с подозрением на spam метятся путем добавления в тему сообщения префикса ***Spam***;
  • имеет возможность отключения фильтрации для заданых получателей;
  • ведет лог своей работы;
  • изменение конфигурации без перезапуска.

Несколько замечаний.
Фильтрация выполняется на основе анализа полей заголовка сообщения. Как известно, формат этих полей регламентирован не строго (см.RFC822). Поэтому если вторичный релей использует MTA типа Sendmail, Postfix, Exim - проверка будет работать. Если это Qmail - нет и ее придется отключить, т.е либо внести такой релей в один из "белых" списков ( если это один из вторичных релеев ), либо не использовать даную программу вообще ( если это первичный релей ). Совместимость с другими типами МТА не исследовалась.
Сообщения с подозрением на spam метятся путем добавления в тему сообщения префикса ***Spam***. В дальнейшем, клиентская программа может автоматически отсортировать или удалить такое сообщение. Хотя правильнее было бы результат проверки добавлять в заголовок сообщения. Но, к сожалению, не все почтовые клиенты поддерживают обработку писем на основе полей заголовка с произвольным именем.
Поскольку фильтр выполняет запросы к DNS, то мне показалось разумным ввести ограничение на количество одновременных клиентских соединений. И значение 16, на мой взгляд, является вполне приемлемым для небольшой рабочей группы.

Инсталяция

  1. Загрузите архив p3mxlook.zip
  2. Создайте каталог и распакуйте в него архив.
  3. Внесите необходимые изменения в конфигурационный файл (см.ниже).
  4. В командной строке выполните:
    cd имя_каталога_программы
    p3mxlook -install
    net start p3mxlook

Деинсталяция

  1. В командной строке выполните:
    cd имя_каталога_программы
    net stop p3mxlook
    p3mxlook -remove
  2. Удалите каталог програмы.

Конфигурирование.

Все конфигурационные файлы это обычные текстовые файлы. Основной конфигурационный файл фильтра - p3mxlook.ini. Он должен располагаться в том же каталоге, что и файл программы. Первоначальную настройку программы нужно выполнить вручную. Т.е. отредактировать файл p3mxlook.ini с помощью любого редактора текста. Все дальнейшие операции по изменению настроек фильтра можно выполнять с помошью GUI интерфейса администрирования p3admin.zip.
В случае применения программы администрирования все изменения настроек, кроме параметров клиентского и административного соединения вступают в силу автоматически.

Файл p3mxlook.ini

Поддерживаются следующие опции.
local_ip и
local_port
IP адрес интерфейса и номер TCP порта, на котором программа будет принимать клиентские соединения.
remote_ip и
remote_port
IP адрес и номер TCP порта вашего настоящего POP3 сервера.
admin_ip и
admin_port
IP адрес интерфейса и номер TCP порта, на котором программа будет принимать соединение программы администрирования.
admin_name и
admin_pass
Логин и пароль для администрирования.
mxdebugyes/no. Выводить или нет в лог файл статистику считывания конфигурационных файлов.
p3debug yes/no. В случае запуска программы с ключом "-d" она будет работать как обычное консольное приложение. И если эта опция установлена, то на экран будут выдаваться сообщения обмена p3mxlook и POP3 сервера. А также некоторая другая отладочная информация.
neighbouringЧисло от 8 до 32 - задает маску подсети для проверки IP релея на легальность принадлежности к подсети домена e-mail отправителя.
Например: Если MX отправителя указывает на IP xxx.xxx.xxx.xxx, то при установке этого параметра в 24 ожидается, что IP релея исходящей почты должен быть в подсети xxx.xxx.xxx.000/24
Примечание: Параметр не доступен, через p3admin.exe
own_relays_fileФайл "Список адресов собственных релеев.
white_subnets_fileФайл "Белый список подсетей".
white_relays_fileФайл "Белый список имен релеев".
white_from_fileФайл "Белый список e-mail адресов"
white_rcpt_fileФайл "Список получателей".

Файл "Список адресов собственных релеев."

Содержит список подсетей, в которых могут находиться релей сервера, обслуживающие ваш почтовый домен. Здесь нужно указать как подсети для локальных релеев, так и подсети в области глобальных адресов. Каждая подсеть задается отдельной строкой. Допускаются комментарии (# - начало комментария ) и пустые строки.
Например: Ваша компания имеет 16 адресов от ISP1 - 122.122.122.160/28 и 8 адресов от ISP2 - 211.211.211.208/29. В каждой из этих подсетей есть ваш пограничный почтовик. Кроме того, ваш почтовый домен поддерживается вторичными релеями провайдеров 122.122.1.2 и 211.211.2.1. В вашей локальной сети 10.1.0.0/16 есть несколько офисных почтовиков. Таким образом ваш файл собственных релеев должен содержать строки:

122.122.122.160/28
211.211.211.208/29
122.122.1.2
211.211.2.1
10.1.0.0/16

Файл "Белый список имен релеев"

Содержит список имен релеев от которых почта должна приниматься без проверки. Как правило это релеи ваших партнеров и клиентов.
Каждое имя задается отдельной строкой.
Допускаются комментарии (# - начало комментария ) и пустые строки. Могут использоваться символы шаблона.
! - в этом знакоместе должна быть цифра;
* - буква
? - любой символ

Файл "Белый список подсетей"

Содержит список подсетей от которых почта должна приниматься без проверки. Как правило, это подсети вашей организации и подсети, которые обслуживаются вашими релеями.
Каждая подсеть задается отдельной строкой. Допускаются комментарии (# - начало комментария ) и пустые строки.
Формат записи подсети: IP.IP.IP.IP[/(0...32)]

Файл "Белый список e-mail адресов"

Список e-mail адресов отправителей, чья почта должна приниматься безоговорочно. Шаблонные символы не допускаются. Рекомендуется в файл заносить либо адрес полностью либо с указанием ведущих "@" или "."

Файл "Список получателей"

Список e-mail адресов получателей, для которых проверка не выполняется.
Шаблонные символы не допускаются. Рекомендуется в файл заносить либо адрес полностью либо с указанием ведущих "@" или "."

Лог файл.

В процессе работы программа записывает в файл p3mxlook.log результаты проверки почтовых сообщений. Формат этих записей, вобщем то, прозрачен. Лог файл можно просмотреть непосредственно текстовым редактором, либо если фильтр установлен на другом компьютере - использовать программу администрирования p3admin.

Опции запуска

-h- информация о программе
-d- запустить в отладочном, консольном режиме
-install- инсталировать программу как сервис Windows NT
-remove- деинсталировать программу как сервис Windows NT

Настройка клиента

Перенастройка клинтской почтовой программы сводится к замене IP адреса POP3 сервера на IP адрес для клиентских соединений сервиса p3mxlook (параметр local_ip в p3mxlook.ini).

Скачать

Фильтр POP3 proxy: p3mxlook_0.2.zip
GUI administrator: p3admin_0.2.zip

E-Mail для контакта находится внутри архива программы.

История

Версия 0.2

  1. Теперь формат списка собственных релеев такой же, как и для списка белых подсетей.
  2. Добавил параметр neighbouring.

Версия 0.1

Выпустил в Мир.



Перейти на домашнюю страницу



Хостинг В Украине бесплатно