Скрипт по обновлению антивирусных баз NOD32 под Linux (BASH)
Вот написал скрипты по обновлению антивирусных баз NOD32 V2* и V3*. В описаниях, все что касается V3* - стоит в скобках.
Содержание
Версии скрипта
Буду тут выкладывать описание версий с датами для более удобного отслеживания за изменениями
NOD32 V2*
- Версия 2.8 от 20.08.2008
- Исправлена ошибка вывода имени файла, при выкачивании, если файла не существует.
- Версия 2.7 от 17.04.2008
- Исправлены файлы name_section1, name_section2 для выкачивания новой секции [HELPER0], [HELPER1] и [HELPER2].
- Версия 2.6 от 20.09.2007
- Добавлкна возможность установки пароля на базы в Apache.
- Исправлен файл NOD32UPDATE.sh. Если базы закрыты паролем, а файл update.ver - не заархивирован, возникала ошибка.
- Версия 2.5 от 7.09.2007
- Исправлен файл name_section1, для выкачивания секции [CHARON2]
- Версия 2.4 от 1.06.2007
- Исправлена ошибка, при разархивации update.ver
- Версия 2.3 от 31.05.2007
- Исправлена ошибка, если при обновлении билд нового файла меньше старого.
NOD32 V3*
- Версия 2.2 - Теперь можно обновлять базы для NOD32 V4. Добавлены секции, которых не было в вервии V3 [SYSTEMSTATUS0], [SYSTEMSTATUS1],[SYSTEMSTATUS2],[SYSTEMSTATUS640],[SYSTEMSTATUS641],[SYSTEMSTATUS642],[SELFDEFENSE0],[SELFDEFENSE1],[SELFDEFENSE2],[SELFDEFENSE640],[SELFDEFENSE641],[SELFDEFENSE642]. Обновляются только файлы секций arc/name_section1, arc/name_section2.
- Версия 2.1 - Добавлены возможность скачивать базы с триального сервера http://update.eset.com
- Версия 2.0 - Добавлены секции [ANTISTEALTH640], [ANTISTEALTH641], [ANTISTEALTH642], [ANTISTEALTH0], [ANTISTEALTH1], [ANTISTEALTH2]
- Версия 1.2 beta - Исправлена ошибка в скрипте убраны лишние строки с section2 и исправлены файлы section1 и section3 (добавлена секции [SMON0],[SMON1],[SMON2].
- Версия 1.1 beta - Исправлена ошибка в скрипте ( не записывался номер версии файлов в update.ver)
- Версия 1.0 beta - Пока в стадии тестирования.
Что умеет скрипт.
- Обновляет антивирусные базы с официальных и свободных серверов.
- Сам создает файл update.ver. Те при обновлении с зеркал обновляются только компоненты с более новыми версиями.
- При ошибке обновления восстанавливает базу в том виде, которая была до обновления.
- Создает папку на веб сервере с файлами обновления.
Из чего состоит
- NOD32UPDATE.sh (NOD32_3UPDATE.sh) - Сам скрипт
- update.sh (update3.sh) - Скрипт обновления веб и восстановления базы
- conv.sh - Скрипт по переводу всех файлов из кодировки utf8 (по умолчанию) в koi8-r
- install.htm - Описание и установка в html формате
- install.txt - Описание и установка в utf8 (преобразуется скриптом conv.sh)
- И три файла со списком разделов обновлений.
- name_section1 - основные секции
- name_section2 - дополнительные секции (В версии V3* этого файла нет)
- name_section3 - секции, которые могут отсутствовать в update.ver
Содержание файлов для различных версий - отличается
Установка RAR
Файл update.ver на офе заархивирован с помощью архиватора rar. И для работы скрипта его необходимо установить, тк он не входит в дистрибутив linux
- Идем на http://www.rarlab.com/download.htm и качаем дистрибутив распаковываем его в /usr/local/src и устанавливаем rar for Linux.
# cd /usr/local/src/rar # make
Инсталяция
Выкачиваем архив nod32update.V2.8.tar.bz2, (nod32updateV3-2.2.tar.bz2) распаковываем:
- Если Ваша система работает в koi8-r, то запускаем conv.sh. Он преобразует все необходимые файлы в koi8-r.
- Файлы NOD32UPDATE.sh (NOD32_3UPDATE.sh) и update.sh (update3.sh) кладем в папку /etc/upd_prog, но можно и в другую (см ниже), а файлы name_section* необходимо положить в директорию /var/lib/nod32/mirror/arc (/var/lib/nod32/mirror3/arc)
- В файле NOD32UPDATE.sh (NOD32_3UPDATE.sh) нужно указать путь, где будут храниться базы данных (/var/lib/nod32/mirror (/var/lib/nod32/mirror3)), имя и пароль, если обновление будет качаться с оффициального сайта (если со свободного, то эти строки надо закоментировать), а также имя сайта обновлений.
- В файле update.sh (update3.sh) нужно указать: путь, где лежат скрипты (/etc/upd_prog), путь где будут лежать базы для апача (/var/www/nod32 (/var/www/nod323)) и путь где храняться базы (см выше)(/var/lib/nod32/mirror (/var/lib/nod32/mirror)).
- Теперь в crontab прописываем запуск скрипта
# Обновление баз NOD32 V2* 00 09,15 * * * root /etc/upd_prog/update.sh # Обновление баз NOD32 V3* 05 09,15 * * * root /etc/upd_prog/update3.sh
и наслаждаемся автоматическим обновлением 2 раза в сутки
Настройка сервера Apache для доступа к базам по паролю
Инструкция взята тут
Итак, если нам хочется настроить Ваше зеркало так, что бы только нужные пользователи могли обновляться с нашего сервера, то тогда нужно сделать следующее.
Создание файла с паролями
Файл с учетными данными обычно называется .htpasswd и располагается в каталоге, доступ к которому необходимо ограничить. По умолчанию в Apache запрещен доступ ко всем файлам, которые начинаются на .ht, так что файл с паролями, как и файл .htaccess, не сможет быть прочитан ни одним посетителем вашего сайта. Но для ускорения работы сервера лучше использовать конфигурационный файл apache и файл паролей.
В каждой строке файла паролей хранятся данные об одном пользователе. Логин и зашифрованный пароль разделены двоеточием. Пример:
admin:YFC5nYLiUI2ig vasya:bnqw1eZHP2Ujs
Допустим, что мы хотим создать доступ по паролю пользователя admin.
Для шифрации паролей применяется утилита htpasswd, которая поставляется в комплекте с Apache. Чтобы создать новый файл с данными о пользователе admin, войдите в каталог, где нужно ограничить доступ и будет лежать файл паролей (я использовал каталог с настройками apache - /var/www/html/nod32 (/var/www/html/nod323) и введите команду:
$ htpasswd -c .htpasswd admin
Внимание- При использовании ключа -c будет затерт старый файл с паролями, без всякого предупреждения.
Для добавления в уже существующий файл используется команда:
$ htpasswd .htpasswd vasya
После запуска, утилита попросит дважды ввести пароль и, если они совпадут, данные о пользователе будут добавлены.
Настройка сервера Apache
Теперь, чтобы включить запрос на авторизацию при попытке доступа, необходимо внести изменения в файл конфигурации.
Эти строки нужно вставить в файл конфигурации вашего сервера:
<Directory "/var/www/html/nod32"> AllowOverride All </Directory> <Directory "/var/www/html/nod323"> AllowOverride All </Directory>
AllowOverride AuthConfig или AllowOverride All - необходимо, что бы сервер при работе учитывал параметры файла .htaccess
Если данные параметры установлены на весь сервер, то тут их вписывать необязательно.
После внесения изменений в файл конфигурации, не забудьте перезагрузить Apache.
Создание файлов .htaccess
Интересное описание структуры .htaccess с примерами я нашел тут.
В директориях с файлами баз (/var/www/html/nod32 и /var/www/html/nod323, в моем случае) создаем файлы .htaccess, следующего содержания
<FilesMatch "\.(nup)$"> AuthName "Private zone" AuthType Basic require valid-user AuthUserFile /var/www/nod323/.htpasswd Order deny,allow Deny from all Allow from 172.16.130.0/24 Satisfy Any </FilesMatch>
FilesMatch "\.(nup)$" - означает, что на все файлы в данной директории с расширением .nup, сервер будет запрашивать пароль.
Вам необходимо изменить путь к файлу с паролями (AuthUserFile)- путь должен быть полным и строку-приглашение (AuthName), которая выдается на экран пользователю при запросе пароля.
Если Вы хотите, что бы в вашей локальной сети (172.16.130.0/24 - в моем случае) все обновлялись без пароля, добавьте еще три строки
Order deny,allow Deny from all Allow from 172.16.130.0/24 Satisfy Any
Я их показал снова, что бы было понятно, что за что отвечает.
Значение других директив вы можете узнать из документации Apache.