пятница, 19 декабря 2008 г.

Локальное зеркало для AVP Kaspersky 6

В поисках рецепта создания сабжа наткнулся на обсуждение в forum.lissyara.su. Взяв за основу опубликованный rambomax'ом скрипт, создал веб-зеркало для корпоративной сети.

Предполагается что веб-сервер уже настроен и работает.

  1. Устанавливаем программы из репозитария
    $ sudo apt-get install wget unzip
  2. Создаем директории
    $ sudo mkdir -p /scripts /www/avp-updates /var/samba/share/Avp
  3. Создаем скрипт обновления «/scripts/avp-updates.sh»
    #!/bin/sh
    #--- BEGIN ---
    AVURL=ftp://downloads1.kaspersky-labs.com/zips/
    FTPDIR=/var/samba/share/Avp
    AVPDIR=/www/avp-updates
    WGET=/usr/bin/wget
    UZIP=/usr/bin/unzip

    $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-cumul.zip
    $UZIP -t $FTPDIR/av-i386-cumul.zip
    FLAG_C=$?

    $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-weekly.zip
    $UZIP -t $FTPDIR/av-i386-weekly.zip
    FLAG_W=$?

    $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-daily.zip
    $UZIP -t $FTPDIR/av-i386-daily.zip
    FLAG_D=$?

    #### EXTRACT FILES FROM ARCHIVE
    /bin/rm -f $AVPDIR/*

    if [ $FLAG_C -ne 0 ]
    then
    rm $FTPDIR/av-i386-cumul.zip
    else
    $UZIP -o $FTPDIR/av-i386-cumul.zip -d "$AVPDIR"
    fi

    if [ $FLAG_W -ne 0 ]
    then
    rm $FTPDIR/av-i386-weekly.zip
    else
    $UZIP -o $FTPDIR/av-i386-weekly.zip -d "$AVPDIR"
    fi

    if [ $FLAG_D -ne 0 ]
    then
    rm $FTPDIR/av-i386-daily.zip
    else
    $UZIP -o $FTPDIR/av-i386-daily.zip -d "$AVPDIR"
    fi
  4. Делаем скрипт исполняемым
    $ sudo chmod +x /scripts/avp-updates.sh
  5. Настраиваем crontab на запуск нашего скрипта каждый день в два часа ночи
    $ sudo -s
    # crontab -l 2>/dev/null > /tmp/avp-cron-XXX.tmp
    # echo >> /tmp/avp-cron-XXX.tmp
    # echo "0 2 * * * /scripts/avp-updates.sh" >> /tmp/avp-cron-XXX.tmp
    # crontab /tmp/avp-cron-XXX.tmp
    # rm /tmp/avp-cron-XXX.tmp
    # exit
  6. Создаем виртуальный хост в apache2 для веб-зеркала.
    Файл «/etc/apache2/sites-available/avp-updates»
    <VirtualHost *:80>
    ServerAdmin demiurg@avp-updates.www
    DocumentRoot /www/avp-updates
    ServerName avp-updates.www

    ErrorLog /var/log/apache2/avp-updates_error-log
    CustomLog /var/log/apache2/avp-updates_log common

    <Directory "/www/avp-updates">
    Options Indexes
    AllowOverride None
    Order Deny,Allow
    Allow from All
    </Directory>
    </VirtualHost>
  7. Активируем созданный хост
    $ sudo ln -s ../sites-available/avp-updates /etc/apache2/sites-enabled/050-avp-updates
  8. Проверяем конфиг и ребутаем веб-сервер
    $ sudo apache2ctl configtest
    $ sudo /etc/init.d/apache2 restart

Комментариев нет: