/*
 * -------------------------------------------------------------
 *
 *   Описание файла конфигурации Samba VFS SpIDer
 *   
 *  $Revision: 1.52.2.2 $
 *
 * -------------------------------------------------------------
 */

    Файл конфигурации является простым текстовым файлом, со следующими
правилами:

[Имя секции 1]
Параметр1 = значение
.....
ПараметрN = значение

.....

[Имя секции X]
Параметр1 = значение
.....
ПараметрY = значение

Описание параметров будет дано в следующей форме:

---
имя_параметра = тип_параметра (значение_по_умолчанию или "отсутствует")

описание параметра
---

Все параметры могут быть четырех типов:
- строковые (STRING), сюда относятся пути, имена, действия и т.д.;
- списки строк (STRING_LIST), это строки, разделенные запятыми;
- числовые (COUNT), это беззнаковые числа от 0 до 2^31 - 1;
- восьмеричные (OCTAL), это числа в восьмеричном представлении;
- булевы (BOOL), значениями таких переменных могут быть:
     yes, on, true - для включения,
     no, off, false - для отключения опции, заданной этим параметром,
  причем допустим любой из приведенных вариантов, без учета регистра букв.
- спецификация транспорта (ADDRESS), значения таких переменных записываются
  в следующем формате:  ТИП:ТРАНСПОРТНЫЙ_АДРЕС
  Допустимы следующие типы:
   inet - используются TCP сокеты, тогда ТРАНСПОРТНЫЙ_АДРЕС имеет следующий
         формат:
           ПОРТ@ИМЯ_ХОСТА
         ИМЯ_ХОСТА может быть как прямым IP адресом, так и доменным именем
         хоста.
         Пример:
           Address = inet:3000@localhost
   local - используются локальные UNIX сокеты, тогда ТРАНСПОРТНЫЙ_АДРЕС
         просто является путем к файлу сокета.
         Пример:
           Address = local:/opt/drweb/run/.drwebd
- список спецификаций транспортов (ADDRESS_LIST)

Рассмотрим теперь, какие же параметры могут быть заданы. 


   Секция [DaemonCommunication] описывает параметры, связанные с
взаимодействием фильтра и демона.

Address = ADDRESS_LIST (отсутствует)

Данный параметр задает транспортный адрес демона, по которому фильтр будет
выдавать задания на сканирования. Вы можете задать несколько адресов разных
демонов на разных серверах. Адрес указанный первым считается основным, остальные
резервные. Для данного параметра доступен еще один тип спецификации:
   pid - указывает, что реальный адрес должен быть прочитан из pid-файла
         демона.
         Пример:
           Address = pid:/opt/drweb/run/drwebd.pid
   Пример нескольких адресов: 
     Address = pid:/opt/drweb/run/drwebd.pid, inet:3000@srv2.example.com

Cache = BOOL (on)

Данная опция может быть использована только при использовании TCP сокетов
для связи с демоном. Если она включена (yes, on, true) и адрес хоста демона
является доменным именем, то его IP будет запрошен лишь однажды (при старте
фильтра) и в дальнейшем будет использоваться этот IP; если опция выключена,
то IP будет выясняться при каждом запросе (что является достаточно
медленной операцией).

Timeout = COUNT (0)

Данная опция задает таймаут (в секундах) на всю сессию обработки одного задания.
Если демон не смог выдать ответ в течении этого таймаута, то применяется 
действие, заданное опцией ProcessingErrors (см.ниже). Значение 0 соответствует 
бесконечному таймауту.

UseTcpNodelay = BOOL (no)

Данная опция выставляет флаг TCP_NODELAY для соединения с демоном. 
Не используйте эту опцию, если у вас нет проблем с соединением фильтра
и демона.


    Секция [Scanning] описывает параметры процесса сканирования.

HeuristicAnalysis = BOOL (on)

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

StripPath = COUNT (0)

Эта опция позволяет урезать сканируемый путь на минимальный префикс, содержащий 
StripPath разделителей пути (/). Последовательность из одного и более
разделителей (/) считается за один разделитель.
NOTE: Эта опция работает также, как параметр -p утилиты patch (man patch).
NOTE: Также см. пример после описания опции PrefixPath.
Пример: path = /some/path/to/file.ext
        StripPath = 1 -> path = some/path/to/file.ext
        StripPath = 2 -> path = path/to/file.ext

PrefixPath = STRING (absent)

Путь, который добавляется в начало всех сканируемых путей, добавление происходит
после обработки исходного пути опцией StripPath. Эти опции полезны для
организации работы chrooted MTA или Samba с non-chrooted (или chrooted в другой 
корень) DrWeb демоном.
ВНИМАНИЕ: Последним символом PrefixPath НЕ МОЖЕТ быть разделитель.
Пример: path = /some/path/to/file.ext
        PrefixPath = /my/prefix -> path = /my/prefix/some/path/to/file.ext

EXAMPLE: Полное преобразование пути к файлу
  StripPath = 3
  PrefixPath = /jail
MaxFileSizeToScan = COUNT (0)

Максимальный размер файлов (в килобайтах), которые будут проверяться. Если 
значение равно 0, то файлы любого размера будут проверяться. Если Вы 
установили значение отличное от 0, то тем самым Вы уменьшили уровень защиты,
т.к. не все файлы будут проверяться.

ScanMode = STRING (onAccess)

Режимы сканирования:
* onAccess (cиноним для onReadWrite, старое значение также допустимо) - файлы 
  будут проверяться всегда: при открытии, и при закрытии (если конечно файл 
  был модифицирован).
* onRead - файлы будут проверяться только при открытии (например при запуске).
  Оптимальнее onAccess, инфицирование все равно возможно, т.к. зараженный файл
  может быть записан на ресурс, и запущен пользователем имеющим локальный доступ
  к ресурсу (т.е. минуя smbfs).
* onWrite - файлы будут проверяться только при закрытии (если файл был 
  модифицирован). В таком режиме необходимо быть увереным, что ресурс был чист
  изначально. Тем не менее инфицирование все равно возможно, если зараженный
  файл был положен на разделяемый ресурс локально (т.е. минуя smbfs).
  Самый быстрый режим.

   Секция [Actions] описывает действия, предпринимаемые фильтром в различных
   ситуациях.

LicenseLimit = STRING (pass)

Действие, предпринимаемое если файл не был проверен из-за лицензионных
ограничений.
Допустимые действия:
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 

Infected = STRING (reject)

Действие, предпринимаемое при нахождении зараженного файла. 
Допустимые действия:
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 
cure - пытаться лечить такие файлы, если вылечить не удалось будет применено действие для Incureable  

Suspicious = STRING (reject)

Действие, предпринимаемое при нахождении "подозрительного" файла -
возможного нового вируса. 
Допустимые действия: 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Incurable = STRING (reject)

Действие, предпринимаемое для неизлечимых файлов. 
Допустимые действия:
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Adware = STRING (quarantine)

Действие, предпринимаемое если в файле найдено рекламное 
программное обеспечение.
Possible actions : 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Dialers = STRING (quarantine)

Действие, предпринимаемое если в файле найдена программа для
автоматического дозвона (обычно используемые порносайтами).
Possible actions : 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Jokes = STRING (quarantine)

Действие, предпринимаемое если в файле найдена программа-шутка.
Possible actions : 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Riskware = STRING (quarantine)

Действие, предпринимаемое если в файле найдено потенциально
опасное программное обеспечение.
Possible actions : 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Hacktools = STRING (quarantine)

Действие, предпринимаемое если в файле найдена программа
для несанкционированного доступа (взлома).
Possible actions : 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

Archives = STRING (reject)

Действие, предпринимаемое для архивов (в том числе MAIL, HTML, POWERPOINT, etc)
содержащих инфицированные файлы. Будьте осторожны при использовании этой опции,
т.к. например почтовая база, содержащая вирус, будет удалена вся. Чтобы удаление
таких архивов было возможно добавьте в /etc/drweb/drweb32.ini в секцию демона параметр
EnableDeleteArchiveAction = yes
Допустимые действия: 
reject - запретить операции с такими файлами 
discard - удалять такие файлы 
rename - запретить операции и переименовывать такие файлы 
quarantine - перемещать такие файлы в "карантин" 

SkipObject = STRING (reject)

Действие, предпринимаемое, если в файле обнаружен объект, который не может
быть проверен антивирусным демоном (например, архив, защищенный паролем или
сканирование было прервано по таймауту).
Допустимые действия: 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 

ArchiveRestriction = STRING (reject)

Действие, предпринимаемое, если в файле обнаружен архив, который не может
быть проверен антивирусным демоном, потому что уровень его сжатия (или
файл, в него вложенный) превышает ограничения, заданные в файле конфигурации
демона (см. MaxCompressionRatio, MaxFileSizeToExtract and MaxArchiveLevel в 
/etc/drweb/drweb32.ini). 
Допустимые действия: 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 

ScanningErrors = STRING (reject)

Действие, предпринимаемое, если при обработке файла в демоне возникли
ошибки (например, не хватило памяти или нет прав для доступа к файлу).
Допустимые действия: 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 

ProcessingErrors = STRING (reject)

Действие, предпринимаемое, если при обработке письма в фильтре возникли
ошибки (например, не хватило памяти или не удалось соединиться с демоном).
Допустимые действия: 
pass - разрешить операции с такими файлами 
reject - запретить операции с такими файлами 

SendNotifyToUser = BOOL (off)

Разрешить или нет уведомление пользователя о том, что вирус найден в файле.
Для уведомлений используется Windows Messenger сервис (WinPopup).

SendNotifyToAdmin = BOOL (off)

Разрешить или нет уведомление администратора о событиях возникающих во время
сканирования. Для уведомлений используется Windows Messenger сервис (WinPopup).
Уведомления отсылаются на машину с адресом AdminAddress (см. ниже).

Замечание: Для отсылки уведомлений на unix-станции можно воспользоваться 
программой LinPopup (для Linux) или добавив в smb.conf следующее:
message command = /usr/bin/mail -s Messages from %f on %m' {address} < %s ; rm %s
где {address} это почтовый адрес, на который отсылать уведомление.

AdminAddress = STRING (absent)

Адрес машины администратора, который используется для уведомлений.
Замечание: пока допустимо использовать только нотацию IP адреса.

ShellScriptForBlockedFile = STRING (absent)

Шелл-скрипт который будет запускаться на каждый блокированный файл. SpIDer 
передает скрипту следующие параметры:
* FileName - имя блокированного файла
* UserName - имя, под которым залогинился пользователь, который пытается получить
             доступ к блокированному файлу
* UserHost - хост, с которого залогинился пользователь, который пытается получить
             доступ к блокированному файлу

'
Quarantine = STRING (отсутствует)

Путь к "карантину" - каталогу, куда будут помещаться зараженные письма.

QuarantineFilesMode = OCTAL (0660)

Права, с которыми будут создаваться файлы в карантине.

QuarantineFilenamesMode = STRING (Std)

Определяет метод, по которому создаются имена файлов, попадающих в карантин, 
на данный момент поддерживаются следующие методы:
* std - стандартный, используя mkstemp (шаблон: %{QuarantineFilenamesPrefix}XXXXXX)
* tai - в TAI формате (шаблон: %sec.%usec.%{QuarantineFilenamesPrefix}XXXXXX)
      Например, этот формат может быть обработан утилитами tai2tai64n и 
      tai64nlocal из пакета daemontools.
* rand48 - используя lrand48 (: %{QuarantineFilenamesPrefix}XXXXXXXX)
      Этот формат может быть порекомендован для систем в которых неудачно
      реализована функция mkstemp (Solaris) с высокой нагрузкой  

QuarantineFilenamesPrefix = STRING (drweb.quarantine.)

Префикс для имен файлов, попадающих в карантин (см. описание 
QuarantineFilenamesMode).

    Секция [Logging] описывает параметры вывода информации о работе фильтра.

Level = STRING (Quiet)

Задает уровень детализации выводимой информации. На данный момент поддерживаются
следующие уровни: Quiet (не выводить информацию), Errors (только ошибки), 
Alerts (пред. + сообщения о вирусах), Info (пред. + информационные сообщения), 
Verbose (подробная информация), Debug (отладочный режим). Информация выводится 
с приоритетом SyslogPriority и от подсистемы SyslogFacility.

SyslogFacility = STRING ()

Тип подсистемы которая выдает сообщение о событии при использовании системного 
сервиса syslogd. Допустимые значения: Daemon, Mail, Local0 .. Local7.

SyslogPriority = STRING (Info)

Приоритет сообщений от программы при использовании системного сервиса syslogd.
Допустимые значения: Debug, Info, Notice, Alert.

