Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практические работы / Практическая работа 4

.pdf
Скачиваний:
30
Добавлен:
20.03.2022
Размер:
216.25 Кб
Скачать

Задание на практическое занятие №4.

1.На основе понимания состава и содержания ранее прочитанной лекции по основным положениям нагрузочного тестирования, осуществить разработку и проверку выполнения сценариев нагрузочного тестирования с использованием web-сервера nginx, средств ab, wget, wireshark (tcpdump).

2.Подготовительные действия:

В виртуальной машине Debian 10 от пользователя root привести файл /etc/apt/sources.list к виду

# deb cdrom:[Debian GNU/Linux 10.2.0 _Buster_ - Official amd64 DVD Binary-1 20191116-09:57]/ buster contrib main

#deb cdrom:[Debian GNU/Linux 10.2.0 _Buster_ - Official amd64 DVD Binary-1 20191116-09:57]/ buster contrib main

deb http://security.debian.org/debian-security buster/updates main contrib non-free deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

#buster-updates, previously known as 'volatile'

#A network mirror was not selected during install. The following entries

#are provided as examples, but you should amend them as appropriate

#for your mirror of choice.

#

deb http://deb.debian.org/debian/ buster-updates main contrib non-free deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free

deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free

#deb http://deb.debian.org/debian/ unstable main contrib non-free

т. е. в нем, скорее всего, отсутствуют две строки

deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free

и их нужно в файл /etc/apt/sources.list добавить.

Далее следует файл /etc/apt/apt.conf.d/02proxy привести к виду

Acquire::http::Proxy "http://apt.dcti.sut.ru:3142/";

т. е. взять в кавычки подстоку "http://apt.dcti.sut.ru:3142/"

Далее следует выполнить

apt clean cache

apt update

после чего в список репозиториев будут добавлены необходимые репозитории.

В случае, если при выполнении apt update возникает ошибка, нужно выполнить подключение к Интернет в "родительской" ОС Debian.

3. Установка web-сервера nginx, средств ab, wget, wireshark (tcpdump)

apt install nginx apache2-utils wget wireshark tcpdump

При установке wireshark на вопрос о возможности запуска сбора сетевого трафика не только от пользователя root ответить Yes После установки ПО выполнить добавление пользователя sysadmin в группу wireshark

usermod -a -G wireshark sysadmin

и выполнить перезагрузку ОС Debian 10

shutdown -r now

4. Настройка web-сервера nginx

Убедиться в том, что web-сервер nginx осуществляет прослушивание сокета 80

netstat -tanp | grep nginx systemctl status nginx

Если демон nginx отсутствует, то следует его запустить и добавить его запуск в список автоматически запускаемых демонов

systemctl start nginx

systemctl enable nginx

systemctl status nginx

Убедиться в том, что web-сервер nginx функционирует

wget http://localhost

cat ./index.html

Сохранить исходные конфигурационные файлы nginx.conf

cp /etс/nginx/nginx.conf /etс/nginx/nginx.conf.orig

cp /etс/nginx/sites-availabe/default /etс/nginx/sites-availabe/default.orig

Убедиться в том, что соответствующие конфигурационные файлы и их копии не пусты

ls -la /etc/nginx/nginx.conf*

ls -la /etс/nginx/sites-availabe/default*

Отредактировать конфигурационный файл /etс/nginx/sites-availabe/default добавлением в секцию server сразу после секции location / {

...

}

дополнительной секции location /data/ {

root /var/www/; autoindex on;

}

Выполнить проверку корректности содержимого конфигурационного файла nginx.conf

/etc/init.d/nginx configtest

При выявлении ошибок выполнить их устранение.

Далее, в случае успешного выполнения проверки корректности содержимого конфигурационного файла nginx.conf осуществить перезапуск webсервера nginx

systemctl restart nginx

Выполнить создание папки и генерацию тестового файла случайным содержимым, задание необходимых привилегий доступа

mkdir /var/www/data/

cd /var/www/data/

dd if=/dev/urandom of=/var/www/data/file bs=64M count=16 iflag=fullblock

chown www-data:www-data /var/www/ -R

5. Нагрузочное тестирование web-сервера nginx

Выполнить запуск утилиты ab с суммарным количеством запросов страницы 100 и количеством конкурентных запросов 10

ab -c 10 -n 100 http://localhost/data/

Записать полученные значения :

среднее значение обработанных запросов в секунду _____________________

среднее время обработки запроса _____________________________________

скорость передачи данных___________________________________________

Выполнить скачивание файла /var/www/data/file

wget http://localhost/data/file

Записать полученную среднюю установившуюся скорость скачивания файла

_______________________________________________________________________________________________

В соответствии с инструкцией в приложении запустить сбор сетевой статистики средством wireshark или tcpdump

_______________________________________________________________________________________________

Повторить выполнение скачивания файла /var/www/data/file

wget http://localhost/data/file

Записать полученную среднюю установившуюся скорость скачивания файла с пользованием wget

_______________________________________________________________________________________________

Одинаковые или различные скорости в первом и втором скачивании средством wget? Почему?

_______________________________________________________________________________________________

Остановить сбор сетевой статистики средствами wireshark или tcpdump.

В соответствии с инструкцией в приложении средствами wireshark выполнить построение графика зависимости скорости передачи от времени.

Сравнить значение средней скорости передачи, полученной из графика, построенного средствами wireshark, со значением средней установившейся скорости скачивания с использованием средства wget (второе скачивание).

Одинаковые или различные скорости? Почему?

_______________________________________________________________________________________________

Сообщить о выполнении практического задания преподавателю. Подготовиться и быть в готовности ответить на вопросы преподавателя.

Приложение. Работа с tcpdump и wireshark

Для пассивного сканирования сетевой активности узла и/или сети используются программные средства сбора сетевого трафика и анализа сетевых протоколов tcpdump и wireshark, которые также целесообразно использовать для разбора и анализа собранного дампа трафика, определения активности узлов сети и поиска в нем возможных аномалий.

Установка

apt install tcpdump wireshark

Справочная информация

man tcpdump man wireshark

Запуск утилиты сканирования следует выполнять в зависимости от решаемой задачи. Например, команда

tcpdump -i enp0s8 -s 1500 -w /tmp/20200420.pcap

для всех пакетов, пришедших на интерфейс enp0s8 размером не более 1 500 байт выполнит запись в файл /tmp/20210320.pcap, который возможно обработать программным средством wireshark, рассматриваемым далее,

команда

tcpdump -i enp0s8 -s 0 -AX -vvv -nn ether host 00:00:01:AA:BB:CC

для всех пакетов , пришедших на интерфейс enp0s8 любого размера от сетевой платы с mac-адресом 00:00:01:AA:BB:CC выполнит их

раскодирование и вывод бинарной и человеко-читаемой информации на экран, что может быть использовано для анализа сетевого взаимодействия, например, по протоколу dhcp,

а команда

tcpdump -i enp0s8 -s 0 -AX -vvv -nn host 192.168.50.111

для всех пакетов , пришедших на интерфейс enp0s8 любого размера от сетевой платы с IPv4-адресом 192.168.50.111 выполнит их

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

Анализатор сетевых протоколов Wireshark

Wireshark (https://www.wireshark.org) – анализатор сетевых протоколов (сниффер), с помощью которого осуществлять анализ процессов передачи данных и обеспечения функционирования, а также выявлять различные аномалии. В ходе своей работы Wireshark не оказывает практически никакого влияния на передачу пакетов в сети за исключением функции добавления незначительного количества пакетов для выполнения разрешений доменных имен и других элементов пакетов из двоичных значений в человеко-читаемые значения, которую можно отключить в настройках Wireshark.

Запуск

$ wireshark &

 

При необходимости, для отключения разрешений доменных имен и других элементов пакетов следует перейти в

Edit – Preferences –

Name Resolution

 

– сбросить все имеющиеся соответствующие отметки [√]

 

– нажать на кнопку Ok

 

Для запуска процесса перехвата пакетов следует в Capture – Options – Input

выбрать сетевой интерфейс выделением слева от него соответствующей отметки [√]

нажать на кнопку Start

Для останова процесса перехвата пакетов следует в Capture

– выбрать пункт меню Stop

Для сохранения результатов процесса перехвата пакетов следует в File – Save As...

в поле Имя файла задать произвольное имя файла, разделитель точку и фиксированное расширение pcap, например, ping-20210320.pcap, где ping – наименование исследуемого протокола, 20210320 – дата в формате ГГГГММДД (ISO date)

выбрать в выпадающем списке Тип файла значение RedHat 6.1 tcpdump – pcap

нажать на кнопку Save

Для загрузки и анализа сохраненных результатов процесса перехвата пакетов следует в File – Open...

выбрать соответствующее имя файла

нажать на кнопку Open

Для выполнения фильтрации пакетов в окне со списком перехваченных пакетов следует:

по каким-либо признакам (значение ip-адреса, значение mac-адреса, др.) найти какой-либо (необязательно первый) требуемый пакет, соответствующий требуемому потоку,

подвести на него графическое изображение манипулятора графической информации,

нажать на правую клавишу манипулятора графической информации,

в выпадающем списке выбрать какой-либо доступный Follow TCP/UDP/SSL stream,

в открывшемся окне осуществить анализ отфильтрованной последовательности,

в поле Filter после этого будет автоматически сформировано правило фильтрации для данного потока, например tcp.stream eq 0, которое можно редактировать вручную, например, для следующего потока значение Filter может быть задано как tcp.stream eq 1 или tcp.stream eq 2.

Для выполнения анализа средствами wireshark априорно известного протокола, который, например, функционирует на не стандартном

сокете, следует в Analyze – Decode As...

нажатием на [+] и выбрать соответствующий известный протокол, который, возможно, будет предложен автоматически, например, http filter xml

нажать на кнопку Ok

Для построения графиков зависимости переданной/принятой информации от времени следует в Statistics – IO Graph

выбрать для Graph 1 значение ip.src== <значение ip-адреса сервера>

отжать кнопку Graph 1 и снова нажать кнопку Graph 1, в результате чего перерисуется график соответствующего цвета для пакетов, источником которого является ip-адрес сервера

выбрать для Graph 2 значение ip.src== <значение ip-адреса клиента>

отжать кнопку Graph 2 и снова нажать кнопку Graph 2, в результате чего перерисуется график соответствующего цвета для пакетов, источником которого является ip-адрес клиента

выбрать для Graph 3 значение ip

отжать кнопку Graph 3 и снова нажать кнопку Graph 3, в результате чего перерисуется график соответствующего цвета для всех собранных пакетов

для наглядности отображения различий входящих и исходящих пакетов следует попробовать изменить значения в полях Interval {0.1 sec, 0.01 sec}, Pixels per tick {2, 5, 10}, Y Axis = Bytes/Tick, Scale {2000, 5000}, Smooth = No filter или другими, позволяющими наглядно отобразить количественные различия входящих и исходящих пакетов.