Mail.ru "прилёг" отдохнуть?
Вот уже в течение полутора-джвух часов наблюдаю, что сайт mail.ru "прилёг". Интересно, что там происходит. ДДось или что-то другое? Есть кто-то, кто может сказать больше по этому поводу?
Я отношусь к тому поколению, что на информатике в школе училось использовать кнопочку Shift, и от руки писало диссертации о отличии Shift от Caps Lock.
Но всё же, на сколько я помню - DDoS атака - это когда на цифровой ресурс приходит overcock запросов от злонамеренных пользователей сети, перегружая систему, и, порой, приводящих к поломке оборудования.
Засим напрашивается вопрос - почему бы не защитить ресурсы повышенной ответственности неким алгоритмом, который принимает запрос от пользователя на вход, и кидает запрос системе пользователя о наличии у оного дисплея и хотя бы одного устройства ввода?
Для обывателя это будет выглядеть как трёхсекундная загрузка сайта. А система в это время отпингуется, и скажет - что да, это молодой человек залез вот к себе в личный кабинет, посмотреть условия кредитов, и пропустит пользователя на ресурс. В противном случае будет что-то типа "нееее, братка, у тебя семьсот запросов и даже монитора нет, ты блять не человек, а хуйлуша с клушей" и сайт скажет что он "упал"?
Думаю что создание таких алгоритмов - дело пяти минут для опытного программиста. А в хорошем варианте - вывести на аппаратный уровень: маленький чип, который просто будет служить своеобразной капчей системы, отличающей рядового юзера от вредоносного программного обеспечения.
Я далёк от IT, но панамку всё же оставлю:
👒
Всем красноярцам, абонентам Орион Телекома , будьте начеку! Сегодня мне позвонили мошенники под видом оператора домофонов, что будут менять в доме домофон. К слову Орион предоставляет услуги обслуживания домофонов, видеонаблюдения и прочее. Продиктовали мои данные, номер телефона, чем обескуражили меня. Я под видом поверевшего задал несколько уточняющих вопросов, звонившая женщина вполне буднично без официоза на хорошем русском запросила сколько чипов мне нужно будет в пользование, предупреждая что 4 штуки бесплатно, свыше нужно заплатить. Я сказал что мне этого достаточно. Сказала что установка будет завтра с 9 до 13, и смогу ли присутствовать при установке. Но! От меня требуется подтверждение регистрации чипов для конкретного пользователя, а далее запросила код СМС, где я собственно уже был готов к подвоху и слился. Отсюда делаю вывод- хакерская атака реальна и данные абонентов украдены, ибо интернет я провел полгода назад в квартиру и договор заключён на меня! Иначе откуда им взять эти данные, ключи и чипы должны выдаваться собственнику квартиры, никак не арендатору.
GGG снова опубликовали пост, в котором пытаются поддерживать легенду о том, что их сервера дудосят. Я решил пораскинуть мозгами, кому это выгодно и единственная мысль, которая мне пришла в голову это: Крис Уилсон мстит за увольнение из GGG и лично дудосит их сервера.
Есть такой провайдер - АСВТ. Провайдер "карманный" - у него куча договоров с поганенькими УК, которые не пускают в ЖК никого кроме него и, в некоторых случаях, его друга-дурачка. Ну как с Lovit в ПИКе.
Если вы пойдете гуглить его сайт - он у вас не откроется. Потому что с 28 мая эти могучие витязи сетевых просторов находятся "под DDoS-атакой", да не просто атакой, а массированной атаке, организатором которой является "IT ARMY UA" - не шучу, это у них так в официальном посте в телеге написано
Кроме телеги предложить нечего - потому как ничего другого у них и нет, я даже в лучшие дни на их сайте новостей не видел. Ну а зачем им они? "Куда вы с подводной лодки денетесь?".
Короче, с 28 мая несколько тысяч, а то и десятков тысяч страдальцев сидят без интернета. Ну верней как - когда я включаю свой VPN в казахском "НидерландЫ" - интернет появляется, на уровне 1 мегабита. Потому как их фильтры, которые типа-борются-с-дудос, видимо, не считают его достойным врагом. ЧСХ, они в том же своём телеграмчике буквально пишут - "пользуйтесь VPN, пока мы обосрались" -
Только тогда не открываются некоторые отечественные сайты. Я так даже не могу зайти на сайт РКН, заявку оставить с блгодарностью за их работу.
Я чё это пишу-то. Просто для истории. А ну как кто-то пойдет искать отзывы - пусть останется в анналах истории, кучка подростков с дешевыми ВПСками положили целый провайдер.
Ну и как обычно вопрос - Роскомнадзор, а где ваши хвалёные ТСПУ? Вот блять, угроза. Где противодейтсвие ей? А параша ваша у них стоит, ютубик вы там стабильно режете.
ПС. Не, когда он работает - к нему, надо сказать, вопросов нет, свои 750 мегабит за сколько там, 600 рублей или около того он честно обеспечивает.
Для модераторов. В статье нет рекламы.
Кажется, у нас появился настоящий "фанат", причём настолько страстный, что решил обрушить наш сайт массированной DDoS-атакой. Сначала мы даже улыбнулись — ну, внимание приятно. Но серверу было не до шуток.
Несмотря на то, что у нас стоял сервис от DDOS (не буду писать, а то подумают реклама), включение режима JS Challenge не помогло — часть запросов всё равно проходила, и сервер ложился от нагрузки. Пришлось действовать решительно.
Мы быстро собрали из логов черный список из 1400 IP-адресов, но эффект оказался кратковременным — IP менялись, а нагрузка продолжалась.
Так и родилась идея: использовать fail2ban для автоматической защиты на уровне сервера. И, скажем прямо, это было отличное решение.
Устанавливаем через APT:
sudo apt install fail2ban
Нам повезло: злоумышленник атаковал один конкретный адрес —
https://site/login/
https://site/register/
https://site/wp-login.php
и прочие варианты по шаблону
Это дало преимущество: множество повторяющихся POST-запросов с одного IP — именно то, что умеет отсекать fail2ban.
Создаём фильтр:
/etc/fail2ban/filter.d/wordpress.conf
[Definition]
failregex = ^ - - [.] "POST /login/ HTTP/." (200|403|404)
📌 Что делает фильтр?
Он отслеживает POST-запросы к /login/, которые получают коды ответа:
200 — успешный доступ (например, фальшивая регистрация)
403 — доступ запрещён
404 — страницы не существует (спамеры промахнулись)
Открываем файл:
/etc/fail2ban/jail.local
и добавляем:
[wordpress-register]
enabled = true
filter = wordpress
logpath = /var/log/nginx/domains/site.log
maxretry = 5
findtime = 60
bantime = 36000000
action = iptables[name=wordpress-register, port="http,https", protocol=tcp]
📌 Объяснение параметров:
enabled = true — включаем правило
filter = wordpress — имя фильтра без .conf
logpath — путь к nginx-логу
maxretry = 5 — допустимое количество попыток до бана
findtime = 60 — за какой период искать попытки (в секундах)
bantime = 36000000 — сколько длится бан. Это ~68 лет 😄
action — блокировка через iptables на порт 80 и 443 (HTTPS)
Перед применением можно протестировать фильтр:
fail2ban-regex /var/log/nginx/domains/site.log /etc/fail2ban/filter.d/wordpress.conf
Применяем конфигурацию:
sudo fail2ban-client reload
sudo systemctl restart fail2ban (Перезапускать службу не всегда желательно, так как он забывает все заблокированные IP адреса, а это плохо при массированной атаке, поэтому рекомендую использовать только fail2ban-client reload, где обновляются правила)
Проверка статуса:
fail2ban-client status wordpress-register
Пример:
Status for the jail: wordpress-register
|- Filter
| |- Currently failed: 138
| |- Total failed: 6038
| - File list: /var/log/nginx/domains/site.log - Actions
|- Currently banned: 821
|- Total banned: 821
`- Banned IP list: 1.20.227.66 101.126.80.238 ...
Если видите IP — значит, fail2ban работает.
Дополнительно можете проверить цепочку в iptables:
sudo iptables -L f2b-wordpress-register -n
После этого наш фанат решил проявить смекалку и нам пришлось создать еще несколько правил.
Открываем файл:
/etc/fail2ban/jail.local
и добавляем:
[wordpress-ddos]
enabled = true
filter = wordpress-ddos
logpath = /var/log/nginx/domains/site.log
maxretry = 5
findtime = 60
bantime = 36000
backend = auto
action = iptables[name=wordpress-ddos, port="http,https", protocol=tcp]
[hestia-ddos]
enabled = true
filter = hestia-ddos
logpath = /var/log/hestia/nginx-access.log
maxretry = 90
findtime = 60
bantime = 360
action = iptables[name=hestia-ddos, port=8027, protocol=tcp]
[site-ddos-param]
enabled = true
filter = site-ddos-param
logpath = /var/log/nginx/domains/site.log
findtime = 60
maxretry = 2
bantime = 360000
action = iptables[name=site-ddos-param, port="http,https", protocol=tcp]
[nginx-ddos-errorlog]
enabled = true
filter = nginx-ddos-errorlog
logpath = /var/log/nginx/domains/site.error.log
findtime = 60
maxretry = 3
bantime = 86400
action = iptables[name=nginx-ddos-errorlog, port="http,https", protocol=tcp]
[nginx-referrer-selfip]
enabled = true
filter = nginx-referrer-selfip
logpath = /var/log/nginx/domains/site.log
findtime = 60
maxretry = 1
bantime = 2592000 # 30 дней
action = iptables[name=referrer-selfip, port="http,https", protocol=tcp]
Все правила писали через регулярные выражения
/etc/fail2ban/filter.d/hestia-ddos.conf
[Definition]
failregex = ^ - - [.] "." [2-5][0-9]{2} .*
/etc/fail2ban/filter.d/site-ddos-param.conf
[Definition]
failregex = ^ - - [.] "GET /?\d{5,} HTTP/." [2-5][0-9]{2} .*
/etc/fail2ban/filter.d/nginx-ddos-errorlog.conf
[Definition]
failregex = ^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} [error].access forbidden by rule, client: , server: ., request: "GET /?\d{6,} HTTP/1.1"
/etc/fail2ban/filter.d/nginx-referrer-selfip.conf
[Definition]
failregex = ^ - - [.] "GET ." \d+ \d+ "https?://.100.90.80.70."
🚀 Договариваемся с nginx
Так же часть запросов ?78698675876 грузили сервер, т.е. Fail2ban пропускал запросы к серверу из-за того, что трафика было много, но мы это решили делать пересылку на 403 запрос, что бы экономить ресурсы сервера
Открываем файл:
/etc/nginx/conf.d/domains/site.ssl.conf
и добавляем:
Между блоком
server {
...
#Slait
# Блокировать запросы с реферером, содержащим наш IP
if ($http_referer ~* "100\.90\.80\.70") {
return 403;
}
# Блокировать GET-запросы типа /?123456 (только цифры в query string)
if ($request_uri ~* "^/\?\d{9,}$") {
return 403;
}
#Slait...
}
Применяем конфигурацию:
sudo systemctl restart nginx
Fail2ban помог нам перехватить атаку в реальном времени, за считанные минуты блокируя сотни IP-адресов. Простая настройка и мощный результат — рекомендуем!