Как заддосить сайт неприятеля

1746710424479.png


Есть такая интересная тулза для нагрузочного тестирования, которая кстати не хило так может нагрузить проц. сервера (Смотри скрин выше, запуск http-флуд запросами, всего 5 потоков).)

Apache JMeter:
  • Описание: Один из самых популярных инструментов для нагрузочного тестирования. Подходит для тестирования веб-приложений, API, баз данных и других систем.
  • Функции:
    • Тестирование HTTP, HTTPS, SOAP, REST, FTP и других протоколов.
    • Гибкость и возможность настройки сложных сценариев.
    • Отчеты в виде графиков и статистики.
  • Платформа: Java, работает на Windows.
  • Сайт: Apache JMeter
Использование Apache JMeter на Windows включает несколько шагов от установки до запуска тестов. Вот подробное руководство:


1. Установить Apache JMeter​

  1. Скачать JMeter:
    • Перейдите на официальный сайт Apache JMeter.
    • Скачайте архив JMeter (обычно это .zip файл).
  2. Установить JMeter:
    • Разархивируйте загруженный файл в любую удобную папку на вашем компьютере (например, C:\JMeter).
  3. Убедиться в наличии Java:

2. Настройка переменных окружения (Если нужно, обычно не нужно, этот пункт нужен, если JMeter не запускается с ошибкой что не установлен JAVA)​

Чтобы Java работала в командной строке (CMD) и других приложениях, нужно настроить переменные окружения:
В меню пуск->Поиск, ввести Изменение системных переменных
Нажать кнопку "Переменные среды" и нажмите Создать.
Введите:
Имя переменной: JAVA_HOME
Значение переменной: путь к установленной Java, нужно путь до exe (например, C:\Program Files\Java\jdk-XX).
Нажмите OK.
3. Настройка переменной Path:
В списке "Системные переменные" найдите переменную Path и нажмите Изменить.
Нажмите Создать и добавьте:
%JAVA_HOME%
Нажмите OK.

1746710445439.png


3. Запустить JMeter​

  1. Перейдите в папку, где вы разархивировали JMeter (например, C:\JMeter).
  2. Откройте папку bin.
  3. Дважды щелкните по файлу jmeter.bat для запуска графического интерфейса JMeter.
  4. Если всё установлено правильно, откроется главное окно Apache JMeter.

4. Создание тестового плана​

Тестовый план описывает сценарии, которые вы хотите протестировать. Вот пример настройки теста для веб-сайта:

1. Добавить тестовый план​

[*]После запуска JMeter:
[*]В левой панели щелкните правой кнопкой мыши на "Test Plan".
[*]Выберите Add → Threads (Users) → Thread Group.

2. Настроить группу потоков (Thread Group)

[*]В параметрах Thread Group задайте:
[*]Number of Threads (Users): Количество виртуальных пользователей (например, 10).
[*]Ramp-Up Period (in seconds): Время, за которое все пользователи начнут выполнение (например, 20 секунд).
[*]Loop Count: Количество итераций теста (например, 5).

3. Добавить запрос HTTP

[*]Щелкните правой кнопкой мыши на Thread Group.
[*]Выберите Add → Sampler → HTTP Request.
[*]В параметрах:
[*]В поле Server Name or IP укажите домен (например, example.com).
[*]В поле Path укажите путь к странице (например, /index.html).
[*]Вы можете настроить метод запроса (GET, POST и др.) и параметры.

4. Добавить слушатель результатов

[*]Щелкните правой кнопкой мыши на Thread Group.
[*]Выберите Add → Listener → View Results Tree или Summary Report.


5. Запустить тест​


[*]Нажмите зеленую кнопку "▶" (в верхней панели) для запуска теста.
[*]Мониторьте результаты в выбранных слушателях (например, View Results Tree или Summary Report).


6. Анализировать результаты​


[*]View Results Tree: Показывает подробности каждого запроса, включая ответ сервера.
[*]Summary Report: Сводный отчет о производительности, включая среднее время ответа, количество ошибок и т.д.
[*]Graph Results: Отображает графики нагрузки.

1746710468670.png


В итоге после запуска теста, на сервере начнут создаваться потоки веб сервера апаче, например как у меня на первом скрине и начнется потребление CPU, чем больше потоков тем больше потоков веб-сервера и больше нагрузка.
Правда и защитится от этого легко, достаточно ограничить на своём сервере число коннектов и блокировать привышающие айпи-адреса, либо просто ограничеть число потоков с одного айпи адреса.

Вот-так!)
Следующая страница цикла: SlowHTTPTest