Общие настройки

Конфигурационный файл (/usr/local/ucfp/etc/config) состоит из секций (названия секций задаются в квадратных скобках):

[ucfp.common] - общие настройки
[ucfp.logs] - настройки логов
[ucfp.hold] - настройки схемы удержания
[ucfp.check] - настройки параметров антивирусной проверки
[ucfp.notify] - настройки оповещения администратора
[ucfp.license] - настройки лицензирования
[ucfp.control] - настройки управления
[ucfp.stat] - настройки ведения статистики


Секция common (общие настройки)

Мы рекомендуем схему работы №3, где под proxy в большинстве случаев подразумевается squid. Преимущества этой схемы:

  • Кэширование трафика

  • При выключении UCFP squid автоматически переключится на работу "напрямую"

Параметры этой секции:

listen = address:port Интерфейс и порт, который "слушает" UCFP. Рекомендуется "слушать":

  • локальный интерфейс если UCFP является единственным прокси на сервере (на firewall следует разрешить коннекты из LAN на используемый UCFP порт)
  • 127.0.0.1 если ufcp используется по схемам № 3 и 5 (LAN -> squid -> UCFP -> [ISP Proxy] -> internet) и squid находится на этом же сервере (см. раздел FAQ: Настройка squid).
Если "пусто", то = default.
Примечание: Может быть или один интерфейс или *, т.е. все.
Default: *:12345

peer_address = address:port Если параметр задан, то UCFP перенаправляет все запросы на указанные адрес и порт.
Примечание: Актуален для схем работы № 2,4,6. Если же UCFP работает по другим схемам (отправляет запросы напрямую в Internet), то параметр пустой.
Default: "пусто"

behavior = stop/pass Параметр, указывающий на то, как поступит UCFP в случае, если по какой-либо причине не получит ответа от kavdaemon-а (например если kavdaemon не запущен).
stop - вместо запрашиваемого файла клиенту будет возвращена ошибка
pass- пропустит файл непроверенным. Если "пусто", то = default
Default: pass

db_swap = yes/no Использование свопинга для баз данных
Примечание: Значение этого параметра влияет на объем занимаемой памяти и скорость обработки запросов (см. разделы "FAQ: Минимальные требования" и "FAQ: Скорость работы").
Default: yes

errors_templates_folder = foldername Папка с html-шаблонами об ошибках ("Virus found", "URL is blocked", "Server reject query" и т.д.). Все возможные шаблоны входят в дистрибутив.
Default: /usr/local/ucfp/errors

db_folder = foldername Папка для хранения баз данных.
Default: /usr/local/ucfp/db

tpl_folder = foldername Папка для хранения предустановленных шаблонов
Default: /usr/local/ucfp/tpl

tmp_folder = foldername Папка для хранения временных списков запрета доступа
Default: /usr/local/ucfp/lists.tmp

quarantine = foldername Папка карантина, куда помещаются копии всех обнаруженных вирусов. Если "пусто", то карантин не используется.
Примечание: Карантин ведется в следущем виде, например, для файла ftp://ftp.relans.ru/test/eicar.com будет создана папка /usr/local/ucfp/quarantine/ftp.relans.ru и в нее будет помещен файл eicar.com.
Default: /usr/local/ucfp/quarantine

ctl_socket = filename Управляющий сокет UCFP.
Default: /var/run/ucfp.ctl

kav_version = 4/5 Версия КАВ. Поддерживаются версии 4.x и 5.x.
Default: 5

kav_socket = filename Сокет КАВ демона. Для версии 5 по умолчанию /var/run/aveserver, для версии 4 всегда /var/run/AvpCtl
Default: /var/run/aveserver

hostname = IP_address - имя сервера, на котором запущен UCFP. Используется для запросов к внутреннему http-серверу UCFP, который генерирует сообщения об ошибках ("отказано в доступе", "обнаружен вирус" и т.п.). Рекомендуется использовать IP адрес локального интерфейса.

internal_address = address - URL для запросов к внутреннему http-серверу UCFP, который генерирует сообщения об ошибках ("отказано в доступе", "обнаружен вирус" и т.п.). В отличии от hostname возможно указание любого адреса и протокола.
Default: значение параметра hostname

tmp_dir = foldername Временная папка. Если "пусто", то = default
Default: /tmp

db_swap_dir = foldername Папка для свопинга баз данных.
Default: значение параметра tmp_dir

forwarded_for = yes/no/строка
yes - UCFP отдаст дальше полученное значение хэдера X-Forwarded-For
no или "пусто" - хэдер не передается
строка - хэдера X-Forwarded-For передается с указанным значением
Если UCFP работает по схемам №3 и 5, то см. раздел Примечания: хэдер X-Forwarded-For
Default: "пусто"

connect_ports = номера портов, к которым разрешен метод CONNECT через UCFP. См. раздел Примечания: Перечисление значений параметров. 5190 - используется ICQ, 443 - SSL.
Default: 443, 5190

nameservers = IP_address - IP-адреса DNS-серверов. Если параметр не указан то IP-адреса DNS-серверов берутся из /etc/resolv.conf.
Default: "пусто"

resolver_timeout = кол-во секунд ожидания ответа от DNS-сервера.
Default: 5

resolver_tries = кол-во попыток опроса каждого DNS-сервера.
Default: 2

enable_dns_lookup = yes/no Проверка IP-адресов в базах данных.
Default: "yes"


Секция logs (настройки логов)

Формат файла отчета уровня 0:

Дата время IP_клиента логин_клиента код_ответа/тип_запроса IP_сервера URL тип_контента размер_файла статус_проверки [результат_проверки] [кто_проверял] [информация]

Поле "статус_проверки" может принимать значения:
yes - проверка была произведена
no - проверки не было (поля "кто_проверял", "результат_проверки" и "информация" пустые)

Поле "результат_проверки" может принимать значения:
allow - проверка была произведена, доступ разрешен.
block - данный ресурс содержится в одном из черных списков/баз или, в результате анализа контента, данная страница была отнесена к одной из категории фильтрации.

Поле "информация" содержит или название вируса, или наименование листа/базы, или суммарный балл анализатора.

Поле "кто_проверял" может принимать значения:
KAV - антивирусная проверка
CF - анализатор контента

См. раздел Примеры: Примеры отчета

Параметры этой секции:

append = yes/no Добаление в файл лога после рестарта программы. Если "пусто", то = default.
yes - файл логов не обнуляется
no - при старте программы лог начинает вестись заново
Default: yes

logfile = filename Файл отчета. Если "пусто", то лог не ведется.
Default: /var/log/ucfp.log

loglevel = Числовой показатель уровня глубины логирования (от 0 до 3). Чем выше числовой показатель, тем более детально в логах описывается работа программы (например, на уровне 2 предоставляется детальная информация о работе анализатора контента). Использование ненулевого уровня в обычном режиме работы не рекомендуется, т.к. это заметно уменьшает быстродействие.
Default: 0

show_all = yes/no
yes - в отчет пишется информация о всех прошедших через UCFP файлах
no - только информация о зараженных и заблокированных объектах.
Если "пусто", то = default.
Default: yes

banners = yes/no
Запись в отчет информации о блокировках баннеров.
Если "пусто", то = default.
Default: yes


Секция hold (настройки схемы удержания)

Работа схемы удержания

Основным преимуществом предлагаемого продукта (UCFP) является возможность работы в режиме удержания. Проиллюстрируем работу схемы удержания на примере:

Клиент посылает запрос на скачивание файла размером 10Мб, скорость скачивания 6Мб/мин (1Мб/10 сек), значение удержания равно 20%. Закачка происходит в два этапа:

  • Первый этап: составляет 20 сек. В течение этого времени скачиваются 20% (2Мб) запрашиваемого файла, которые сохраняются во временную папку на сервере. В течение 20 секунд клиент не получает информации от UCFP, пользователь видит на экране застывший индикатор прогресса. После получения первых 20% файл размером 2Мб проверяется kavdaemon-ом и:
    в случае обнаружения в нем вредоносного кода, дальнейшее скачивание прекращается, клиенту отдается html-страница с соответствующим сообщением, предпринимаются некоторые действия, указанные администратором;
    если в первых 2Мб вируса нет, то скорость передачи данных клиенту вычисляется, исходя из следующих соображений: необходимо "растянуть" передачу клиенту полученных 2Мб настолько, чтобы за это время успеть скачать оставшиеся 8Мб. Скорость закачки примерно известна - оставшиеся 8Мб будет получено за 80 секунд. Итого получается, что UCFP должен отдать клиенту 2Мб за 80 секунд, т.е. скорость отдачи клиенту первой части запрашиваемого им файла будет составлять 25Кб/сек.

  • Второй этап: продолжается 80 секунд и состоит из двух параллельных процессов: UCFP отдает клиенту скачанные в первом этапе 2Мб со скоростью 25Кб/сек (на мониторе пользователя медленно двигается индикатор прогресса закачки, с точки зрения пользователя все выглядит как "плохой интернет-канал") и одновременно докачивает оставшиеся 8Мб.
    После окончания докачки полученный UCFP конечный файл размером в 10Мб проверяется kavdaemon-ом и если вирус в нем не обнаружен отдается с высокой скоростью клиенту.

Основные преимущества схемы удержания:

  • Используя процент удержания, администратор имеет возможность регулировать время, проведенное его пользователями перед неподвижным экраном. Опыт внедрения существующих продуктов, использующих 100%-ное удержание, показывает, что если пользователь не получает ответа на запрос в течение 10-20 секунд, он решает, что ресурс просто недоступен и отменяет запрос, при этом в большинстве случаев прокси докачивает файл до конца и потом его удаляет.
  • Известно, что Антивирус Касперского в большинстве случаев способен обнаружить вирус в первых 5-20Кб файла, поэтому проверка в два этапа может сэкономить трафик.
  • Режим 100% удержания не исключен, но UCFP предоставляет администратору выбор.
  • У администратора есть возможность регулировать минимальный размер файлов, к которым будет применена данная схема (параметр hold_min_size), т.к. проверять в два этапа файлы размером 10-100Кб нет необходимости.
  • Администратор имеет возможность задать размер первого этапа в байтах (параметр hold_size).
Примечание: В единичных случаях запрашиваемый сервер не отдает UCFP размер файла. В такой ситуации существующие на рынке продукты оставляют клиента (т.е. пользователя) перед неподвижным экраном до завершения закачки и проверки файла антивирусом. В UCFP администратор имеет возможность применять к подобным файлам схему удержания, используя параметр hold_min_ size, указывающий размер первого этапа в байтах. Таким образом пользователь через короткое время видит, что произошла закачка некоторой части запрашиваемого файла и, следовательно, не отменит запрос.

Параметры этой секции:

known_size_hold_perc = процент удержания при известном размере запрашиваемого файла. Значения "пусто", 100 и 0 - удержание не используется. При этом если hold_size не равен 0, то используется размер удержания.
Default: 20

hold_size = размер удержания запрашиваемого файла в байтах. Значения "пусто" и 0 - удержание не используется. Если размер файла известен и known_size_hold_perc не равен 0, то используется процент удержания. Рекомендуемое значение в диапазоне от 100000 до 500000 (выбор конкретного значения зависит от скорости канала).
Default: 200000

hold_min_size = минимальный размер (файла в байтах), при котором используется схема удержания. Значения "пусто" и 0 - ограничения нет, т.е. схема используется всегда на любом файле.
Default: 150000

not_hold_ext = список расширенийфайлов, для которых будет использоваться схема удержания, но не будет производится антивирусная проверка первой части файла. Рекомендуется перечислить все известные расширения архивов, т.к. проверить антивирусом часть архива невозможно. Перечисление через ",". * означает "не выполнять проверку первой части для всех файлов". См. раздел Примечания: Перечисление значений параметров
Default: arj,cab,gz,lzh,rar,tar,tgz,zip,bz2,sbz2,stbz2,bzip,iso


Секция check (настройки параметров антивирусной проверки)

См. разделы Примечания: Перечисление значений параметров и Примечания: Типы контента

Параметры этой секции:

max_check_size = числовой параметр Файлы больше указанного размера не будут передаваться антивирусу для проверки. "пусто" - параметр не используется.
Default: "пусто"

block_suspicious = yes/no Блокировать доступ к ресурсам, которым в результате антивирусной проверки был присвоен статус "подозрительный".
Default: no

check_ext - расширения файлов, которые будут проверены антивирусом.
Default: "пусто"

check_ct - типы контента файлов, которые будут проверены антивирусом.
Default: "пусто"

check_ranged = yes/no Необходимость антивирусной проверки запросов с хедером Range (см. раздел "Многопоточная закачка").
Default: "yes"


Секция notify (настройки оповещения администратора)

Параметры этой секции:

license_notify_script = filename Файл скрипта для оповещения о лицензировании.
mail_notify - для оповещения администратора по e-mail
popup_notify - для оповещения администратора по winpopup
Если "пусто" оповещения не используются.
Default: /usr/local/ucfp/notifies/mail_notify

admin_addr = IP или e-mail адрес администратора для отправки оповещений. "пусто" - оповещения не используются.
Default: "пусто"

notify_timeout = числовое значение таймаута в секундах, в течение которого не будет повторных нотификации. Этот параметр полезен, если Вы используете оповещение администратора по email.
Default: 5


Секция license (настройки лицензирования)

Параметры этой секции:

keyfile = filename Ключевой файл.

    Поддерживаются два типа лицензирования:
  • по количеству ip-адресов клиентов
  • по объему трафика
При лицензировании по количеству ip-адресов клиентов UCFP считает количество уникальных IP-адресов клиентов, от которых получены запросы, при этом запросы от клиентов, порядковый номер которых превышает количество купленных лицензий, не проверяются, о чем в лог вносится соответствующая запись (также возможно оповещение администратора).
Важно: Без ключевого файла UCFP не проверяет каждый третий запрос (См. раздел Примечания: Ограничения пробной версии).

notify_threshold = числовое значение, которое задает ту разницу между достигнутым значением счетчика лицензий или трафика и их количеством, при которой администратор получит соответствующее уведомление.
0 - оповещение при равенстве. "пусто" - оповещение не используется.
Default: 1

check_clients = filename Список лицензионных ip-адресов. В этот список UCFP автоматически добавляет все лицензированные ip-адреса. Если "пусто" = default.
Default: /usr/local/ucfp/etc/clients/checked

auto = yes/no
yes - автоматически дополнять check_clients при поступлении запросов от новых клиентов
no - не менять check_clients, т.е. работать с вручную сформированным администратором списком лицензированных IP адресов.
Default: yes

dhcp_mode = yes/no
yes - автоматически очищать check_clients раз в сутки (только при auto=yes)
Default: no

См. раздел Примечания: Переменные скрипта для извещения администратора


Секция control (настройки управления)

Параметры этой секции:

objects = filename Файл с описанием объектов (Cм. раздел Настройки: Объекты)
Default: /usr/local/ucfp/etc/objects

lists = filename Файл с описанием категорий (Cм. раздел Настройки: Категории)
Default: /usr/local/ucfp/etc/lists

rules = filename Файл с описанием правил (Cм. раздел Настройки: Правила)
Default: /usr/local/ucfp/etc/rules

ucfpdb = filename Файл с настройками обновлений (Cм. раздел Настройки: Обновления)
Default: /usr/local/ucfp/etc/ucfpdb

limits = filename Файл с правилами лимитирования трафика (Cм. раздел Настройки: Лимиты)
Default: /usr/local/ucfp/etc/limits

unlimited = filename Файл с серверами, на которые нет лимита доступа (Cм. раздел Настройки: Лимиты)
Default: /usr/local/ucfp/etc/unlimited


Секция stat (настройка статистики)

Cм. раздел Настройки: Статистика