Инструменты пользователя

Инструменты сайта


blog:2011:0323_drweb_es_create_id

Массовое создание станций в DrWeb ES

Как создать много станций на антивирусном сервере DrWeb Enterprise Suite? Техподдержка «доктора» порадовала и пообещала: «Будет!». Но нам ждать некогда. Антивирус нужен здесь и сейчас на 200 компьютерах. Поэтому читаем, как я это сделал:

В моём случае необходимость создания станций на сервере продиктована несколькими причинами:

  1. управление антивирусным сервером DrWeb ES осуществляется другим подразделением университета;
  2. подтверждение станций осуществляется вручную человеком из этого подразделения;
  3. в процессе ручного подтверждения некоторые станции «пропадают» (как я понял проблема в том, что если комп выключен на момент подтверждения, то он не будет отображаться в списке неподтверждённых);
  4. антивирус устанавливается скриптом, хочется чтобы он сразу автоматически подтверждался;
  5. хочется использовать свои идентификаторы, а не сгенерированные рандомные;
  6. хочется повторно использовать те же самые идентификаторы станций.

Для начала устанавливаем инструменты:

  • linux - без комментариев;
  • epiphany-browser - смотреть cookie после подключения к серверу;
  • wireshark - смотреть HTTP POST-данные отправляемые браузером при создании станции;
  • curl - повторять отправку HTTP POST-данных много раз.

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

  • запускаем Epiphany и очищаем в нём все cookie (Edit - Personal Data - Cookies - Clear All);
  • заходим с его помощью в административный интерфейс антивирусного сервера (например: http://drweb.kasatkin.org:9080/esuite/index.ds);
  • снова открываем настройки cookie и ищем там куки с именем sess_uid, с помощью кнопки Properties копируем Content этого куки. Аналогично поступаем с куки drwadmin;
  • сохраняем эти данные на будущее в таком виде:
    "drwadmin=7e1a9bf4-bdf7-4632-b233-6bbfb369e287; sess_uid=D4HCcTgNAa2xSTvlShT1"
  • запускаем Wireshark от имени root и стартуем перехват пакетов (устанавливаем максимальный размер перехватываемого пакета побольше);
  • создаём тестовую станцию в веб-интерфейсе DrWeb;
  • сворачиваем окно Epiphany и на протяжении всего процесса не закрываем его, чтобы не потерять cookie;
  • в Wireshark останавливаем перехват пакетов;
  • ищем строку примерно такого вида:
    HTTP	POST http://drweb.kasatkin.org:9080/esuite/network/index.ds?new_station=1 HTTP/1.1  (application/x-www-form-urlencoded)
  • жмём на этой строке правой кнопкой мыши и выбираем «Follow TCP stream» - откроется красивое окошко, в котором красным выделен искомый нами HTTP POST;
  • копируем строку после «Content-Length: 486». В моём случае она выглядела так:
    stid=IDHERE&name=HOSTNAMEHERE&password=PASSWORDHERE&confirmation=PASSWORDHERE&descr=&stationplIP=&stationminIP=&stationplIPv6=&stationminIPv6=&stationplIPX=&stationminIPX=&organization=&department=&country=&countryISO=&province=&city=&street=&floor=&room=&LatitudeDegree=0&LatitudeMinutes=0&LatitudeSeconds=0&LongitudeDegree=0&LongitudeMinutes=0&LongitudeSeconds=0&sGroups=20e27d73-d21d-b211-a788-85419c46f0e6&sGroups=c1eeef66-6bcc-471b-829a-42cdecff6170&prGroup=c1eeef66-6bcc-471b-829a-42cdecff6170
  • как видно из строки я создавал тестовую станцию HOSTNAMEHERE с идентификатором IDHERE и паролем PASSWORDHERE;
  • создаём bash-скриптик:
    create_stations.sh
    #!/bin/bash
     
    ID=$1
    NAME=$2
    DPASSW=blaPASSWORDbla
     
    COOKIE="drwadmin=7e1a9bf4-bdf7-4632-b233-6bbfb369e287; sess_uid=D4HCcTgNAa2xSTvlShT1"
    MAINURL="http://drweb.kasatkin.org:9080/esuite/network/index.ds?new_station=1"
     
    /usr/bin/curl --cookie "$COOKIE" --data "stid=${ID}&name=${NAME}&password=${DPASSW}&confirmation=${DPASSW}&descr=&stationplIP=&stationminIP=&stationplIPv6=&stationminIPv6=&stationplIPX=&stationminIPX=&organization=&department=&country=&countryISO=&province=&city=&street=&floor=&room=&LatitudeDegree=0&LatitudeMinutes=0&LatitudeSeconds=0&LongitudeDegree=0&LongitudeMinutes=0&LongitudeSeconds=0&sGroups=20e27d73-d21d-b211-a788-85419c46f0e6&sGroups=c1eeef66-6bcc-471b-829a-42cdecff6170&prGroup=c1eeef66-6bcc-471b-829a-42cdecff6170" "$MAINURL"

Допиливаем его на свой вкус и цвет и запускаем его в цикле столько, сколько нам хочется, например так:

for i in `seq 1 21`; do ./create_stations.sh IDHERE_${i} HOSTNAMEHERE_${i} && sleep 1; done;

В результате создастся 21 станция с идентификаторами вида IDHERE_xx, именами вида HOSTNAMEHERE_xx и одинаковым на всех паролем blaPASSWORDbla.

Далее можно устанавливать антивирус примерно так:

drwinst.exe -id=IDHERE_xx -key=drwcsd.pub -pwd=blaPASSWORDbla -regagent drweb.kasatkin.org

Для того, чтобы повторить процесс в следующий раз надо будет заново зайти в админку DrWeb-а и получить новые значения cookie.

blog/2011/0323_drweb_es_create_id.txt · Последнее изменение: 2022-02-19 18:16 — 127.0.0.1