Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  немного о безопасности
  VPN (PoPToP)
  PortSentry
  sysctl
  vtund
  ipfwcount
  FreeBSD & DSA
  mpd – легко и просто!
  mpd + freeradius + mysql
  Бронированный FreeBSD
  sshit
  DSL-G804V и FreeBSD 6.2
  portaudit
  OpenVPN
  Bluetooth proximity monitor
  ESET NOD32
  GEOM-ELI
  stunnel для pop3,smtp
  NOD32 mirror
  mpd5 + ipfw-nat
  Openvpn 2 офиса
  Hotspot
  OpenVPN+авторизация
  termlog
  mpd5 + сжатие и шифрование
  ipsec_vpnc
  TOR Сервер
  Snort на FreeBSD
  Arpwatch
  Установка и настройка OpenVPN
  NOD32_mirror_v2
  Fail2ban
  IPSec
  Перенос OpenVPN сервера
  Wpa/WPA2-Radius+EAP-TLS/EAP-PEAP
  nod32 mirror script
  MAC + apache
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Security —> NOD32 mirror

Создание локального зеркала обновлений NOD32

Автор: Andy2k.


Примерно с год назад ковырял я нодовский updater под фрю тщась заставить его тягать обновления и создавать локальное зеркало. Вроде как что-то у меня получилось, но скорее всего не так как надо, потому что до прошлой недели никакого локального зеркала у меня не было, тягал я обновы через виндовый сервак откуда придется, самим виндовым нодом создавал зеркало и раздавал в локалке. Однако, последнее время халявные сервера стали косячить, то пароли меняются, то адреса, а поскольку серверов у меня с десяток в разных конторах стоит, пользователи стали доставать звонками "...а у меня в трее красный щит!" (гы, англичанина бы удар хватил). Короче, решил я разобраться с нодом и его обновлениями раз и навсегда - чтоб качал автоматом, только то, что нужно (а не по 8 метров в час), а главное - сам искал ключи для получения обновлений.

Почему не воспользовался уже имеющимся ( в частности и на этом форуме) скриптами?

Объясняю:

Бесплатные серваки просто достали. То они прихлопываются нодовцами, то отстают от офф сереверов, то меняют логины-пароли, то вообще переезжают на другое доменное имя... И когда очередной бесплатный сервер дохнет у меня телефон раскаляется от звонков. надо опять лезть в самописные скрипты и править, править, править.... Д-О-С-Т-А-Л-О!!!!!!!!!


В итоге нарыл скрипт от Cmyker aka Igorek Vokar. Скрипт предназначен для АВТОМАТИЧЕСКОГО поиска ключей и создания зеркал обновлений для ESET NOD32 v 3.x и ESET Smart Security (антивирь, антиспам и файервол в одном флаконе)

Главное преимущество скрипта от cmyker в том, что он САМ НАХОДИТ ДЕЙСТВУЮЩУЮ ПАРУ ЛОГИН-ПАСС. И затем, с ее помощью обновляется с офф серверов, причем после моих модификаций тянет обновления ДЛЯ ВСЕХ ПРОДУКТОВ ESET - от нода 2.7 до Eset Smart Security... То есть можно на все продукты иметь один единый сервер обновления.

Разумеется, без небольшого напильника нам не обойтись, ну да ладно - не впервой!

Итак, приступаем:

1. Скачиваем скрипт
Скрипт автообновления NOD
файл скачан размер размещён примечание
nod.tar.gz
8519 164.3kb 2008-05-30 автообновлялка для антивируса NOD

2. Скачанный nod.tar.gz распаковываем куда-нибудь, ну например
/usr/local/nod32_upd_tools

3. Удаляем файл
 /usr/local/nod32_upd_tools/lib/unrar

Это линуховая версия, во фре она не работает.

4. Если unrar еще не установлен, ставим его из портов или пакетов и копируем фревый unrar в папку lib
cp /usr/local/bin/unrar /usr/local/nod32_upd_tools/lib/

5. Теперь правим сам скрипт upd.pl, а именно в параметр
$bases_path

прописываем, куда мы будем складывать обновления. Тут есть одна тонкость, связанная со структурой зеркала обновлений третьего нода - у него теперь update.ver лежит отдельно от самих файлов обновлений, поэтому если хотим раздавать получившееся зеркало по http надо либо сразу складывать все в корень web-сервера или потом делать туда симлинки.

6. Пробуем запустить
#/usr/local/nod32_upd_tools/upd.pl

и бежим смотреть в лог (nod32.log, появится в той же папке, где лежит upd.pl).
26-05-2008 18:27:48 Can't open authfile nod32.auth
26-05-2008 18:27:49 New key found! EAV-03404037 sp3j8wx5ut
26-05-2008 18:27:52 Checking http://u21.eset.com/eset_upd/
26-05-2008 18:27:53 Local bases copy is up to date
26-05-2008 18:27:53 Checking http://u23.eset.com/eset_upd/
26-05-2008 18:28:03 Local bases copy is up to date
26-05-2008 18:28:03 Checking http://u24.eset.com/eset_upd/
26-05-2008 18:28:03 Local bases copy is up to date
26-05-2008 18:28:03 Checking http://89.202.157.135/eset_upd/
26-05-2008 18:28:13 Downloading /download/engine3/em008_64_n2.nup(1038) old version (1038) from http://89.202.157.135
26-05-2008 18:28:14 Downloading /download/engine3/em003_32_n6.nup(1079) old version (1079) from http://89.202.157.135
26-05-2008 18:28:15 Downloading /download/engine3/em004_32_l1.nup(1070) old version (1070) from http://89.202.157.135
26-05-2008 18:28:15 Downloading /download/engine3/em002_32_n2.nup(3132) old version (3132) from http://89.202.157.135
26-05-2008 18:28:16 Downloading /download/engine3/em008_64_n6.nup(1038) old version (1038) from http://89.202.157.135
...

Если все до этого сделали правильно, в логе увидим, что скрипт не нашел ключей для обновления, смотался за ними в гугль, сложил в файл /lib/nod32.auth а затем с их помощью закачал обновления с оффсайта нода. Ура!
Если же после запуска скрипт ругается по-черному, поминая неких URI.pm и LWP.pm - это значит что он не обнаружил нужных ему  модулей. В этом случае берем cpan и доставляем модули. Например так:

#cpan -i URI
#cpan -if LWP

7. Но это еще не все, имеем мы только обновления для "тройки", а для полноты картины хочется еще и для "двойки". Тоже не проблема. Ищем на сайте уважаемого Лиссяры статью про установку и настроку nod32, в конце статьи есть ссылки на скачивание самого нода и (САМОЕ ГЛАВНОЕ!) файла лицензии.
Устанавливаем скачанное (можно подсматривать одним глазом в статью), не забываем кинуть в папку /usr/local/ets/esets/license скачанную лицензию. Если не планируется использовать самого фришного нода, можно выкинуть скрипт его автозапуска из /usr/local/etc/rc.d/. Лично я использую только его фирменный updater, лежит тут:
/usr/local/sbin/esets_update

8. Проверяем работу обновлялки для "двойки". Перед этим загляем в nod32.auth и посмотрим там текущий рабочий ключ (они одинаковы для "тройки" и "двойки"). Запускаем
#/usr/local/sbin/esets_update --username "имя" --password "пароль"

и видим, что обновления благополучно скачались. Далее можно подрихтовать файл
/usr/local/etc/esets/esets.cfg 

на предмет расположения скачанных обновлений и прочих доступных опций, но лично я предпочитаю все перечислять в командной строке самого updater-а, благо по нему есть подробнейший man.

9. Теперь собираем все до кучи. Правим upd.pl, вставляя после строки
chomp $password;

свою строчку
system("/usr/local/sbin/esets_update --base-dir <наш путь> 
--mirror-dir <наш путь>  --username $username --password $password  
--add-mod ENGLISH:RUSSIAN>> $path/nod27.log");

параметр --add-mod заставляет нод помимо обновления антивирусной базы скачивать еще и обновления программных модулей для двух языков - русского и английского.

10. Снова запускаем upd.pl и убеждаемся, что в этот раз обновились оба зеркала, и вдобавок появился еще один лог - nod27.log

Вот собственно и все.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=8924.

размещено: 2008-05-30,
последнее обновление: 2008-05-31,
автор: Andy2k

оценить статью:

m0ps, 2008-05-31 в 17:53:20

нехорошо это использовать нелицензионный софт в конторах... хотя для домашней локалки - самое оно. спасибо!

Angelius, 2008-05-31 в 22:53:37

хм...а у меня пока что стоял скрипт без автопоиска...надо заценить. спасибо!

Angelius, 2008-05-31 в 22:53:37

хм...а у меня пока что стоял скрипт без автопоиска...надо заценить. спасибо!

PlushevijOmsk, 2008-06-02 в 18:42:18

каммент раз - CPAN не работал, искал LWP в портах. p5-LWP-...
сделал службу из файло обновления. запускаю кроном /etc/rc.d/nod32upd start. отрабатывает и завершает процесс.
файл приоложить хотел, не знаю как. попробую в форуме
http://forum.lissyara.su/viewtopic.php?f=3&t=8964

Alexxx, 2008-06-03 в 10:55:02

А если легально? На офис одной лицензии хватит? Или нужно столько покупать, сколько компов в локалке будет использовать NOD32 и обновляться с такого зеркала?

Сколько весит такое зеркало в Мб? И каков размер обновлений ежедневных?

artem, 2008-06-11 в 1:19:47

А через прокси его реальзо зделать?

Dorlas, 2008-07-04 в 8:46:09

Ужос - ну неужели настолько все плохо в стране с лицензионным софтом...

Уж антивирусы то можно покупать или использовать бесплатные - все таки это не корпорация зла MS :)

dj_ras, 2008-07-09 в 15:02:33

При обновлении выдает ошибку
========
08-07-2008 18:06:20 Downloading /download/engine3/em004_32_n2.nup(1071) old version (1071) from http://u21.eset.com
08-07-2008 18:06:36 Connection timeout to http://u21.eset.com while checking /download/engine3/em004_32_n2.nup
========
и соответственно файл em004_32_n2.nup оказывается битым
Причем происходит это в разные моменты времени на разных файлах. Это как-то не сильно правильно я думаю...

VladVons, 2008-08-10 в 0:56:32

Надо и Нужно использовать софтину не взирая на лицензии.
Много говорится в нете о том что именно компании разработчики антивирусов всеми правдами и неправдами сначала разрабатывают вирус, а потом "успешно" лечат. Миром правит бизнес!

NiTr0, 2008-09-08 в 19:39:11

Для апдейта ставить нод - как-то неэстетично... Вот беглым поиском нарыл скрипт для апдейта 2.7 на перле... хотя и требует тщательной доработки напильником... почему - видно сразу же. осталось это все в кучу связать :)

NiTr0, 2008-09-09 в 2:35:34

Найденный скрипт - оказался полным шлаком, но дал идею. Переделал скрипт из статьи (для 2.7 отличий в логике нет - так, косметические фиксы) - пока работает, но хочу еще кое-чего подправить, сильно топорно и через анус некоторые моменты сделаны :( + сейчас качает много лишнего - делает полное зеркало, с китайскими, японскими и т.д. компонентами. Попозже выложу результат.

igor, 2008-12-12 в 16:34:26

////////////////////////////////
dj_ras, 2008-07-09 в 15:02:33

При обновлении выдает ошибку
========
08-07-2008 18:06:20 Downloading /download/engine3/em004_32_n2.nup(1071) old version (1071) from http: //u21.eset.com
08-07-2008 18:06:36 Connection timeout to http: //u21.eset.com while checking /download/engine3/em004_32_n2.nup
========
и соответственно файл em004_32_n2.nup оказывается битым
Причем происходит это в разные моменты времени на разных файлах. Это как-то не сильно правильно я думаю...
////////////////////////////////
Столкнулся с этой же проблемой. Немного подумав (не силен в перле), подравил файл upd.pl - теперь все работает вроде как нужно.

---------Исправление-------------
заменить строку  (где-то 121 по счету)

if ($status =~ /500 read/)  {logging("Connection timeout to $server while checking $file"); return 0;}

двумя строками

if (($status =~ /500 read/) && ($file eq "/update.ver" )) {logging("Connection timeout to $server while checking $file"); return 0;}

if (($status =~ /500 read/) && ($file ne "/update.ver" )) {logging("Connection timeout to $server while checking $file"); unlink(<$path/$file>); return 0;}
---------------------------------
Смысл исправления в удалении битого файла при ошибке типа Connection timeout to http://u21.eset.com while checking /download/engine3/хххх. Этот файл докачается со следующего сервера. Притом делается проверка чтоб это был не update.ver.
Если у кого-то есть лучшие варианты - пищите.

Crysler, 2009-04-28 в 14:15:06

Я так понял, что нода, для 64 Bit нет... Как быть?

gyurza2000, 2009-08-24 в 17:36:01

500 Can't connect to update.eset.com:80 (connect: timeout)

VladVons, 2009-12-10 в 9:45:46

Can\'t locate object method \"uri_canonical\" via package \"HTTP::Headers\" at (eval 35) line 1.

_SH, 2010-02-03 в 10:39:45

Доброго времени суток!
Спасибо за отличный скрипт!
Привожу свои доработки, продолжая идею igor. (Часть изменений кода взята из его поста). Строки требующие замены взяты из оригинального скрипта.
-----------------------------
1) Меняем строки
if ($status =~ /401/) {logging("Auth to $server failed searching for new key"); keys::start(); start("1"); return 0;}
на  
if ($status =~ /401/) {logging("Auth to $server failed searching for new key"); unlink(<$path/$file>); keys::start();  start("1"); return 0;}

if ($status =~ /500 read/) {logging("Connection timeout to $server while checking $file");return 0;}
на

if (($status =~ /500 read/) && ($file eq "/update.ver" )) {logging("Connection timeout to $server while checking $file"); return 0;}
if (($status =~ /500 read/) && ($file ne "/update.ver" )) {logging("Connection timeout to $server while checking $file"); unlink(<$path/$file>); return 0;}

if ($status =~ /500 Cannot/) {logging("Error writing $file: $!");return 0;}
на

if (($status =~ /500 Can/) && ($file eq "/update.ver" )) {logging("Error writing $file: $!"); return 0;}
if (($status =~ /500 Can/) && ($file ne "/update.ver" )) {logging("Error writing $file: $!"); unlink(<$path/$file>); return 0;}

2) В строке if (($updver{$filename}{version}) > ($updver_old{$filename}{version}) or !(-e $bases_path.$updver{$filename}{file}) or ($localfilesize != $serverfilesize && $updver{$filename}{version} > $updver_old{$filename}{version})) { ...
меняем знак > на >=, т.е.
&& $updver{$filename}{version} >= $updver_old{$filename}{version})) { ...
-----------------------------

_toxa, 2010-03-06 в 18:24:42

[code]Can't locate URI.pm in @INC (@INC contains: /usr/local/www/apache22/data/nod32/lib /usr/local/www/apache22/data/nod32 /usr/local/lib/perl5/5.10.1/BSDPAN /usr/local/lib/perl5/site_perl/5.10.1/mach /usr/local/lib/perl5/site_perl/5.10.1 /usr/local/lib/perl5/5.10.1/mach /usr/local/lib/perl5/5.10.1 .) at (eval 7) line 3.
Compilation failed in require at /usr/local/www/apache22/data/nod32/lib/HTTP/Request.pm line 5.
[b]Compilation failed in require at /usr/local/www/apache22/data/nod32/lib/LWP/UserAgent.pm line 12.
BEGIN failed--compilation aborted at /usr/local/www/apache22/data/nod32/lib/LWP/UserAgent.pm line 12.
Compilation failed in require at /usr/local/www/apache22/data/nod32/upd.pl line 13.
BEGIN failed--compilation aborted at /usr/local/www/apache22/data/nod32/upd.pl line 13.[/code]

_SH, 2010-03-06 в 22:55:40

TO _toxa
Проверь, установлены ли модули Perl. LWP и URI. Как их установить написано в статье.

_SH, 2010-05-13 в 10:03:58

Продолжаю допиливать скрипт. Потребовалось скачивать обновления через прокси. Решение уложилось в две новых строки. А именно: находим в скрипте строку

my $ua = LWP::UserAgent->new;

и после неё вставляем следующую

if ($proxy) { $ua->proxy(["http","ftp"], $proxy);}

В начале скрипта задаём значение переменной $proxy

our $proxy = "http://192.168.11.3:1080/";

Эту строку вставляем после строки our $bases_path = ...

Прим. При указании адреса прокси обязателен слеш в конце адреса. Объекту $ua указывается прокси для FTP и HTTP соединений. В принципе достаточно только HTTP.

_SH, 2010-05-13 в 11:28:41

Забыл добавить. Описанная выше доработка обеспечивает именно скачивание обновлений через прокси. Для того, чтоб искать ключи через прокси нужно доработать файл lib/keys.pm
Суть та же. В начале файла объявляем переменную $proxy

our $proxy = "http://192.168.11.3:1080/";

Далее по тексту ищем строки my $ua = LWP::UserAgent->new (...); Их вроде 3 и после каждой вставляем строку

if ($proxy) { $ua->proxy(["http","ftp"], $proxy);}

sh_gubar, 2010-06-09 в 16:42:53

Can't locate object method "uri_canonical" via package "HTTP::Headers" at (eval 31) line 1.

alexco, 2011-09-30 в 16:31:09

Есть альтернативный вариант создания зеркала http://www.lissyara.su/?id=2212

Devo, 2013-05-25 в 12:57:34

Рабочее зеркало обновлений NOD32 http://zzizz.ru:2221/
май 2013

VC, 2015-08-07 в 1:36:05

последние две версии не требуют лицензии просто правят в реестре
http://ftpn.ru/nod32-change-update-server/

VC, 2015-08-07 в 1:38:32

хм... ссылка сломалась
http://ftpn.ru/nod32-change-update-server/


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 22 чел.
За последние 30 мин было: 110 человек
За сегодня было
13321 показов,
834 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0398 секунд
Из них PHP: 27%; SQL: 73%; Число SQL-запросов: 78 шт.
Исходный размер: 129567; Сжатая: 24668