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

1746710424479.png


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

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


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

  1. Скачать JMeter:
  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