Купить сервер в Киеве. Cерверы и рабочие станции в Украине
Продажа мощных серверов по низким ценам. Серверы Dell, HP, Supermicro. Мощные рабочие станции из США. В наличии новые и б/у за наличку и по безналу.
  • Главная
  • Серверы
  • Рабочие станции
  • Комплектующие
  • Статьи
  • Контакт
  • Главная
  • Серверы
  • Рабочие станции
  • Комплектующие
  • Статьи
  • Контакт

Полезные команды, которые могут пригодиться при DDoS и не только

В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main ‘$remote_addr — $remote_user [$time_local] «$host» «$request» ‘
‘$status $body_bytes_sent «$http_referer» ‘
‘»$http_user_agent» «$http_x_forwarded_for» -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — — [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru/» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» «-» -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ‘ ‘ -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).

Покажет (и будет обновляться в режиме реального времени) что-то вроде:

3199 elements in 27 seconds (118.48 elements/s)
1 337 12.48/s 95.65.66.183
2 308 11.41/s 122.29.177.10
3 304 11.26/s 122.18.251.54
4 284 10.52/s 92.98.80.164
5 275 10.19/s 188.239.14.134
6 275 10.19/s 201.87.32.17
7 270 10.00/s 112.185.132.118
8 230 8.52/s 200.77.195.44
9 182 6.74/s 177.35.100.49
10 172 6.37/s 177.34.181.245

Где в данном случае колонки означают:

  • 1 — порядковый номер
  • 2 — количество запросов с данного IP
  • 3 — количество запросов в секунду с данного IP
  • 4 — собственно сам IP

Вверху показывается суммарная статистика по всем запросам

В данном случае мы видим, что с IP 95.65.66.183 идет 12,48 запросов/секунду и за последние 27 секунд было сделано 337 запросов. По остальным строкам аналогично.

Разберем по частям:
tail -f /var/log/nginx/nginx.access.log — в непрерывном режиме считываем конец лог-файла

cut -d ‘ ‘ -f 1 — разделяем строку на «подстроки» разделителем, указанным в флаге -d. (в данном примере указан пробел).
Флаг -f 1 — показываем только поле с порядковым номером «1» (в данном случае это поле будет содержать IP, с которого идет запрос)

logtop — считает количество одинаковых строк (в данном случае IP), сортирует их в порядке убывания и выводит списком, попутно добавляя статистику (в Debian ставится через aptitude из стандартного репозитория).

2. grep «&key=» /var/log/nginx/nginx.access.log | cut -d ‘ ‘ -f 1 | sort | uniq -c | sort -n | tail -n 30 — покажет распределение какой-либо строки по IP в логе.

В моем случае мне нужно было собрать статистику как часто один IP использует в запросе параметр &key=….

Покажет что-то вроде такого:

31 66.249.69.246
47 66.249.69.15
51 66.249.69.46
53 66.249.69.30
803 66.249.64.33
822 66.249.64.25
912 66.249.64.29
1856 66.249.64.90
1867 66.249.64.82
1878 66.249.64.86

  • 1 — число вхождений строки (в данном случае IP)
  • 2 — собственно сам IP

В данном случае мы видим, что с IP 66.249.64.86 суммарно пришло 1878 запросов (и потом, если посмотрим в Whois — увидим что этот IP принадлежит Google и не является «зловредным»)

Разберем по частям:

grep «&key=» /var/log/nginx/nginx.access.log — находим все строки в логе, содержащие подстроку «&key=» (не важно в какой части строки)
cut -d ‘ ‘ -f 1 — (см. предыдущий пример), выведем IP
sort — отсортируем строки (нужно для корректной работы следующей команды)
uniq -c — покажем уникальные строки + подсчитаем количествово вхождений этих строк (флаг -с)
sort -n — отсортируем используя числовой режим сортировки (флаг -n)
tail -n 30 — выведем 30 строк с наибольшим количеством вхождений (флаг -n 30, можно указать произвольное число строк)

Все запросы выше приведены для Debian или Ubuntu, но думаю в других Linux дистрибутивах команды будут иметь похожий вид.

Моя подборка, лет 5 назад откуда-то скопировал, часто выручают и логи не требуются:

Cколько коннектов на 80 порт: netstat -na | grep «:80\ » | wc -l
На какой домен чаще всего идут запросы: tcpdump -npi eth0 port domain
С какого ip сколько запросов netstat -ntu | awk ‘{print $5}’| cut -d: -f1 | sort | uniq -c | sort -nr | more
Нагрузка на канал ftop -i eth0 -B

Опубликовано 15.04.2015
320
Использование netstat
Журналы (logs) в MySQL

Смотрите также:

Программе установки не удалось создать новый или найти существующий системный раздел

Решение проблем с установкой Windows 10 (8.1, 8, 7) с USB флешки (Программе установки не удалось создать новый или найти существующий системный раздел)

Mysql

Журналы (logs) в MySQL

netstat

Использование netstat

1c_enterprise_server

Выбор сервера для 1С

    Контакт

    e-mail  sales@server-kiev.com
    skype  l_o_t_u_s33
    skype  +38 (068) 784-3255

    Комплектующие

    • Процессоры (CPU) (0)
    • Блоки питания (3)
    • Жесткие диски (HDD) (7)
    • Видеокарты (0)
    • Контроллеры (4)
    • Материнские платы (7)
    • Оперативная память (2)
    • Радиаторы / Кулеры (0)
    • Мониторы (2)
    • Проекторы (0)
    • SSD (0)
    • Сетевое оборудование (0)

    Новые поступления

    • Gigabyte 7PESH2MS-00 Intel C602 Chipset Rev 1.0 LGA2011 E-ATX
    • Сервер HP DL560p Gen8 4×E5-4650 48GB RAM
    • Acer ET322QU 32″ Black Freesync 75Hz LED IPS Monitor 2560×1440
    • Dell Precision T5600 2x Xeon E5-4650L 64GB HDD 1TB
    • LG 32UK50T-W 32″ Class 4K UHD (3840 x 2160)
    • HP Z420 6-ти ядерный Xeon E5-1650 3,2 GHZ 32GB RAM 120GB SSD 3000GB HDD
    • Supermicro PWS-1K62P-1R 1620 Watt Power Supply — 180-240 V
    • Серверный блок питания SUPERMICRO Ablecom 560W/600W 1U PWS-563-1H
    • SUPERMICRO Ablecom PWS-521-1H 520W Watt Switching Power Supply
    • HP DL580 Gen8 E7-4880v2 2.80GHz 120 потоков 256Gb DDR3 16x16GB
    • Рабочая станция E5-2697v3 28/56 Ядер-Потоков Intel Xeon / 256GB DDR4 / 3/3TB SSD/HDD / GTX 1080 / 1300W
    • 1C Сервер Supermicro 1-2U 2PS Xeon 32x 2.6GHz 128GB DDR3 ECC SAS-SATA
    • Монитор Dell S2817Q
    • Twin Сервер Supermicro 6027TR-DTRF 2U 2PS 4x Xeon 32x 2.9GHz 4x E5-4650L 128GB DDR3 ECC SAS-SATA
    • Supermicro X9DRi-LN4F+ v1.20 Dual LGA 2011 DDR3 Xeon v1. v2
    • Рабочая станция SuperMicro Xeon E5-4650L 96GB DDR3 SSD 240GB 3TB HDD Quadro
    • Рабочая станция GIGABYTE Xeon E5-4650L 64GB DDR3 SSD 240GB 3TB HDD GTX
    • DELL SAS 1GB 9265-8I 6GB/S Raid DNKYM 6GB/S LSI MEGARAID
    • MSI Z97 Gaming 5
    • HP ProLiant DL370 G6 ML370 G6

    Translate:

    Метки

    1С бухгалтерия 1С предприятие 10600R avocent binary log c6100 command line ddos dell error log freebsd IPKVM kernel linux log mysql netstat nettop networking poweredge query log slow query log snippets sysadmin tcp/ip unix windows 10 windows 10 setup troubleshooting Виртуализация Программе установки не удалось создать новый или найти существующий системный раздел команды freebsd консоль лог всех запросов mysql оперативная память память для серверов полезные мелочи проблемы с установкой windows продажа сервер сисадмин сниппеты установка windows установщик не может найти раздел фрибсд ядро
Яндекс.Метрика
e-mail  sales@server-kiev.com
skype  server-kiev
Купить сервер в Киеве
Купить рабочую станцию в Киеве
Серверы Dell купить
Серверы Supermicro купить
Недвижимость Киева и Украины