Страница 1 из 31

Очередной скрипт зеркала NOD32

Добавлено: 2011-10-24 21:18:42
GRooVE
Представляю Вашему вниманию новую версию кросс-платформенного скрипта для создания зеркала обновлений антивирусных баз для NOD32.
Данный скрипт находится в постоянной доработке. Все замечания, ошибки, идеи, мысли о работе скрипта оставляем в этом топике.

Основные возможности скрипта:
1. Самостоятельный поиск ключей в интернете как по уже существующим шаблонам, так и по пользовательским
2. Гибкая настройка через файл конфигурации
3. Возможность автоматического обновления
4. Возможность информирования через электронную почту / ICQ о процессе обновления как самого скрипта, так и антивирусных баз
5. Кроссплатформенность


Отличия данного скрипта от конкурентов:
1. Рекурсивный поиск ключей (скрипт ищет ключи не только через поисковые системы, но и внутри найденных через поисковые системы сайтов)!
2. Экономия трафика за счет использования символических ссылок при скачивании антивирусных баз (поддержка Windows)!
3. Отсутствие известного бага с rel-stop


Требования:
Для OS Windows: Установленный PHP
Для Unix систем: Установленный PHP, unrar

Внимание! Новая нумерация версий скрипта!

Код: Выделить всё

Версия 1.0.131114
* Добавлена поддержка 7-й версии NOD32

Версия 1.0.130720
* Исправлен поиск ключей
* Исправлена русификация писем

Версия 1.0.130125
+ Добавлена рекурсивная обработка update.ver
+ Добавлены новые языки для фильтрации

Версия 1.0.121218
* Исправлена кодировка index.html
* Исправлен русский вариант конфига nod32ms.conf

Версия 1.0.121210
* Новая нумерация версий
+ Добавлен модуль для автоматического обновления скрипта
+ Теперь актуальную версию всегда можно скачать по ссылке http://85.238.103.64:8081/lastversion.tar.gz
+ Добавлен параметр для создания символьных ссылок уже существующих файлов
+ Добавлена поддержка 6-й версии NOD32
+ Добавлен параметр для указания темы письма
* Параметры update_version345_* переименованы в update_version_*
* Багфикс
Актуальная версия скрипта доступна по постоянному адресу http://85.238.103.64:8081/lastversion.tar.gz

Так же выкладываю пропатченные файлы установки 5-ой версии антивируса для Windows (активированные, с изменяемым сервером обновлений)

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-24 21:25:48
depositaire
Спасиб :drinks: потестим)

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-24 21:50:21
kharkov_max
GRooVE писал(а):Краткая предыстория: это скрипт начал свою жизнь примерно два месяца назад, вырос он из старых версий скрипта от alexco по причине отказа в работе последнего. За короткое время скрипт наполнялся разными функциями и дополнениями, а вскоре и совсем был полностью переписан.
Все ранние версии, выложенные мною, были удалены автором скрипта и по совместительству модератором alexco по причине возвращения автора к его разработке. Однако вскоре скрипт автора снова перестал корректно работать, а сам автор, как и в предыдущий раз, пропал.
И вот, по просьбе форумчан, выкладываю свои последние наработки по данному скрипту.
К сожалению, весь changelog так же находился в старой ветке и был потерт. Буду по-тихоньку наполнять этот топик.
Замечу, что конфиг максимально расписан, так что проблем с настройкой возникнуть не должно.

Требования для нормальной работы скрипта ничем не отличаются от первоначальных требований:
Любой http сервер, PHP >=4 (с поддержкой сокетов), а так же установленный unrar.

Все замечания, ошибки и мнения о работе скрипта оставляем в этом топике.

Выражаю благодарность первоначальному автору скрипта alexco за идею и вдохновение.
Могу сказать одно
+1 GROOVE

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-24 23:08:07
d00m
работает.
+

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 7:34:35
Vannno
только unrar нужен ? а wget уже не используется в скрипте ?

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 8:33:15
GRooVE
только unrar

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 10:12:19
QweЯty
щаз потестим...
вроде нормально пошел :)

выдал:

Код: Выделить всё

[2011-10-25] [13:12:50] Found valid key [EAV-53276663:6rxjh8efsu]
[2011-10-25] [13:12:50] Use valid key [EAV-53276663:6rxjh8efsu]
[2011-10-25] [13:12:51] [ver. 2] The latest db was found on 89.202.149.36
[2011-10-25] [13:12:59] [ver. 2] Downloading http://89.202.149.36/nod_upd/update.ver [4052 Bytes]
[2011-10-25] [13:12:59] [ver. 2] Your db version is already up to date!
[2011-10-25] [13:13:00] [ver. 3] The latest db was found on 89.202.149.36
[2011-10-25] [13:13:01] [ver. 3] Downloading http://89.202.149.36/eset_upd/update.ver [7100 Bytes]
[2011-10-25] [13:13:01] [ver. 3] Your db version is already up to date!
[2011-10-25] [13:13:02] [ver. 4] The latest db was found on 89.202.149.36
[2011-10-25] [13:13:03] [ver. 4] Downloading http://89.202.149.36/eset_upd/v4/update.ver [3902 Bytes]
[2011-10-25] [13:13:03] [ver. 4] Your db was successfully updated to 6571 (20111024)!
[2011-10-25] [13:13:03] Stop script
обновлет нормально файл update.ver и зависает на обновлении самих баз обновлений.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 10:35:33
kharkov_max
GROOVE
Вот это ты кряку написал ))).
Щас конфиг смотрю - просто приятно ...
+1
Особенно радует phpmailer.
Проверю отпишусь ...

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 10:37:05
GRooVE
QweЯty писал(а):обновлет нормально файл update.ver и зависает на обновлении самих баз обновлений.
зависает скрипт? если да, то это нормально... первый запуск - 15-20 минут пока все базы вытянет

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 11:14:03
kharkov_max
То что доктор прописал - все работает.
Осталось маилер оттестить.

Из пожеланий.
GRROVE
Добавьте возможность через конфиг указывать тему письма.

Из вопросов.
У меня есть веб сервер, собственно на который я и притулил базы.
А у Вас есть файлик .httaccess.

Мой сервер уже отвечает на корень домена (висит сайт), как бы мне притулить Ваши настройки .httaccess на виртуалхост?
Хочется понять как оно работает - то что прописано в файле и как клиент делает запрос?

В каком смысле понять.
К примеру:
У клиента в настройках указываем вместо http://mail.ru/eset_upd
http://mail.ru
но когда клиент обращается он начинает перебирать ссылки eset_upd/nod_upd или искать файлы версий и т.д.

Спасибо.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 11:57:23
kharkov_max
Вообщем добавил настройки из .htaccess в virtualhost на корень домена и пробовал вайлик подкидывать в корневую директорию сайта, доступ на прямое доменное имя не работает.

Может чем подскажете?

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:01:37
GRooVE
kharkov_max писал(а):Добавьте возможность через конфиг указывать тему письма.
Если честно, не считал целесообразным выносить эту опцию в конфиг, но если есть желание - вынесу в следующей версии, не проблема.
На данный момент, при необходимости, тему письма можно поменять в файле inc/classes/nod32ms.class.php, строка 50:

Код: Выделить всё

$mailer->Subject = "Something happens";
kharkov_max писал(а):У меня есть веб сервер, собственно на который я и притулил базы.
А у Вас есть файлик .httaccess.

Мой сервер уже отвечает на корень домена (висит сайт), как бы мне притулить Ваши настройки .htaccess на виртуалхост?
Хочется понять как оно работает - то что прописано в файле и как клиент делает запрос?
Работает он очень просто:
Каждая версия nod32 при запросе к http серверу, как и большинство других программ, передает свой идентификатор UserAgent'а.
В .htaccess прописано правило для rewrite модуля. При запросе файла update.ver из корневой директории (директория, где находится данный .htaccess файл), apache получает UserAgent клиента, идентифицирует его и, исходя из версии клиента (она как раз и передается в UserAgent), передает ему содержимое специфичного для него update.ver файла (пути так же прописаны в .htaccess).
В файле update.ver, если обратите внимание, пути к файлам не относительные, что позволяет обрабатывать update.ver файл абсолютно из любой директории внутри виртуалхоста.
Если совсем простым языком: антивирус запрашивает файл update.ver из директории, прописанной в его настройках. В этой директории лежит файл .htaccess, который ловит этот запрос, определяет версию антивируса и, в зависимости от его версии, отдает ему нужный update.ver. Все эти действия для антивируса выполняются прозрачно и он в полной уверенности, что просто забирает себе update.ver из той директории, из которой он его запросил.
Кстати, если нет возможности добавить .htaccess внутрь корневой директории (или он там уже есть), можно rewrite правило (т.е. содержимое файла) перенести как в конфиг apache, так и внутрь другого .htaccess, находящегося в корне виртуалхоста.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:10:17
QweЯty
зависает обновление. самого нода.

то есть нормально скачивает update.ver но все что более из http://****/download/engine/ ничего не может скачать :(

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:18:23
QweЯty
p.s. файл .htaccess где именно должен лежать?
у меня лежит в корне с папками download/ eset_upd/ nod_upd/

p.s. а можно настройки в виртуалхост занести?

у меня так:

Код: Выделить всё

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/www/apache22/nodupd"
    ServerName nod.upd.scholl1.kg
    ServerAlias http://www.nod.upd.scholl1.kg
    ErrorLog "/var/log/nod.upd.scholl.kg.log"
    CustomLog "/var/log/custom.nod.upd.scholl.kg.log" common
    AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
    AddType application/x-httpd-php-source .phps
    <Directory "/usr/local/www/apache22/nodupd">
           Order allow,deny
           Allow from all
    </Directory>
    <IfModule mod_rewrite.c>
        RewriteEngine on
        Options +FollowSymlinks
        RewriteCond %{HTTP_USER_AGENT} ^NOD32.*BPC.2
        RewriteRule ^update.ver$ /nod_upd/update.ver
        RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.3
        RewriteRule ^update.ver$ /eset_upd/update.ver
        RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.(4|5)
        RewriteRule ^update.ver$ /eset_upd/v4/update.ver
    </IfModule>

</VirtualHost>
по нулям. из браузера могу любой файл скачать. nod32 не можут скачать ничего :(

p.p.s. какой путь прописывать?
я указал как _http://nod.upd.scholl.kg/nod_upd

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:20:30
Гость
Спасибо, Groove!
скрипт работает

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:21:19
kharkov_max
GRooVE писал(а):
kharkov_max писал(а):Добавьте возможность через конфиг указывать тему письма.
Если честно, не считал целесообразным выносить эту опцию в конфиг, но если есть желание - вынесу в следующей версии, не проблема.
На данный момент, при необходимости, тему письма можно поменять в файле inc/classes/nod32ms.class.php, строка 50:

Код: Выделить всё

$mailer->Subject = "Something happens";
kharkov_max писал(а):У меня есть веб сервер, собственно на который я и притулил базы.
А у Вас есть файлик .httaccess.

Мой сервер уже отвечает на корень домена (висит сайт), как бы мне притулить Ваши настройки .htaccess на виртуалхост?
Хочется понять как оно работает - то что прописано в файле и как клиент делает запрос?
Работает он очень просто:
Каждая версия nod32 при запросе к http серверу, как и большинство других программ, передает свой идентификатор UserAgent'а.
В .htaccess прописано правило для rewrite модуля. При запросе файла update.ver из корневой директории (директория, где находится данный .htaccess файл), apache получает UserAgent клиента, идентифицирует его и, исходя из версии клиента (она как раз и передается в UserAgent), передает ему содержимое специфичного для него update.ver файла (пути так же прописаны в .htaccess).
В файле update.ver, если обратите внимание, пути к файлам не относительные, что позволяет обрабатывать update.ver файл абсолютно из любой директории внутри виртуалхоста.
Если совсем простым языком: антивирус запрашивает файл update.ver из директории, прописанной в его настройках. В этой директории лежит файл .htaccess, который ловит этот запрос, определяет версию антивируса и, в зависимости от его версии, отдает ему нужный update.ver. Все эти действия для антивируса выполняются прозрачно и он в полной уверенности, что просто забирает себе update.ver из той директории, из которой он его запросил.
Кстати, если нет возможности добавить .htaccess внутрь корневой директории (или он там уже есть), можно rewrite правило (т.е. содержимое файла) перенести как в конфиг apache, так и внутрь другого .htaccess, находящегося в корне виртуалхоста.
Спасибо, за разъяснения.
А сработает ли rewrite для сервера era ?

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:23:02
kharkov_max
QweЯty писал(а):p.s. файл .htaccess где именно должен лежать?
у меня лежит в корне с папками download/ eset_upd/ nod_upd/

p.s. а можно настройки в виртуалхост занести?
Должен или файл лежать в корне домена, или то что в файле добавить в virtualhost.
Соотвтественно Apache должен поддерживать rewrite

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:24:33
kharkov_max
kharkov_max писал(а):Вообщем добавил настройки из .htaccess в virtualhost на корень домена и пробовал вайлик подкидывать в корневую директорию сайта, доступ на прямое доменное имя не работает.

Может чем подскажете?
Похоже мое доменное имя кривое (dyndns), с него не хочет обновляться.
А с локального адреса вроде работает rewrite.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:25:16
QweЯty
включен модуль rewrite

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:33:13
kharkov_max
QweЯty писал(а):включен модуль rewrite
Да
kharkov_max писал(а):
kharkov_max писал(а):Вообщем добавил настройки из .htaccess в virtualhost на корень домена и пробовал вайлик подкидывать в корневую директорию сайта, доступ на прямое доменное имя не работает.

Может чем подскажете?
Похоже мое доменное имя кривое (dyndns), с него не хочет обновляться.
А с локального адреса вроде работает rewrite.
Ска ... с локального адреса через rewrite тоже не хочет - клиент говорит не найден файл ...
Что посоветуете ?

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:35:32
kharkov_max
В моем apache пытается искать update.ver в корне домена.

Хотя при перезапуске апач не ругается ни на что, и модуль грузит.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:37:11
GRooVE
QweЯty писал(а):зависает обновление. самого нода.

то есть нормально скачивает update.ver но все что более из http://****/download/engine/ ничего не может скачать :(
С других серверов как?
Вы первый с такой проблемой.
Что в логах апача?
QweЯty писал(а):p.p.s. какой путь прописывать?
я указал как _http://nod.upd.scholl.kg/nod_upd
а в вашем случае нужно так:

Код: Выделить всё

http://nod.upd.scholl.kg/
файл должен лежать так, чтобы теоретически он был доступен вот по этому адресу (только теоретически, по факту доступа не будет):

Код: Выделить всё

http://nod.upd.scholl.kg/.htaccess
т.е. в корневой папке, где лежат директории download, eset_upd, nod_upd
kharkov_max писал(а):Похоже мое доменное имя кривое (dyndns), с него не хочет обновляться.
А с локального адреса вроде работает rewrite.
Теоретически, доменное имя не играет роли.
Пробуйте разные варианты, ковыряйте логи.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:45:15
QweЯty
когда указываю просто http://nod.upd.scholl.kg/ или ip то пишет:

Код: Выделить всё

[Tue Oct 25 15:29:17 2011] [error] [client 10.10.0.11] File does not exist: /usr/local/www/apache22/nodupd/favicon.ico
[Tue Oct 25 15:42:40 2011] [error] [client 10.10.0.100] File does not exist: /usr/local/www/apache22/nodupd/update.ver
[Tue Oct 25 15:42:42 2011] [error] [client 10.10.0.100] File does not exist: /usr/local/www/apache22/nodupd/update.ver
[Tue Oct 25 15:43:05 2011] [error] [client 10.10.0.100] File does not exist: /usr/local/www/apache22/nodupd/update.ver
и nod ругается что неможут скачать файл с сервера

когда обращаюсь по блаблабла/nod_upd/
то качается файло update.ver и все. базы не качаются.

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:48:09
GRooVE
QweЯty писал(а):когда указываю просто http://nod.upd.scholl.kg/ или ip то пишет:

Код: Выделить всё

[Tue Oct 25 15:29:17 2011] [error] [client 10.10.0.11] File does not exist: /usr/local/www/apache22/nodupd/favicon.ico
[Tue Oct 25 15:42:40 2011] [error] [client 10.10.0.100] File does not exist: /usr/local/www/apache22/nodupd/update.ver
[Tue Oct 25 15:42:42 2011] [error] [client 10.10.0.100] File does not exist: /usr/local/www/apache22/nodupd/update.ver
[Tue Oct 25 15:43:05 2011] [error] [client 10.10.0.100] File does not exist: /usr/local/www/apache22/nodupd/update.ver
и nod ругается что неможут скачать файл с сервера

когда обращаюсь по блаблабла/nod_upd/
то качается файло update.ver и все. базы не качаются.
у Вас путь неверный, упущено нижнее подчеркивание

Код: Выделить всё

/usr/local/www/apache22/nodupd/update.ver

Код: Выделить всё

/usr/local/www/apache22/nod_upd/update.ver

Re: Очередной скрипт зеркала NOD32

Добавлено: 2011-10-25 12:54:18
kharkov_max
У меня судя из логов Apache не отрабатывает rewrite rule
Т.к. при обращении файл update.ver ищется в корне домена.

Тем не менне на этом же virtualhost нормально отрабатывает переброс с http на https - а это один модуль...
т.е. модуль rewrite работает ...