пятница, 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»
    1. #!/bin/sh
    2. #--- BEGIN ---
    3. AVURL=ftp://downloads1.kaspersky-labs.com/zips/
    4. FTPDIR=/var/samba/share/Avp
    5. AVPDIR=/www/avp-updates
    6. WGET=/usr/bin/wget
    7. UZIP=/usr/bin/unzip
    8. $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-cumul.zip
    9. $UZIP -t $FTPDIR/av-i386-cumul.zip
    10. FLAG_C=$?
    11. $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-weekly.zip
    12. $UZIP -t $FTPDIR/av-i386-weekly.zip
    13. FLAG_W=$?
    14. $WGET -N --random-wait --retry-connrefused -P "$FTPDIR" -t 0 $AVURL/av-i386-daily.zip
    15. $UZIP -t $FTPDIR/av-i386-daily.zip
    16. FLAG_D=$?
    17. #### EXTRACT FILES FROM ARCHIVE
    18. /bin/rm -f $AVPDIR/*
    19. if [ $FLAG_C -ne 0 ]
    20. then
    21. rm $FTPDIR/av-i386-cumul.zip
    22. else
    23. $UZIP -o $FTPDIR/av-i386-cumul.zip -d "$AVPDIR"
    24. fi
    25. if [ $FLAG_W -ne 0 ]
    26. then
    27. rm $FTPDIR/av-i386-weekly.zip
    28. else
    29. $UZIP -o $FTPDIR/av-i386-weekly.zip -d "$AVPDIR"
    30. fi
    31. if [ $FLAG_D -ne 0 ]
    32. then
    33. rm $FTPDIR/av-i386-daily.zip
    34. else
    35. $UZIP -o $FTPDIR/av-i386-daily.zip -d "$AVPDIR"
    36. 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»
    1. <VirtualHost *:80>
    2. ServerAdmin demiurg@avp-updates.www
    3. DocumentRoot /www/avp-updates
    4. ServerName avp-updates.www
    5. ErrorLog /var/log/apache2/avp-updates_error-log
    6. CustomLog /var/log/apache2/avp-updates_log common
    7. <Directory "/www/avp-updates">
    8. Options Indexes
    9. AllowOverride None
    10. Order Deny,Allow
    11. Allow from All
    12. </Directory>
    13. </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

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