Простая защита от организованных DDoS Pingback атак

Пару месяцев назад проснулся ранним утром от внезапного звонка, на той линии попросили проверить сервер, висит не отвечает и только ветер труп его качает. Зайдя на сервер, увидел кучу процессов apache и загруженный проц на 100%, сразу стало понятно, это DDoS.


Начал с того что открыл server-status(Если не знаете, что это, то гугл в помощь ), ведь надо определить какой сайт DDoS'ят. Открыв логи что бы увидеть запросы я увидел нечто подобное:
54.248.91.179 - - [11/Oct/2014:19:40:06 +0200] "GET / HTTP/1.1" 403 499 "-" "WordPress/3.9.2; http://tpy.tw; verifying pingback from 80.82.65.17"
107.20.136.153 - - [11/Oct/2014:19:40:06 +0200] "GET / HTTP/1.1" 403 500 "-" "WordPress/3.5; http://enter.seasite.com"
176.34.202.158 - - [11/Oct/2014:19:40:06 +0200] "GET / HTTP/1.1" 403 499 "-" "WordPress/3.9.1; http://ec2-176-34-202-158.eu-west-1.compute.amazonaws.com; verifying pingback from 80.82.65.17"
46.137.97.25 - - [11/Oct/2014:19:40:06 +0200] "GET / HTTP/1.1" 403 499 "-" "WordPress/3.7.4; http://46.137.97.25; verifying pingback from 80.82.65.17"
176.34.202.158 - - [11/Oct/2014:19:40:06 +0200] "GET / HTTP/1.1" 403 500 "-" "WordPress/3.9.1; http://ec2-176-34-202-158.eu-west-1.compute.amazonaws.com; verifying pingback from 80.82.65.17"
54.248.91.179 - - [11/Oct/2014:19:40:06 +0200] "GET / HTTP/1.1" 403 499 "-" "WordPress/3.9.2; http://tpy.tw; verifying pingback from 80.82.65.17"
Решение нужно было принимать быстро, на сервере располагается множество сайтов и большинство из них просто не открываются.
Если DDoS'ят определенный сайт, то все решается буквально в одну строчку.
while true; do tail -1000 /var/log/httpd/access_log | sort | grep pingback | uniq -c | awk '{print $2}' | xargs -tl -I _ ipset -A ddos _;sleep 10; done
Для работы данной «команды» необходимо что бы на сервере был установлен ipset, во всех приличных дистрибутивах данная утилита есть в репозиториях, и не составит большого труба вырубить apache и установить ipset, и создать таблицу хэшей и правила командами:
ipset -N ddos iphash
iptables -A INPUT -p tcp -m tcp --dport 80 -m set --set ddos src -j DROP

Ну а теперь разъясню что делает наша «волшебная строчка».
while true; do done — данная конструция создает вечный цикл
tail -1000 /var/log/httpd/access_log — читаем последние 1000 строк из access лога apache
sort — сортируем
grep pingback — вырезаем обращения только с pingback
uniq -c — оставляем только уникальные строки(параметр -c не обязателен, он выводит кол-во повторений, если его убрать то следующая команда будет выглядеть как awk '{print $1}')
awk '{print $2}' — обрезаем все лишнее, оставляем только ip адрес
xargs -tl -I _ ipset -A ddos _ — вызываем xargs и добавляем ip адреса в таблицу ddos

Вроде ничего сложного, а работает эффективно, буквально за 30 минут, в таблицу было добавлено свыше 7к IP адресов, DDoS'ящих сервер.

Источник информации и полезных советов http://firstwiki.ru/index.php/Ddos, здорово выручило в тот самый момент.

Поменьше DDoS'a в вашей жизни.

Комментарии ()

    Авторизация

    GitHubGoogleVkontakteYandex
    Есть вопрос или предложение пиши в Telegram @cloudsv

    MTProto прokси для Telegram

    Прямой эфир

    Diego mont 25 мая 2023, 07:04
    Полезные боты в Telegram 2
    cloudsv 24 апреля 2023, 17:56
    Обновление Scala Rider G4 52
    cloudsv 12 ноября 2022, 19:16
    Установка и настройка minidlna 3
    cloudsv 03 ноября 2022, 03:42
    Настройка прокси mtproto для Telegram 52
    cloudsv 03 января 2022, 10:50
    Let's Encrypt это легко и просто 4
    cloudsv 10 сентября 2020, 13:17
    MySQL Workbench падает при подключении 2
    cloudsv 05 августа 2020, 11:57
    Мне вчера стукнуло 34 4
    cloudsv 07 августа 2023, 22:56
    Linux Asus ROG x13 flow 2022 GV301RE и Linux 0
    cloudsv 15 апреля 2023, 16:23
    Linux Уведомление о смены workspace в X11 Linux 0
    cloudsv 17 октября 2020, 09:55
    Linux Отключить DHCP IPv6 в systemd 0
    cloudsv 30 июля 2020, 21:54
    О жизни Мне вчера стукнуло 34 4
    cloudsv 15 апреля 2020, 15:45
    Linux Основные hotkeys редактора Vim 0
    cloudsv 01 октября 2019, 08:00
    Linux Локальный редирект порта в Linux 0
    cloudsv 25 августа 2019, 16:14
    О жизни Социальная сеть от Яндекса Aura 0
    cloudsv 30 июля 2019, 21:34
    О жизни 33 year old 0
    cloudsv 25 июня 2019, 18:29
    Telegram Полезные боты в Telegram 2