Локальный сервер обновлений Comodo Internet Security

  • Tutorial
В этой инструкции будет детально прописан процесс поднятия своего локального сервера обновлений Comodo на Windows без использования каких-либо платных компонентов. В отличие от Comodo Offline Updater и аналогов нет необходимости настраивать прокси на стороне клиента.

Требования:

  • ОС: Windows 7 SP1 и выше или Windows Server 2008 и выше (для 7 и 2008 понадобится WMF 3.0 или WMF 4.0)
  • Модуль URL Rewrite 2.1
  • Скрипт выкачивания обновлений на PowerShell
  • 7-Zip

В качестве сервера будет использована Windows 7 SP1 Pro x64 (IIS 6.7). Для более новых ОС установка и настройка аналогична.

1) Установка IIS


«Включение или отключение компонентов Windows» в разделе «Установка и удаление программ», отметьте «Службы IIS» для установки. Автоматически отмеченных компонентов достаточно.



2) Скрипт и логика скачивания обновлений


Скрипт написан на PowerShell v4, поэтому для корректной работы на Windows 7 нужно обновление WMF4.0. Перезагрузка после установки обязательна. Так же необходим 7-Zip для распаковок. Само собой чтобы запускать скрипт, необходимо перевести политику выполнения PS в Unrestricted. Делается это командой Set-ExecutionPolicy Unrestricted.

Обновления Comodo разделяются на 2 части: базы и обновления самой программы. Файлы обеих частей могут быть упакованными или нет. Я рекомендую использовать упакованные, так как дискового пространства они занимают гораздо меньше — 290Мб против 635Мб только по базам.
COU.ps1


Список изменений
v6 — Устранена проблема отсутствия инкрементальных баз в некоторых случаях, исправлена очистка баз.
v6.1 — В очередном обновлении изменили deletevendors.txt на delven.txt.

В скрипте используются следующие пользовательские переменные:

$7z — Путь к 7z.exe
$downloadpath — Путь для скачивания, папки создаются автоматически. В данном примере — «C:\inetpub\wwwroot»
$serverurl — Сервер Comodo, с которого производится скачивание
$inis — Ветка обновления, об этом ниже
$proto — Версия распознователя
$xx — Битность для скачивания («x32»,«x64»), можно указывать только одну
$cispacked — Скачивание упакованных (*.7z) обновлений или нет. Возможные значения: $True или $False
$avpacked — Скачивание упакованных (*.cav.z) баз. Возможные значения: $True или $False
$release_notes — Скачивание Release Notes. Возможные значения: $True или $False.

Касательно веток обновления программы: до версии 8.2.0.4508 включительно используется inis_4010, далее — любая существующая выше, к примеру 4080. То есть если у вас есть необходимость обновлять клиентов версий 8 и ниже, то необходимо выкачать inis_4010 ($inis = «4010», $proto = «6») и актуальную ($inis = «4080», $proto = «10»). Таким образом у меня получилось обновиться с v6 до актуальной v10 с двумя перезагрузками без каких-либо проблем.

Для облегчения администрирования у скрипта есть 3 параметра запуска:

cis — скачивание обновления программы
av — скачивание баз
av-clean — удаление устаревших баз
Остается только добавить задания с заданной периодичностью в Планировщик задач.

Пример добавления




3) Настройка IIS


В данном примере будет использован Default Web Site, созданный автоматически.
Для отладки рекомендую включить «Просмотр каталога». Для этого нужно выбрать нужный сайт, перейти в меню «Просмотр каталога» и нажать «Включить» в правой части.

Для корректного скачивания обновлений необходима настройка Типов MIME: в соответствующем пункте меню необходимо добавить расширения файлов и присвоить им тип application/octet-stream.

Типы MIME для упакованных обновлений
.ini
.7z

Типы MIME для неупакованных обновлений
.xml
.ini
.dat
.lang
.set
.theme
.sys
.cav

4) Модуль Rewrite


Установка модуля URL Rewrite 2.1 тривиальна. Этот модуль необходим для перенаправления в нужную ветку inis_.
После установки необходимо открыть заново Диспетчер служб IIS, иначе соответствующий пункт меню не будет виден. Для настройки необходимо перейти в пункт «Переопределение URL-адресов» и добавить пустое правило для входящего трафика со следующим содержимым:

Имя: произвольно
Шаблон:
(cis/download/updates/release/inis)_[0-9]*/(.*)
URL-адрес переопределения:
{R:1}_4080/{R:2}

В последнем адресе указываете те цифры, которые указаны в скрипте в переменной $inis.

Картинка для самопроверки


Если же вам необходимо обновлять устаревшие версии, то необходимо создать еще одно правило выше.

Имя: произвольно
Шаблон:
(cis/download/updates/release/inis)_[0-9]*/(.*)
Условия (совпадение с любым из элементов):
{REQUEST_URI}, .*/inis_40[0-1]0/.* и {REQUEST_URI}, .*/inis_[1-3][0-9]*/.*
URL-адрес переопределения:
{R:1}_4010/{R:2}
Остановить обработку последующих правил

Картинка для самопроверки


На этом настройка серверной части окончена.

5) Настройка клиентов на локальный сервер


Проще всего это сделать вручную или через реестр. В реестре список серверов обновления находится по адресу HKEY_LOCAL_MACHINE\SOFTWARE\COMODO\CIS\Options в параметре UpdateURL.
К примеру, так выглядит этот параметр при настройке на сервер av.local и отключении сервера по умолчанию: av.local !https://download.comodo.com/

В итоге вы получаете локальный сервер обновлений Comodo и значительно снижаете нагрузку на внешний канал.
Поделиться публикацией

Похожие публикации

Комментарии 1

    0
    А еще можно просто проксировать запросы с кешем. :)

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое