Доброго времени суток!
Хочу рассказать и показать как можно сделать сервис по проверке файлов различными антивирусами(аля virustotal.com).
С чего же начать?! Ах дааа… С картинки!
Часть 0
Начнем с того, что скачаем исходники, только аккуратно, чтобы не завалить мой
Внутри архива Вы обнаружите 2 папки «daemon» и «www».
daemon — как уже поняли это «демон» на perl, который будет проверять файлы антивирусами, файл конфига, sh скрипт для запуска «демона» и его контроля, структура БД.
www — это php оболочка, которая будет загружать файлы на проверку, и выдавать нам результат.
Чать 1
И что же спросите Вы с этим всем делать? Нууу… давайте разбираться.
Начинать будет с запуска «демона».
- Для этого скопируем конфиг в /etc/checker/checker.conf (разумеется подправим)
- Демон в /etc/init.d/checker.pl
- Создадим таблицы в бд checker из файла ckecker.sql
- Запустим checker_control.sh и добавим его в cron, чтобы запускался через каждые 5 мин (на ваше усмотрение)
«Демон» пашет!
Часть 2
Даже не знаю нужно или нет рассказывать про установку того что находится в папке «www». Т.к. это нужно просто скопировать в Вашу www директорию на сервере. Настроить конфиг www/engine/options.php
Часть 3
ВНИМАНИЕ! в конфиге «демона» находятся все настройки, связанные с антивирусами, пример:
avast =>
{
type => 'command', #это команда
name => 'Avast!', #название антивируса - Avast
id => 1, # id
command => '/usr/bin/avast', #путь до антивируса
args => '-t N %%', #необходимые аргументы
clean => qr/bOK$/, #Сообщение от антивируса когда файл чист
infected => qr/binfected by/, #Сообщение от антивируса когда файл заражен
match => qr/.*[infected by:s(.*)]/, #регулярка вытаскивает название вируса
engine_command => '/usr/bin/avast -V', #команда на получение версии
engine => qr/avast v(d.d.d)/, #регулярка вытаскивает версию антивируса
}
Возможно Вам придется подредактировать эти параметры, т.к. от версии к версии меняются команды и ответы
В статье не описаны способы установки антивирусов, Вы должны об этом позаботиться сами!
Отдых для глаз
Результат проверки файла
История проверок
Заключение
Хочу сказать что можно добавить все антивирусы, которые смогуть работать на ОС Вашего сервера.
На своем домашнем серверке я настраивал 9 антивирусов.
Можете прикрутить регистрацию пользователей, оплату, и зарабатывать на этом. Лично мне без разницы!
Для тех кто ищет ссылки в конце статьи — ссылка на исходники
UPD: И в качестве альтернативы perl — Qt версия от RankoR ( qt версия )
Автор: evgentus