У
Удалённый пользователь
Guest
Автор темы
Сегодня я поведаю вам о методе своеобразного ддоса с помощью apache-utils. Чтобы метод сработал сайт должен стоять на веб сервере Apache
Ну начнем)
Давайте выполним тестирование какого-либо сайта и рассмотрим содержание отчета, который генерирует ab.
Сначала выводится различная информация о проводимом тесте, такая как типа серверного ПО, хост, порт, путь и тд. Дальше идут более интересные характеристики. Рассмотрим наиболее важные из них:
Для выполнения POST-запроса необходимо составить тело запроса и сохранить его в файл. Для этого напишем небольшой скрипт:
После этого в файле /tmp/body появится следующее содержимое:
Теперь можно запускать тестирование:
Ну начнем)
Установка
Для того чтобы установить ab в debian необходимо установить пакет apache2-utils:apt-get install apache2-utils
Параметры
Утилита запускается с помощью команды ab. Далее рассмотрим основные параметры.- -c — очень важный параметр. Определяет количество параллельных запросов отправляемых одновременно
- -n — количество отправляемых запросов
- -t — максимальное количество секунд отведенное на тест. Подходит для тестирования приложения в течении определенного временного промежутка. При этому необходимо задать большое значение параметру -n
- -C cookie-name=value — добавляем cookie в каждый запрос к серверу
- -H — задаем заголовок запроса
- -T — Content-type заголовок запроса
- -p — файл содержащий тело POST запроса
Давайте выполним тестирование какого-либо сайта и рассмотрим содержание отчета, который генерирует ab.
Код:
ab -c 10 -n 100 http://google.com/
Benchmarking google.com (be patient).....done
Server Software: gws
Server Hostname: google.com
Server Port: 80
Document Path: /
Document Length: 219 bytes
Concurrency Level: 10
Time taken for tests: 1.290 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 54000 bytes
HTML transferred: 21900 bytes
Requests per second: 77.51 [#/sec] (mean)
Time per request: 129.018 [ms] (mean)
Time per request: 12.902 [ms] (mean, across all concurrent requests)
Transfer rate: 40.87 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 54 56 2.0 55 63
Processing: 70 72 2.4 72 82
Waiting: 70 72 2.3 72 82
Total: 124 128 3.4 127 140
Percentage of the requests served within a certain time (ms)
50% 127
66% 128
75% 129
80% 130
90% 133
95% 134
98% 138
99% 140
100% 140 (longest request)
Сначала выводится различная информация о проводимом тесте, такая как типа серверного ПО, хост, порт, путь и тд. Дальше идут более интересные характеристики. Рассмотрим наиболее важные из них:
- Time taken for tests — суммарное время потраченное на весь тест
- Complete requests — количество выполненных запросов
- Failed requests — количество запросов завершенных отказом
- Total transferred и HTML transferred — суммарный объем и объем html переданные во время теста
- Requests per second или rps — количество обрабатываемых запросов в секунду
- Time per request — среднее время затраченное на запрос с и без учета распараллеливания
- Transfer rate — скорость передачи данных при прохождении теста
Дополнительно. Пример выполнения POST-запроса в ab
Для выполнения POST-запроса необходимо составить тело запроса и сохранить его в файл. Для этого напишем небольшой скрипт: Код:
1, 'test2' => 'Second test');
$body = http_build_query($params);
file_put_contents('/tmp/body', $body);
После этого в файле /tmp/body появится следующее содержимое:
test1=1&test2=Second+test
Теперь можно запускать тестирование:
ab -T application/x-www-form-urlencoded -p /tmp/body -n 10 http://localhost/test/ab/post-handler.php