Обновление антивируса Comodo через локальную сеть

Скрипт автоматического обновления бесплатного антивируса Comodo. Устанавливается на Linux сервере.

Что делает?

Запускается планировщиком, например cron, и скачивает антивирусные базы с сервера Comodo на локальный диск linux-сервера. В настройках антивируса компьютеров локальной сети прописываем наш linux-сервер и они начинают обновляться не из интернета, а с нашего сервера.

Зачем?

Если в вашей организации все компьютеры имеют доступ в интернет, канал хороший и трафик бесплатный, то вам такая штука не нужна. Уменьшить интернет-трафик, уменьшить длительность обновления антивируса, а так же предоставить автоматическое обновление компьютерам, которым по той, а скорее иной причине доступ в интернет закрыт — вот зачем нужно весь этот огород городить.

Требования к …

Железо может быть практически любое. Главные требования — свободное место на диске гигов 5 под базы и чтобы операционка была Linux или похожая. Я рекомендую поставить Debian на виртуальной машине с диском гигов 20. Графических оболочек не надо, всё настраивается через командную строку.

Как установить?

Раз уж вы сумели установить Linux, то запустить скрипт не составит труда. Сперва проделаем подготовительные операции. Нам надо установить веб-сервер, например Apache. В Debian-подобных, в том числе Ubuntu, это делается командой sudo apt-get install apache2. В CentOS yum install httpd. Далее во всех хитросплетениях конфигурации апача надо найти где же находится корень документов, где хранится наш веб-сайт. По-умолчанию этот путь обычно /var/www. Запоминаем путь, он нам ещё пригодится.

Далее скачиваем по ссылке приведенной в конце скрипт. Распаковываем, например, в /usr/local/bin. Дальше скрипт необходимо подредактировать, а именно найти строчку DIR=/var/www. Вот вместо /var/www надо вписать тот самый корень веб-документов из предыдущего шага. Запустите скрипт /usr/local/bin/comodo_update.sh и создадутся все необходимые каталоги веб-сервера, базы скачаются из интернета и сохранятся в нужном месте.

Чтобы базы сами обновлялись раз в час необходимо создать файл /etc/cron.d/comodo с текстом 11 * * * * root /usr/local/bin/comodo_update.sh

Где скачать?

Скачать здесь

Ничего не получается, как быть?

Скрипт обновления раcпространяется под лицензией GPL v2, то есть без всяких гарантий и поддержки. Но чем смогу помогу. Оставляйте свои вопросы и пожелания в каментах.

Что ещё почитать?

Ну, этот блог можно. Можно форум http://forums.comodo.com, там даже русскоязычный раздел есть.

Какие изменения были от версии к версии?

2016.05.01

— Добавлены настройки для актуальных версий

2014.12.12

— Добавлены настройки для 8 версии

— Добавлено обновление баз данных сайтов

— Добавлено обновление баз Viruscope

2013.05.01

— Для всех текущих версий антивирусов (аж до 6.1) версия баз остаётся 5.8. Версия модулей от 1800 и до … Поэтому добавлена возможность для одной версии базы указать несколько версий модулей. Указываются они в массиве _VAR через пробел. Для тех кто не понял — не заморачивайтесь, качайте новую версию, там уже всё указано и исправлено.

2012.02.17

— Доработан алгоритм обновления. Теперь используются преимущественно кумулятивные обновления, а полная база обновляется редко. Резко сократился трафик.

2011.12.22

— Исправлена ошибка, из-за которой неправильно скачивались обновления самого антивируса.

2011.10.25

— Скачивает базы в новом формате упакованные 7zip.

— Добавлено обновление версии 5.8.

— Убрано обновление всех версий с 5.0 по 5.4, ибо они старые и ненужные. Таким образом, обновляются только версии 5.5 и 5.8.

2011.07.02

— Первоначальная версия

82 Responses to “Обновление антивируса Comodo через локальную сеть”

  1. Иван:

    Спасибо! Зачетная статья. Давно искал способ обновлять антивири с сервака.
    Кстати, в связи с выходом нового Комода можно сделать кое-какие изменения:
    1. Изменить адрес загрузок (на старом есть не все версии обновлений) на download.comodo.com
    2.Добавить версию 5,8, для этого в 14 строке скрипта через пробел добавить 58 и в разделе # Program to modules version association добавить _VER[58]=»1800″.
    А так — все круто!

  2. Иван:

    Кстати, еще: в целях экономии траффика можно вместо файлов *cav загружать *cav.z. (соответственно меняем скрипт).

  3. admin:

    Вы попробуйте версию 2011.10.25. В ней исправлено много ошибок и скачивается как раз cav.z

  4. Альберт:

    Скажите как добавить в скрипт поддержку обновлений версий с 5.0 по 5.4? И где можно найти информацию о том, что менять в скрипте когда будут новые версии. Спасибо.

    • admin:

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

      Что касается добавления последующих версий. В начале скрипта задаётся переменная VER. Через пробел перечислены версии, базы к которым скрипт скачивает. В данный момент это «55 58». Таким образом, добавив, например, 59 мы будем иметь на сервере обновление баз к версии 5.9. Есть ещё одна хитрость. Дело в том, что есть ещё обновления самого антивируса (программных модулей). Для того чтобы скачивались эти модули надо в районе 108 строки добавить соответствие версии антивируса версии модулей. Для версии 5.8, как мы видим, версия модулей 1800. Какая версия модулей будет у 5.9 я не знаю.

      Но на самом деле вам не надо копаться в коде. При выходе новой версии Comodo я буду вносить соответствующие изменения в скрипт и выкладывать его здесь.

  5. Альберт:

    Столкнулся с такой странностью. Пока нет доступа к интернету, локальное обновление выдает ошибку — проверьте подключение. Если есть доступ, то все нормально — обновляется из сети как положено. Можете подсказать где копаться? Ну и про версию 5.9, когда можно ожидать обновленный скрипт?

    • admin:

      Возьмите программу TcpDump. Она вроде как и под Windows есть. С её помощью посмотрите куда лезет Comodo. Что же касается версии 5.9 — так вроде она ещё не вышла. По крайней мере на официальном сайте только 5.8.

  6. Альберт:

    У меня обновилась до 5.9 сегодня

  7. Альберт:

    Спасибо!

  8. Алексей:

    За скрипт спасибо
    Только вот смущает, что он постоянно тянет базу с нуля — 170 Мб. Ну и обновляется, после этого, на компах, соответственно, он тоже очень не быстро.
    Кумулятивные обновления никак не сделать?

    • admin:

      Кумулятивные обновления как раз работают. Их около 150. После исчерпания этого количества идёт полное обновление баз.

      • Алексей:

        до 150ти у меня ни разу не доходило

        • Иван:

          Присоединяюсь к вопросу. Раньше в файле versioninfo.ini были следующие значения:
          MaxDiff=150
          MaxDiffLimit=150
          А теперь:
          MaxDiff=0
          MaxDiffLimit=0
          Потому, как мне кажется, антивирус-то и тянет каждый раз полную базу. Я это вижу по логам сквида (у меня комодо обновляется через прокси, не спрашивайте зачем, мне так удобнее).

          • Иван:

            Предлагаю перед выведением переменных о версиях баз сделать такое вычисление:
            let max=$MaxAvailVersion-$MaxBase
            А потом вместо нулей в ini-файл занести эту переменную (в моем случае — $max). Поправьте, если я не прав.

  9. Иван:

    Внес изменения, о которых я писал выше, и объем траффика резко сократился. Думаю, что стоит внести это исправление. Если что, могу прислать свой файлик.

    • admin:

      Насколько я понял, обновление антивируса делается так.
      A) Для того чтобы обновить свежеустановленный антивирус надо файл полной базы + кумулятивные обновления после этой базы.
      B) Для того чтобы обновить свежий антивирус надо взять номер последнего обновления и скачать все последующие кумулятивные.
      C) Если компьютер не включался месяц, то делаем как в п.A.

      Что нам даёт Comodo в файле versioninfo.ini?
      1. Есть параметр MaxBase — это номер полной базы. Её всё равно качать надо!! (см п.А и С).
      2. Есть параметр MaxAvailVersion — это максимальный номер обновления. То есть скачиваем все кумулятивные обновления от MaxBase+1 до MaxAvailVersion

      Таким образом, мы имеем на нашем сервере полную базу и все последующие кумулятивные обновления. Что-то из этого не качать не получится, иначе в случае A и С у вас ничего не будет обновляться.

      3. Есть параметр MaxDiff — это как раз для того чтобы уже при локальном обновлении антивирус не тянул полную базу. Это сколько кумулятивных обновлений доступно на сервере ДО MaxBase. У меня на сегодняшний момент все обновления до MaxBase стираются, поэтому я эти значения обнуляю.

      Сейчас тестирую новую версию, где это всё будет устранено.

  10. Алексей:

    Полёт нормальный. Спасибо
    Полную базу пока ни разу не вытягивало, только кумулятивные обновки.
    Единственное, моя бубунта через раз кроном скрипт пускает. Разбираюсь.

  11. Альберт:

    Вопрос по обновлению программы. Если ставить локальное обновление, то при запуске обновления программы, обновления находит, начинается процесс загрузки, но затем выдает ошибку — файл неполный. Обновления из интернета тянутся без проблем. В чем может быть проблема?

    • admin:

      Это может быть неправильная настройка веб-сервера, но маловероятно. Скорее всего обновления выкачались либо не полностью, либо с ошибкой. Совет такой:
      1. Убедитесь что установлена именно версия 2012.02.17.
      2. Запустите скрипт обновления снова.
      3. Попробуйте обновить антивирус.

  12. Николай:

    Возник вопрос по обновлению программы. Скрипт скачивает около 500 Мб с сайта комодо. Сделали зеркало (локальный веб-сервер), но компьютеры обновляться не желают.
    Возможно ли. что, это связано с тем, что сама версия антивируса сменилась на 5.10.228257.2253? И, собственно, скрипт не качает для нее обновления?

    • admin:

      Нет. Версия 5.10 обновляется точно так же как и 5.8. Смотрите логи самого веб-сервера.

    • Алексей:

      Примерно та же ситуация последнюю неделю.
      Если раньше свеже поставленный антивирь видел 180 метров баз, то сейчас только 23. Выкачивает их и дальше ошибка обновления. За неделю 4 компа накрутили 14 гигов трафика… и это с каналом 256 кБит.

      • Алексей:

        Ставил 5.9

      • Алексей:

        Качает только BASE_END_USER_V11914.CAV из bases. Папку updates тупо не замечает.

        • Алексей:

          Всё оказалось веселее. Не распаковываются в bases скачанные базы. Засунул их туда вручную… обновилось до актуальной версии

        • Алексей:

          но вот выполнения скрипта трёт всё в папке bases, в этот раз остался только «BASE_END_USER_v11952.cav.z» размер которого 1115904, 7-zip его не распаковывает, хотя заголовок в файле «7z».

          • admin:

            Я так думаю, что у вас канал барахлит. Попробуйте в 113 строке WGET=»wget» заменить на WGET=»wget -t 100″ — он тогда будет делать 100 попыток скачать. Ну или можно указать вообще 0 — тогда он будет пытаться скачать до бесконечности.

  13. Классно! Поставил в школе… Одна заморочка — скрипт каждый раз закачивает обновления программы в cis — это должно быть так или я где-то ошибся.

    • Алексей:

      Обновки общие для cis и cav
      Может кто знает, как «действенно» уменьшить аппетиты Комода? А то у мена на компах с 512 МБ озу, работать с ним нереально. Про 256 вообще молчу. На аналогичных конфигах но с 1 ГБ таких проблем нет, так что завязки именно на память, а не процессор.

  14. Алексей:

    что-то много ошибок 404 скрипт выдаёт
    в том числе при попытке закачки first.cav

  15. Arg:

    да 404 ошибка, что то комодщ
    ики видно поменяли

  16. Arg:

    удалил старые базы, добавил обновления из папки 59 для версии 5,10 -полет нормальный

  17. k0s:

    скрипт вылетает с ошибкой
    ./comodo_update.sh: function: not found
    очень странно, ubuntu server 12.04.1

  18. Vitos:

    Месяц — полет нормальный

  19. Андрей:

    Спасибо за статью.
    Подскажите новичку, все поставил скачал и т.д. а теперь как заставить компы из сетки обновлять антивирь с убунты?

  20. KiriK:

    Позавчера перестали обновляться с нуля поставленные антивирусы.

  21. Альберт:

    Проблема пока остается с обновлением самой программы. Базы вроде обновляются нормально, а вот программу когда пытаюсь обновить, пишет что неполный файл или не найден файл. Есть какие нибудь соображения? Спасибо!

  22. Альберт:

    Хм.. с обновлениями тоже оказывается проблема. Вот что пишет:
    http://download.comodo.com/av/updates55/versioninfo.ini
    Распознаётся download.comodo.com… сбой: Имя или служба не известны.
    wget: невозможно распознать адрес `download.comodo.com’

  23. panas:

    а как добавить поддержку версии 6.1? как узнать версию модуля?

  24. Артем:

    Уважаемый автор! Скрипт отлично работает. большое спасибо вам. Присоединяюсь к предидущему коментарию. Как узнать версии модулей для 6.0, 6.1?

    • admin:

      Я узнаю версию модулей просто — смотрю в логах сервера куда антивирус долбится. Версия от 1 мая 2013 отлично работает с 6.1.

  25. sergeich:

    Добрый день.
    При обновлении с сервера пишет что «Не удается найти указанный файл».
    Пробовал браузером зайти в папку с обновлениями все заходит. Ума не приложу в чем проблема. В логах апач пишет что не может найти файлы файлы, причем половина файлов действительно отсутствует в папке с обновлением.
    У кого-нибудь было такое?

    • admin:

      Какой файл то не может найти?

      • sergeich:

        Разобрался!!!
        При настройке, в скрипте я указал папку для обновлений /var/www/comodo_upd/ (каталог web сервера /var/www/) Скрипт успешно закинул туда обновления. Затем в программе я указал путь к базам http://ip-сервера/comodo_upd/. При попытке обновления антивирус выдавал сообщение о не найденном файле. Сейчас еще раз перечитал error.log апача у увидел, что, несмотря на то, что указана папка с обновлением /comodo_upd/, антивирус все равно долбится в корень:
        [Thu Jul 25 19:36:05 2013] [error] [client 192.168.0.3] File does not exist: /var/www/av
        [Thu Jul 25 19:36:12 2013] [error] [client 192.168.0.3] File does not exist: /var/www/cis
        [Thu Jul 25 19:36:12 2013] [error] [client 192.168.0.3] File does not exist: /var/www/cis
        [Thu Jul 25 19:36:13 2013] [error] [client 192.168.0.3] File does not exist: /var/www/cis
        [Thu Jul 25 19:36:13 2013] [error] [client 192.168.0.3] File does not exist: /var/www/cis
        [Thu Jul 25 19:36:13 2013] [error] [client 192.168.0.3] File does not exist: /var/www/cis
        [Thu Jul 25 19:37:14 2013] [error] [client 192.168.0.3] File does not exist: /var/www/av
        В итоге скинул все в корень сервера и все удачно обновилось. Только не понятно почему сервер ищет в корне, а не в каталоге.

    • KsandrPRO:

      Да, было и есть. Базы обновляются, а сама программа и база данных сайтов не может обновиться. У меня CIS последний.

  26. Роман:

    Здравствуйте!
    Можно ли каким-то образом сделать, чтобы скрипт мог скачивать обновления через прокси с авторизацией?

  27. KiriK:

    При обновлении версии 7.0.315459… базы обновляются, но при проверке наличия обновлений программы «Ошибка выполнения»

  28. Oleg:

    День добрый. А не могли бы вы допилить скриптик для обновлений Comodo CIS 7-й версии?

  29. KsandrPRO:

    Добавил в версии ПО 2002. Вроде других не обнаружил на сервере Комодо. Но CIS все равно не хочет обновляться сама с локального сервера. И еще база сайтов тоже не обновляется. Просьба, допилите пожалуйста скрипт под полное обновление последнего CIS.

  30. Oleg:

    Присоединяюсь к предыдущему оратору! Админ, пилите скрипт =)

  31. KsandrPRO:

    Кстати, посмотрел сейчас на базы… Общий файл базы смотрю тоже обновляется, который больше 100 метров весит. Вот сегодня в 10 утра обновился. При чем и для 55 и для 58 версии баз.

    • Oleg:

      У вас обновляется нормально?

      • KsandrPRO:

        Ну как сказать нормально… Базы качаются, вижу по датам, что новые скачаны. А вот уже CIS на локальном компе с этих скачанных файлов берет только базы антивируса. А по базам сайтов и по программным модулям — ошибка. Не может найти файлы для обновления.

        • Oleg:

          Хм. У меня скрипт берёт базы, но во время того, как закачивает, выдает много ошибок о том, что не доступны по ссылке «ERROR 404: NOT Found» и «ERROR 403: Forbidden».
          Но это ладно, клиентские машины не хотят ни в какую брать обновления. Вы через Апач папки расшаривали? Как вообще настроили?
          Напишите пожалуйста на insaneman87@mail.ru

          • KsandrPRO:

            Да, через апач. Положил в корень главного хоста, потому что сеть построена так, что имена виртуальных хостов не раздаются в сеть. Но это может позже решим. Короче, базы кладутся прям в корневой главный хост. А у клиентов настраивается обновление с http://ip-сервера.

    • Oleg:

      А я положил не в корень, и в итоге не хотит
      cat /etc/apache2/conf-available/comodo.conf

      Alias /bases /mnt/data/distr/bases/

      Options Indexes FollowSymLinks
      Require all granted

      На клиентских машинах просто пишет, что не может найти файл.

  32. Oleg:

    А я положил не в корень, и в итоге не хотит
    cat /etc/apache2/conf-available/comodo.conf

    Alias /bases /mnt/data/distr/bases/

    Options Indexes FollowSymLinks
    Require all granted

  33. Oleg:

    В общем победил следующим образом:
    — создал в apache виртуальный хост на другом порту, в настройках которого прописал путь до папки с обновлениями:

    cat /etc/apache2/sites-enabled/comodo.conf

    DocumentRoot /mnt/data/distr/bases
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    На клиентских машинах путь до обновления указал в виде http://192.168.1.222:88/

    Обновления скачиваются, но не устанавливаются из-за вот такой белеберды:
    Not Found

    The requested URL /cis/download/updates/release/inis_2001/release_notes.html was not found on this server.

  34. arg:

    всеравно трафик идет если в логах того же сквида посмотреть. Чтоб экономить трафик надо серваки комодо закрыть фаерволом для клиентив. Но в последнее время комодо не радует и чястенько сами комодовци чето с сервакими своими и с базами творят.

  35. Сергей:

    Добрый день, многоуважаемый автор! Спасибо за скрипт. Благодаря ему отказались от платного касперского в пользу бесплатного комодо в нашей школе. Год локальное обновление баз работало без изъянов, а теперь начались какие-то непонятки.На компьютерах клиентах база не обновляется. При обновлении пишет, что файл не найден или просит проверить подключение к интернету.

    При запуске скрипта файлы закачиваются очень медленно. Основной затык на :

    HTTP-запрос отправлен. Ожидание ответа… Подключение к cdn.download.comodo.com (cdn.download.comodo.com)|198.41.209.106|:80… соединение установлено.
    HTTP-запрос отправлен. Ожидание ответа…
    Думал сначало мало места на диске. Освободил место, а он за несколько дней базы так и не скачал. Файлы появляются но только во временных папках (tmp).

    Интересно у меня одного так, или есть еще подобные случаи? Не хочется оставлять школу без защиты… ❓

    • admin:

      К сожалению обновляется всё нормально. Я там выложил новую версию, с ней обновляется вообще идеально. Видимо, у вас проблема с каналом связи до комодовского сервера. Пинайте провайдера.

      • Виталий:

        У меня тоже перестали обновляться клиентские компьютеры. Канал довольно плохой, возможно, не все скачивается. Скрип обновляет, но если файл битый, то он его оставляет. Счас пробую удалить все и заново закачать

  36. Виталий:

    Удалил все обновления с сервера, закачал заново — в итоге все равно не обновляются клиентские машины. Обновляться стали только после того как обновил до 7 версии

  37. seal:

    Запускаю скрипт на ubuntu —
    /usr/local/bin/comodo_update.sh: 16: /usr/local/bin/comodo_update.sh: _VER[55]=1500: not found
    /usr/local/bin/comodo_update.sh: 17: /usr/local/bin/comodo_update.sh: _VER[58]=1800 1850 2001 2002 3000 4000: not found
    /usr/local/bin/comodo_update.sh: 20: /usr/local/bin/comodo_update.sh: function: not found
    /usr/local/bin/comodo_update.sh: 21: local: not in a function

    Чего хочет?

  38. oermolaev:

    спасибо, всё работает!

  39. Владимир:

    Добрый день. Для клиентов Windows работает, но выдает такие ошибки — Проверка наличия обновлений распознавателей и Проверка наличия обновлений программы — ошибка выполнения. Может так и должно быть ? а клиент на Linux Mint вообще не видит сервера (((

  40. Andrey:

    Добрый день. С нетерпением ждем обновление для скрипта. Рад бы даже задонатить его развитие, но не знаю как (((

  41. Кирилл:

    Спасибо автору!
    Проблема как и у Владимира «Для клиентов Windows работает, но выдает такие ошибки — Проверка наличия обновлений распознавателей и Проверка наличия обновлений программы — ошибка выполнения»

  42. Aleks:

    Для Владимир и Кирилл.
    Добавьте в конец строки «VER[58]= » 4055

  43. Алексей:

    Запускаю скрипт на ubuntu —
    comodo_update.sh: 17: comodo_update.sh: _VER[58]=1850 2001 2002 3000 4000 4010 4020 4055 4075 : not found
    comodo_update.sh: 20: comodo_update.sh: function: not found
    comodo_update.sh: 21: local: not in a function

    • admin:

      Этот скрипт написан для bash. У Вас, видимо, он запускается другим шеллом. Попробуйте установить bash или сделать bash основным интерпретатором.

  44. Алексей:

    Спасибо скрип заработал, скачал обновления, но при попытке comodo v8 скачать обновления с моего сервера. он видит-скачивает-обновляет сигнатуры. а вне остальное не видит, говорит не удается найти указанный файл:
    ошибка — база данных сайтов
    ошибка- обновление программы
    ошибка — обновление распозвонателя

  45. Алексей:

    я добавил 4075 и обновились все остальное кроме базы данных сайтов

  46. Алексей:

    Проблема осталась:
    Обновляется все кроме базы данных сайтов
    Я так понимаю скрипт не качает отдельную ветку cis\cmc

  47. Александр:

    Можете черкнуть инструкцию по объединению с nginx?
    Запускаю скрипт коммандой:
    bash updater.sh
    Но почему-то случается затых в райндомных местах с фразой: ожидается использование унарного оператора

  48. ав:

    Спасибо! Пробу настроить локальный сервер в школе.

    В скрипте строка
    [ $CurrBase -ge $MinBase ] && MaxBase=$CurrBase

    надо использовать кавычки — а то дает ошибку при первом запуске
    [ «$CurrBase» -ge «$MinBase» ] && MaxBase=$CurrBase

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*