John Hardin

http://www.impsec.org/email-tools/procmail-security.html

(перевод Е. Кочетов saaw@mail.ru )

Улучшение почтовой защиты с Procmail

Получение и установка sanitizer

Вернуться в начало сайта

Текущая версия sanitizer (дезинфектора): 1.148

Рекомендуется обновить Вашу копию, если Ваша версия является старей, т.к. добавлены исправления и фильтрация для новейших действий. См. историю изменений для деталей.

Правила procmail для почтового деинфектора доступны:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | RPM HTTP Mirror 1 (EU: SK) | FTP Mirror 1 (US: UT) ]

Контрольные суммы MD5 текущего sanitizer возможно скачать для проверки. Проверьте их после распаковки.

Правила procmail для почтового деинфектора без макросканирования Microsoft Office доступны:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]

Контрольные суммы MD5 текущей конфигурации sanitizer безмакросканирования возможно скачать для проверки. Проверьте их после распаковки.

Рекомендуемые списки ядовитых файлов доступны:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]

Примеры локальных правил procmail (некоторые сигнатуры червей) доступны:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]

Правила без предварительной обработки procmail доступны:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]

Состояние текущего развития правил procmail для почтовой дезинфекции (Email Sanitizer) доступно:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]
ВНИМАНИЕ! Состояние развития может считаться BETA кодом. Это может работать, может и нет, может быть некорректная работа Вашего почтового сервера. Подходите с осторожностью.

Некоторые размышления по поводу будущего развития Email Sanitizer доступны:
[ HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]

Если Вы загружаете это на системах под управлением Windows или Macintosh для использования на системах Unix или Linux, убедитесь что Вы позаботились о преобразовании текстового файла - скрипт не будет выполняться с DOS символами конца строки в нем. Один из способов сделать это состоит в том, чтобы открыть сценаий sanitizer в vi и напечатать:

:textmode on
:textmode off
:wq
Также, если Вы редактируете sanitizer в редакторе который разбивает длинные строки (например, pico) sanitizer может быть испорчен.

Tarball правил и другие полезные файлы доступны:
[ Distributed HTTP Mirror (worldwide) | HTTP Mirror 1 (US: WA) | HTTP Mirror 2 (US: FL) | HTTP Mirror 3 (EU: NO) | HTTP Mirror 4 (EU: NL) | HTTP Mirror 5 (AU) | HTTP Mirror 6 (AU) | HTTP Mirror 7 (US: WA) | FTP Mirror 1 (US: UT) ]


Безопасность Сайта

Если Вы являетесь администратором сайта и желаете обрабатывать всю электронную почту Ваших пользователей автоматически, вот как сделать это:

Требования

Инсталляция под *nix подобные (Linux, *BSD, и т.д.)

  1. Создайте директорию /etc/procmail владелец и группа root, разрешения rwxr-xr-x.

  2. Скачайте правила sanitizing и сохраните в этой директории, владелец и группа root, разрешения rw-r--r--. Если Вы используете Lynx, выделите ссылку и нажмите "D" чтобы скачать этот файл - не просматривая сохраните его, иначе будет нарушено.

  3. Читайте команды конфигурации.

Важно обратить внимание на то что очевидно: sanitizer защитит Вас только против нападений в почтовых сообщениях, которые проходят шлюз электронной почты на котором он установлен. Если Ваши пользователи способны обратиться к внешним серверам POP или к доступным через сеть почтовым системам, они все еще могут получать и становиться жертвами почтовых червей и вирусов.

Доступ к внешним серверам POP может быть заблокирован Вашим брандмауэром, но единственный способ защиты против нападений через сетевые сервисы электронной почты это пользовательское образование. Подготовьте Ваших пользователей к тому, что они могут уничтожить много ценной работы и потерять много драгоценного времени если они находят вложения от шлюзов электронной почты в сети. Внушайте им, чтобы они перенаправляли такие сообщения на свой рабочий электронный адрес, так эти сообщения могут быть обработаны.


Устранение неполадок

Если Вы получаете ошибки подобные "sendmail: illegal option -- U" см страницу конфигурации чтобы узнать как это исправить.

Procmail 3.22 имеет ошибку в VARNAME=|command-line конструкция используемая версиями sanitizer 1.133. Если Вы получаете ошибку OUT OF MEMORY, обновите текущий выпуск sanitizer.

Кажется появляется ошибка в некоторых старших версиях Procmail в которых sanitizer особенно хорошо запускается. Если Вы находите, что Ваши почтовые ящики разрушаются потому что "F" в строке "From whoever" в начале сообщения удаляется, пожалуйста обновите до текущео стабильного релиза Procmail. Если это не исправляет проблему, сообщите мне. (Есть некоторая полемика относительно того, является ли это дефектом в procmail...)

HPUX по умолчанию ограничивает командную строку 20480 символами, которая является слишком короткой для полного sanitizer и является причиной его невыполнения. См. Ваше руководство для того чтобы увеличить этот предел.

AIX имеет подобные огричения. Я не знаю, могут ли они быть откорректированы.

Если полный sanitizer ведет себя действительно странно (подобно попытке выполнить почтовое сообщение непосредственно как программу) тогда попробуйте версию без макросканирования чтобы посмотреть, не является ли проблемой ограничение размеров в системе. Переместите сценарий perl из командной строки в отдельный файл; как только это сделано эти пределы больше не будут представлять проблемы за счет наличия множества файлов для обслуживания и обновления. (Однако нам может понадобиться компилировать сценарий perl!)

Если Вы получаете Program failure (141) of "perl -p -e '... всякий раз, когда sanitizer пробует сканировать документ на макросы, Вы должны удостовериться, что mktemp и mimencode установлены правильно. AДобавьте это к Вашему файлу /etc/procmailrc для отладки:

LOG=`type mktemp`
LOG=`type mimencode`
Если каждая из этих программ не может быть найдена, макросканирование будет терпеть неудачу и крах sanitizer.

Если Вы получаете ошибки "Word too long", попробуйте добавить "SHELL=/bin/sh" или "SHELL=/bin/ksh" в /etc/procmailrc перед вызовом html-trap.procmail - csh не может обработать аргументы командной строки размер сценария Perl это находится в фильтре. Текущая версия sanitizer теперь автоматически использует sh если только Вы не решили использовать csh.

Не помещайте html-trap.procmail в /etc/procmailrcs/ как подразумевается procmail man page. Если Вы это сделаете, Вы получите ошибки защиты от Perl примерно -e и setuid scripts. Вы можете также иметь проблемы с фильтрацией писем, отправленных root по этой причине.

Это показывает, что этот сценарий perl может сдерживать пожирание памяти на некоторых системах. Если Вы начинаете получать ошибки "Out of memory" в Вашем procmail log файле, попробуйте добавить

ulimit -d 15000;
как раз перед perl -p -e в правилах MIME-sanitizing:
:0 fw
| ulimit -d 15000; perl -p -e ' #\
Вам возможно придется также увеличить жесткий предел памяти первоначально установленный для sendmail. Не добавляйте этого, если Вы не получаете ошибки "Out of memory".


 Зеркало, являющееся главным, великодушно обеспечено: Thanks muchly!

$Id: sanitizer-download.html,v 1.49 2004-10-02 11:15:12-07 jhardin Exp jhardin $
Contents Copyright (C) 2003 by John D. Hardin - All Rights Reserved.
Используются технологии uCoz