Bekijk de volledige versie : Давайте обсудим запуск серверов обновления...
Сегодня мне задали вопрос о том, как я сделал сервер обновления для антивируса касперского
Так вот, я написал скрипт, благодаря каторому каждый день происходит закачка архивов с сервера касперского, затем всё это разархивируется, и ложится в папку на веб сервере.
этот скрипт необходимо поместить /opt/etc/cron.daily
#!/bin/sh
/bin/rm -f "/opt/tmp/av-i386&ids-daily.zip"
/opt/bin/wget -P /opt/tmp --read-timeout=30 --connect-timeout=10 --dns-timeout=10 -t 0 --waitretry=10 -c http://dnl-eu11.kaspersky-labs.com/zips/av-i386%26ids-daily.zip -a /opt/var/log/av/day.log
/opt/bin/unzip -o "/opt/tmp/av-i386&ids-daily.zip" -d /opt/share/www/avp
этот скрипт необходимо поместить /opt/etc/cron.weekly
#!/bin/sh
rm -f "/opt/tmp/av-i386&ids-cumul.zip"
wget -P /opt/tmp --read-timeout=30 --connect-timeout=10 --dns-timeout=10 -t 0 --waitretry=10 -c http://dnl-eu11.kaspersky-labs.com/zips/av-i386%26ids-cumul.zip -a /opt/var/log/av/month.log
unzip -o "/opt/tmp/av-i386&ids-cumul.zip" -d /opt/share/www/avp/cumul
необходимо cделать chmod +x <filename> , где <filename>-название ващих скриптов...
P.S. При первом обновлении в антивирусе указываем путь
http://my.router:8081/avp/cumul
при последуюих
http://my.router:8081/avp/
для общего развития и уточнения времени обновления можно почитать
тут (http://www.kaspersky.ru/support/personalMP5/update?print=true&qid=180593537)
Спасибо за внимание!
скрипты очень тривиальные... но работают :)
кстати совсем недавно рылся в инете и нашел еще один скрипт, но мне не понравился
#!/bin/sh
# Samba shared director
# *********************************
# ********* CHANGE THIS ************
# *********************************
UPDATES_DIR=/opt/share/www/kav
CUMUL="
http://dnl-ru1.kaspersky-labs.com/zips/av-i386-cumul.zip
"
DAILY="
http://dnl-ru1.kaspersky-labs.com/zips/av-i386-daily.zip
"
# Temporary dir for unpacking zip archives
TMP_DIR=$UPDATES_DIR/"temp-"`date +%Y%m%d`
#Checking if unzip is installed
if [ ! `which unzip` ]; then
echo
echo "*********** You don't have UNZIP package installed . *********** "
echo "*********** You can install it by typing as root user: *********** "
echo
echo "*********** pkg_add -r unzip *********** "
echo
exit 1
fi
CHECK_DATE ()
{
LAST_UPDATE=`cat $UPDATES_DIR/.cumul_check`
CURRENT_DATE=`date +%d%m%Y`
CURRENT_WEEKDAY=`date +%w`
}
CHECK_DIRS ()
{
# Testing if dirrectory exist. If not creating it.
if [ ! -d $UPDATES_DIR ]; then
echo "There is no shared directory. Creating it."
mkdir -p $UPDATES_DIR || echo "Achtung! Can't create dir."
fi
if [ ! -d $TMP_DIR ]; then
mkdir -p $TMP_DIR || echo "Achtung! Can't create temporary dir."
fi
}
# Cumulative update function
UPDATE_CUMUL ()
{
echo "Downloading cumulative archive"
CHECK_DIRS
cd $UPDATES_DIR && wget $CUMUL && unzip -qo av-i386-cumul.zip -d $TMP_DIR && \
mkdir -p $UPDATES_DIR/cumul && mv $TMP_DIR/* $UPDATES_DIR/cumul && rm -rf $TMP_DIR
echo `date +%d%m%Y` > $UPDATES_DIR/.cumul_check
cd -
}
# Daily update function
UPDATE_DAILY ()
{
echo "Downloading daily archive"
CHECK_DIRS
cd $UPDATES_DIR && wget $DAILY && unzip -qo av-i386-daily.zip -d $TMP_DIR && \
mkdir -p $UPDATES_DIR/daily && mv $TMP_DIR/* $UPDATES_DIR/daily/ && rm -rf $TMP_DIR
cd -
echo
echo "All updates complete."
echo
}
# MAIN
if [ ! -f $UPDATES_DIR/.cumul_check ]; then
UPDATE_CUMUL
UPDATE_DAILY
exit 0
fi
CHECK_DATE
# Dowload cumulative and weekly update if days left from last update
# more then days left from last SUNDAY
if [ $CURRENT_WEEKDAY -eq 0 -a $LAST_UPDATE -ne $CURRENT_DATE ]; then
UPDATE_CUMUL
UPDATE_WEEKLY
UPDATE_DAILY
else
UPDATE_DAILY
fi
exit 0
вообще он был дря фриибсд и там использовалась команда fetch а её нет в репазиториях и я тупо поставил wget... вроде работает но нифига не прапвильно :) доделывать его просто влом было
Спасибо.:)
Нечто похожее живет у меня для DrWeb:
#!/bin/sh
#
# Download DrWeb bases
#
DESTIN=/shares/MYVOLUME1/MYSHARE1/AIDS
wget -c -nd -nc --level=0 -o /opt/var/log/wget.log -P $DESTIN/DrWeb/Zipped ftp://ftp.drweb.com/pub/drweb/bases/*.zip
find $DESTIN/DrWeb/Zipped/ -exec unzip -o {} -d $DESTIN/DrWeb/Bases/ ';'
Пути указаны для WL-700gE, на клиентских станциях в drweb32.ini строка VirusBase = указывает вместо локального каталога на расшаренный.
Запускается раз в неделю кроном.
Теперь относительно Вашего скрипта:
этот скрипт необходимо поместить /opt/etc/cron.weekly
#!/bin/sh
rm -f "/opt/tmp/av-i386&ids-cumul.zip"
wget -P /opt/tmp --read-timeout=30 --connect-timeout=10 --dns-timeout=10 -t 0 --waitretry=10 -c http://dnl-eu11.kaspersky-labs.com/zips/av-i386%26ids-cumul.zip -a /opt/var/log/av/month.log
unzip -o "/opt/tmp/av-i386&ids-cumul.zip" -d /opt/share/www/avp/cumul
ИМХО, av-i386&ids-cumul.zip нужен только один раз, вначале. В дальнейшем же:
раз в неделю по воскресеньям нужно качать av-i386-weekly.zip.
раз в день с понедельника по субботу нужно качать av-i386-daily.zip
Так мне показалось по алгоритму обновлений касперского.
DemonGloom
24-06-2008, 19:13
Для DrWeb.
По завершении скрипта вы получите в указанных папках вирусные базы
PACKPATH - файл в который запакованы все обновления. Распаковать напрямик в C:\Program Files\DrWeb
TMPPATH - там лежат запакованные обновления так, как получены с сайта
BASESPATH - там лежат все распакованные базы
Запускать раз в день
#!/bin/sh
SERVER=ftp://updates.drweb.com/pub/drweb/bases/
BASESPATH=/opt/share/www/drweb
TMPPATH=/opt/tmp/drweb
PACKPATH=/opt/bases.zip
rm $TMPPATH/dwrtoday.zip
rm $TMPPATH/drwtoday.zip
rm $TMPPATH/dwntoday.zip
wget -nc -nd -P $TMPPATH -r -l 1 $SERVER
unzip -uoq "$TMPPATH/*" -d "$BASESPATH/"
zip -rj PACKPATH "$BASESPATH/"
#rm -r $TMPPATH
#rm -r $BASESPATH
#rm -r $PACKPATH
--------
Спасибо Antosha (http://wl500g.info/member.php?u=12915) за замечание, его исправление добавил.
Мой скриптик для NOD32 здесь (http://wl500g.info/showpost.php?p=100812&postcount=107).
Для DrWeb.
По завершении скрипта вы получите в указанных папках вирусные базы
PACKPATH - файл в который запакованы все обновления. Распаковать напрямик в C:\Program Files\DrWeb
TMPPATH - там лежат запакованные обновления так, как получены с сайта
BASESPATH - там лежат все распакованные базы
Запускать раз в день
Немного модифицировал скрипт, а то он имена каталогов добавлял:
#!/bin/sh
SERVER=ftp://updates.drweb.com/pub/drweb/bases/
TMPPATH=/tmp/av_bases/drweb/arch # лежат запакованные обновления так, как получены с сайта
BASESPATH=/tmp/av_bases/drweb/base # лежат все распакованные базы
PACKPATH=/tmp/av_bases/drweb/all_bases.zip # файл в который запакованы все обновления. Распаковать напрямик в "C:\Program Files\DrWeb"
rm $TMPPATH/dwrtoday.zip
rm $TMPPATH/drwtoday.zip
rm $TMPPATH/dwntoday.zip
wget -nc -nd -P $TMPPATH -r -l 1 $SERVER
unzip -uoq "$TMPPATH/*" -d "$BASESPATH/"
zip -rj $PACKPATH "$BASESPATH/"
#rm -r $TMPPATH
#rm -r $BASESPATH
#rm -r $PACKPATH
kirillk2
06-07-2008, 19:13
Расширенная версия скрипта, по мотивам исходного скрипта 2bars
После установки запустить
/opt/sbin/kavupdater.sh all
а дальше - через крон.
cat /opt/sbin/kavupdater.sh
#!/bin/sh
#
# kavupdater.sh
# v.0.2
# by k2 at 2008
#
# Description:
# Script for updating antivirus bases for KAV from zip-files
#
# Ussage:
# kavupdater.sh [-s serverpath] [-b bases] [-t tmp]
# [-i|--ids {yes|no}] [-r|--remove-unpacked {yes|no}]
# {daily|weekly|cumul|all}
#
# Example of Cron ussage:
#
# 05 06 * * * admin /opt/sbin/kavupdater.sh daily
# 00 06 * * 7 admin /opt/sbin/kavupdater.sh weekly
# 10 06 1 * * admin /opt/sbin/kavupdater.sh -b /opt/home/kav/cumul cumul
#
## Default settings:
## Full http-path to zips
serverpath="http://dnl-eu11.kaspersky-labs.com/zips"
## Include IDS-signs ("yes" or "no")
withids=yes
## Temp. path
tmp=/opt/tmp/kav
## Path for bases
bases=/opt/home/kav
## Remove unpacked files ("yes" or "no")
remove=yes
## With proxy
#http_proxy=http://127.0.0.1:3128/; export http_proxy
ussage() {
echo "Ussage: $0" >&2
echo " [-s serverpath] [-b bases] [-t tmp]"
echo " [-i|--ids {yes|no}] [-r|--remove-unpacked {yes|no}]"
echo " {daily|weekly|cumul|all}"
exit 3
}
while [ -n "$*" ]; do
case "$1" in
"-s") shift && serverpath=$1;;
"-b") shift && bases=$1;;
"-t") shift && tmp=$1;;
"-i"|"--ids") shift && withids=$1;;
"-r"|"--remove-unpacked") shift && remove=$1;;
*) action=$1;;
esac
shift
done
mkdir -p "$tmp"
[ ! -d "$tmp" ] && echo "Can't find temp directory $tmp" && exit 2 >&2
#mkdir -p "$bases"
[ ! -d "$bases" ] && echo "Can't find bases directory $bases" && exit 2 >&2
downloadFile() {
[ -z "$1" ] && echo "File name not defined!" && exit 1 >&2
rm -f "$tmp/$1"
wget -q -P "$tmp" --read-timeout=30 --connect-timeout=10 --dns-timeout=10 -t 0 --waitretry=10 -c "$serverpath/$1"
r=$?
return $r
}
unpackFile() {
[ -z "$1" ] && echo "File name not defined!" && exit 1 >&2
unzip -o "$tmp/$1" -d "$bases" >/dev/null
r=$?
return $r
}
getFiles() {
for f; do
downloadFile $f || ( echo "Error while downloading $f!" && exit 4 >&2 )
done
for f; do
unpackFile $f || ( echo "Error while unpacking $f!" && exit 5 >&2 )
done
[ ! "$remove"="yes" ] && return 0
for f; do
rm -f "$tmp/$1" || ( echo "Error while removing $f!" && exit 6 >&2 )
done
}
if [ "$withids"="yes" ]; then
prefix="av-i386&ids-"
else
prefix="av-i386-"
fi
case "$action" in
d|daily)
getFiles "$prefix"daily.zip
;;
w|weekly)
getFiles "$prefix"weekly.zip
;;
c|cumul)
getFiles "$prefix"cumul.zip
;;
a|all)
getFiles "$prefix"cumul.zip "$prefix"weekly.zip "$prefix"daily.zip
;;
wd|dw)
getFiles "$prefix"weekly.zip "$prefix"daily.zip
;;
*)
ussage
;;
esac
использовать в кроне можно например так:
cat /opt/etc/cron.d/kavcrons
# KAV updates
05 07 * * * admin /opt/sbin/kavupdater.sh d
00 07 * * 7 admin /opt/sbin/kavupdater.sh w
kirillk2
06-07-2008, 20:14
Возможно. Вот ссылка из гугла (сам не пробовал, ибо нодом не пользуюсь)
http://www.opennet.ru/openforum/vsluhforumID1/72801.html
а для NOD32 можно такое реальзовать *?
Для кого создавали эту тему (http://wl500g.info/showthread.php?t=14786)?
p.s. и эту :)
http://wl500g.info/showthread.php?t=7877&highlight=NOD32
Вот еще по-поводу скачивания баз и модулей KAV к себе на FTP:
http://forum.kaspersky.com/index.php?showtopic=53611
http://forum.kaspersky.com/index.php?showtopic=63883
А сервер обновления windows можно сделать?
можно, но не из роутера...
купить комп, поставить туда wsus... :)
можно, но не из роутера...
купить комп, поставить туда wsus... :)
Можно и на роутере, поставив Proxy с принудительным кэшированием файлов с соотв. сайтов.
чёто в этом есть... сквид вам в руки...
чёто в этом есть... сквид вам в руки...
Разумеется - давно и многими успешно пользуется...
но честно говоря, сквид с кешем сильно грузит... если rtorrent пускать с 10-15 закачками то у меня были случаи падения рутера :)
Можно и на роутере, поставив Proxy с принудительным кэшированием файлов с соотв. сайтов.
А можно про это поподробней, у меня роутер меньше недели, и пока я во всё этом не очень хорошо разбираюсь.
со временем придет...
была тема про сквид и кеш...
ставится сквид с кешем, после чего запускается обнаволение на одной машине, она выкачивает файлы из инета, сквид все чательно кеширует на жесткий диск... потом следующий клиент подключается и получает обновления моментально...
но честно говоря я не знаю по каким протоколам работает обновление винды, если по http ftp и иже с ними то выйдет...
Тк нод32 в последнее время не вызывает у меня доверия... я стал пользоваться KIS 2010 (антивирус + файрвол от Касперского)... и возникла необходимость в собственном сервере обновлений в локалке. В ходе поиска я наткнулся на вот эту тему (http://wl500g.info/showthread.php?t=14891). Все поставил/изменил пути чуток и все заработало! Теперь поподробнее.
1. Устанавливаете пакет unzip - ipkg install unzip
2. Скачиваете вложение к этому посту - kav_update.zip
3. Кидаете файл (естественно то что в архиве а не сам архив) куда вам угодно на роутер - я кинул в kav_update.sh прямо в корень /opt/etc/
4. Даете права на исполнение - командой chmod +x путь до скрипта
5. Запускаете на роутере этот скрипт с командой all (это нужно для первичной загрузки антивирусных баз) - ./путь до скрипта/kav_update.sh all
6. Скачиваете архив kav_update_d.zip и копируете его содержимое в /opt/etc/cron.daily
7. Скачиваете архив kav_update_w.zip и и копируете его содержимое в /opt/etc/cron.weekly
ВНИМАНИЕ! Если вы скопировали скрипт kav_update.sh НЕ в /opt/etc/ - вам нужно будет подредактировать файлы kav_update_d.sh и kav_update_w.sh
8. Дайте права этим двум скриптам - kav_update_d.sh и kav_update_w.sh (по аналогии с пунктом 4)
С роутером манипуляции закончены. Теперь что касается настроек антивируса.
Открываете окно настроек -> Вкладка обновление -> Источник обновления -> Нажимаете кнопку настройка -> Снимаете галку "Сервера обновления касперского" -> Жмете кнопку Добавить -> В поле источник вводите адрес http://айпи и порт (при необходимости) вашего сервера/kav/ (http://) (пример - http://192.168.1.1/kav/)
PS Код прикрепленных файлов
kav_update.sh:
#!/bin/sh
#
# kavupdater.sh
# v.0.2
# by k2 at 2008
#
# Description:
# Script for updating antivirus bases for KAV from zip-files
#
# Ussage:
# kavupdater.sh [-s serverpath] [-b bases] [-t tmp]
# [-i|--ids {yes|no}] [-r|--remove-unpacked {yes|no}]
# {daily|weekly|cumul|all}
#
# Example of Cron ussage:
#
# 05 06 * * * admin /opt/sbin/kavupdater.sh daily
# 00 06 * * 7 admin /opt/sbin/kavupdater.sh weekly
# 10 06 1 * * admin /opt/sbin/kavupdater.sh -b /opt/home/kav/cumul cumul
#
## Default settings:
## Full http-path to zips
serverpath="http://dnl-eu11.kaspersky-labs.com/zips"
## Include IDS-signs ("yes" or "no")
withids=yes
## Temp. path
tmp=/opt/share/www/kav/tmp
## Path for bases
bases=/opt/share/www/kav
## Remove unpacked files ("yes" or "no")
remove=yes
## With proxy
#http_proxy=http://127.0.0.1:3128/; export http_proxy
ussage() {
echo "Ussage: $0" >&2
echo " [-s serverpath] [-b bases] [-t tmp]"
echo " [-i|--ids {yes|no}] [-r|--remove-unpacked {yes|no}]"
echo " {daily|weekly|cumul|all}"
exit 3
}
while [ -n "$*" ]; do
case "$1" in
"-s") shift && serverpath=$1;;
"-b") shift && bases=$1;;
"-t") shift && tmp=$1;;
"-i"|"--ids") shift && withids=$1;;
"-r"|"--remove-unpacked") shift && remove=$1;;
*) action=$1;;
esac
shift
done
mkdir -p "$tmp"
[ ! -d "$tmp" ] && echo "Can't find temp directory $tmp" && exit 2 >&2
#mkdir -p "$bases"
[ ! -d "$bases" ] && echo "Can't find bases directory $bases" && exit 2 >&2
downloadFile() {
[ -z "$1" ] && echo "File name not defined!" && exit 1 >&2
rm -f "$tmp/$1"
wget -q -P "$tmp" --read-timeout=30 --connect-timeout=10 --dns-timeout=10 -t 0 --waitretry=10 -c "$serverpath/$1"
r=$?
return $r
}
unpackFile() {
[ -z "$1" ] && echo "File name not defined!" && exit 1 >&2
unzip -o "$tmp/$1" -d "$bases" >/dev/null
r=$?
return $r
}
getFiles() {
for f; do
downloadFile $f || ( echo "Error while downloading $f!" && exit 4 >&2 )
done
for f; do
unpackFile $f || ( echo "Error while unpacking $f!" && exit 5 >&2 )
done
[ ! "$remove"="yes" ] && return 0
for f; do
rm -f "$tmp/$1" || ( echo "Error while removing $f!" && exit 6 >&2 )
done
}
if [ "$withids"="yes" ]; then
prefix="av-i386&ids-"
else
prefix="av-i386-"
fi
case "$action" in
d|daily)
getFiles "$prefix"daily.zip
;;
w|weekly)
getFiles "$prefix"weekly.zip
;;
c|cumul)
getFiles "$prefix"cumul.zip
;;
a|all)
getFiles "$prefix"cumul.zip "$prefix"weekly.zip "$prefix"daily.zip
;;
wd|dw)
getFiles "$prefix"weekly.zip "$prefix"daily.zip
;;
*)
ussage
;;
esac
kav_update_d.sh:
#!/bin/sh
/opt/etc/kav_update.sh d
kav_update_w.sh:
#!/bin/sh
/opt/etc/kav_update.sh w
PS я еще буду делать (на всякий пожарный) команду /opt/etc/kav_update.sh w не уверен в ее необходимости, но благо трафик не ограничение - хуже не будет
PSS 99,99% скрипта взято тут (http://wl500g.info/showpost.php?p=103245&postcount=5) (я только подредактировал пути чуть чуть)
PSSS был бы очень рад видеть обновлялку Каспера в супер-установочном скрипте, которому посвящена эта тема форума =)
valerakvb
15-04-2010, 22:44
Тк нод32 в последнее время не вызывает у меня доверия... я стал пользоваться KIS 2010 (антивирус + файрвол от Касперского)... и возникла необходимость в собственном сервере обновлений в локалке. В ходе поиска я наткнулся на вот эту тему (http://wl500g.info/showthread.php?t=14891). Все поставил/изменил пути чуток и все заработало! Теперь поподробнее.=)
Спасибо вам конечно за такую детальную инструкцию по установке антивируса Жени Касперского, но при чем тут эта тема :confused:
Открывайте новую тему и советуйте там :cool:
У меня лично к Касперу другое мнение (начиная с 1987 года и по сей день, если еще кто знает такого из "Диалог Наука" антивирус Лозинского):eek:
А если вам что-то в этом пакете (скрипте) "в последнее время не вызывает доверия" - так и не ставьте... никто вас и не принуждает
P.S. Я пропорщик или где ??? ( У нас так прапор в армии говорил)
Прикольно раз (http://www.youtube.com/watch?v=XIgnVqLBSw4&feature=related) и два (http://www.youtube.com/watch?v=b3mtPqGUh2M)