/*
 * -----------------------------------------------------------
 *
 *   Integration Dr.Web(R) daemon and Postfix Mailer
 *
 * -----------------------------------------------------------
 */

1. Требования
2. Как это работает
3. Как включить антивирусную проверку в Postfix
4. Настройки
5. Контакты


        1. Требования

- Запущенный Dr.Web Daemon (drwebd) версии не ниже 4.33.
- Postfix версии 20000530 или выше.


        2. Как это работает

В данной схеме реализована фильтрация сообщений с использованием
первого способа, предлагаемого почтовым сервером Postfix:

      ..................................
      :            Postfix             :
   ----->smtpd \                /local---->
      :         -cleanup->queue-       :
   ---->pickup /                \smtp----->
   ^  :                        |       :
   |  :                         \pipe-----+
   |  ..................................  |
   |                                      |
   +----- sendmail <------ drweb <--------+

Фильтр drweb-postfix получает на вход письмо и сохраняет его во
временном файле, после этого фильтр сообщает антивирусному демону,
где находится объект для проверки; при этом само письмо не передается
через транспортное соединение между фильтром и демоном, что значительно
повышает производительность. После проверки фильтр производит следующие
действия:

- если все нормально, то письмо перенаправляется в очередь для отправки
  при помощи sendmail;

- если обнаружены вирусы, то письмо переносится в архив, а отправителю
  и администратору отправляется уведомление.


        3. Как включить антивирусную проверку

Для того чтобы подключить антивирусный демон Dr.Web, необходимо
выполнить следующие шаги.

1 - Создать пользовательский бюджет drweb, с которого невозможно
    зарегистрироваться в системе. Этот бюджет будет использован фильтром
    в целях безопасности. Удобно, если от имени этого же пользователя
    будет работать и демон.

2 - Создать каталог (например, /var/spool/drweb), который будет доступен
    только пользователю drweb и доступен на чтение пользователю, от
    имени которого исполняется демон drwebd.

3 - Добавить следующие строки в Postfix master file (master.cf),
    расположение которого задается при установке Postfix (вместо
    {drweb-directory} вставить путь к исполняемому файлу drweb-postfix):

    если конфигурационный файл на пути по умолчанию:

    filter    unix  -   n   n   -   -   pipe
        flags=R user=drweb argv={drweb-directory}/drweb-postfix -f ${sender} -- ${recipient}

    или

    filter    unix  -   n   n   -   -   pipe
        flags=R user=drweb argv={drweb-directory}/drweb-postfix --conf={/path/to/your/conf/file} -f ${sender} -- ${recipient}.

    Внимание: {path/to/conf/file} должен содержать и имя файла тоже.

    Вы должны указать опцию -s для вызова drweb-postfix, если вы
    планируете использовать два каталога для временных файлов (для
    маленьких и больших писем, также см. в conf_file.rus.txt описание
    параметров RamSpool и RamThreshold). Тогда фильтр должен быть
    определен так:

    filter    unix  -   n   n   -   -   pipe
        flags=R user=drweb argv={drweb-directory}/drweb-postfix -s ${size} -f ${sender} -- ${recipient}.
                    
4 - Отредактировать файл конфигурации (см. раздел 4).

5 - Указать Postfix, что надо проверять все письма, приходящие через
    SMTP. Для этого необходимо найти в Postfix master file следущую
    запись (параметры n - n - - могут отличаться):

    smtp          inet  n       -       n       -       -       smtpd

    и замените ее на:

    smtp          inet  n       -       n       -       NN      smtpd -o content_filter=filter:dummy.

    (Рекомендация: лучше, если число NN (макс. кол-во процессов,
    исполняемых сервером postfix) совпадает с опцией MaxChildren из
    drweb32.ini, можете использовать и - (минус), если не хотите этого
    ограничения.)

6 - Перезапустить Postfix.

Замечание: Для более подробной информации о настройках фильтров в
Postfix смотрите документацию Postfix, например здесь:
http://www.postfix.org/FILTER_README.html


        4. Настройки
    
Параметры работы фильтра задаются в файле конфигурации. При старте без
параметров фильтр пытается найти файл конфигурации в стандартных (для
фильтра) каталогах, которые можно узнать, просто запустив фильтр из
консоли:

$ drweb-postfix --help

Описание файла конфигурации фильтра, шаблонов уведомлений и списков
исключаемых из проверки пользователей вы найдете в файлах conf_file.rus,
notify_template.rus.txt и users_list.rus.txt соответственно.

Для того, чтобы узнать версию фильтра, просто запустите его со следующим
параметром:

$ drweb-postfix --version

Вы можете запустить фильтр в режиме проверки конфигурационного файла:

$ drweb-postfix --check_only

или

$ drweb-postfix --check_only --check_user={USER}
        
При этом фильтр запустится (сменит уровень привилегии на {USER}),
прочитает конфигурационный файл и проверит параметры, которые возможно
проверить. О своих действиях он будет сообщать на стандартный поток
вывода (stdout).

    
        5. Контакты

Программа Dr.Web находится в постоянном развитии, наиболее свежую
информацию о ее обновлениях и новости можно получить на сайтах:
  http://www.drweb.com

Отдел продаж:
  http://buy.drweb.com
  e-mail: sales@drweb.com

Консультации пользователей осуществляются по следующим адресам:
  http://support.drweb.com
  e-mail: support@drweb.com

В письме желательно дать следующую дополнительную информацию, которая
поможет лучше разобраться в ситуации:

- полное название и версию дистрибутива Unix-системы;
- версию программы Dr.Web;
- версии приложений и фильтров, с которыми интегрируется Dr.Web Daemon;
- конфигурационные файлы: демона (drweb32.ini), drweb_postfix.conf;
- логи: демона и почтовые (обычно maillog).
