
DDos атака ботами с вымоганием денег причины и методы борьбы
Много сайтов на Opencart и не только, сталкиваются с DDoS-атаками, тоже самое произошло с одним из феофанов) грузят сайт он перестает работать, и начинают вымогать деньги, пока не заплатишь сайт не будет работать, сопротивляться бесполезно.
Небольшая заметка может кому пригодится. Сам процесс как вычислялся трафик описан тут https://amkolomna.ru/content/zashchita-nginx-ot-ddos-atak
Включение кнопки идет атака на cloudflare, что бы при входе на сайт выводилась капча и тариф за 20$ не помогает))
Смотрим трафик
tcpdump -n -i eno1 -s 0 -w output.txt dst port 80 and host <IP сервера, без скобок> cat /root/output.txt
-n
: Отключает преобразование числовых адресов и портов в их имена. Это ускоряет сбор данных, так как tcpdump не будет искать DNS-записи.-i eno1
: Захватывает трафик на указанном сетевом интерфейсеeno1
Если у вас другой укажите, проверить какой команда ifconfig.-s 0
: Устанавливает размер захватываемого пакета на максимально возможное значение. Это гарантирует, что будут захвачены полные пакеты данных.-w output.txt
: Записывает захваченные пакеты в файлoutput.txt
. По умолчанию будет лежать /root/ посмотреть командой cat /root/output.txtdst port 80
: Фильтрует пакеты, адресованные на порт 80 (обычно используется для HTTP-трафика).
Выходит боты создают большое количество Get запросов после сайт перестает работать.
https://mj12bot.com/ https://www.semrush.com/bot/ https://developer.amazon.com/support/amazonbot https://support.apple.com/ru-ru/HT204683
- Majestic-12 (MJ12Bot): Это веб-паук, который используется для сканирования Интернета и создания публично доступной базы данных о веб-страницах. Это часть проекта Majestic-12, который занимается сбором информации о структуре Интернета.
- SEMrushBot: Это бот, используемый компанией SEMrush для сбора данных о поисковых запросах, ключевых словах и других параметрах, связанных с поиском в Интернете. SEMrush предоставляет услуги анализа конкурентной информации и оптимизации поисковых систем.
- Amazonbot: Этот бот является частью инфраструктуры Amazon и используется для сканирования и индексации веб-страниц с целью улучшения поисковой выдачи и обеспечения качества контента для пользователей Amazon.
- Applebot: Applebot — это поисковый робот, используемый Apple для сканирования веб-страниц, включая контент веб-магазинов приложений App Store и iTunes Store. Это помогает улучшить поиск и обнаружение контента для пользователей Apple.
Эти боты работают на основе автоматизированных алгоритмов, сканируя Интернет для сбора информации, которая затем используется для различных целей, включая улучшение качества поиска и анализа данных. Они могут создавать значительный трафик на сайтах, которые они посещают, поскольку производят множество запросов для сбора данных.
Просто блокируем их, один из вариантов запретить доступ к сайту через robots.txt
User-agent: MJ12bot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: Amazonbot
Disallow: /
User-agent: Applebot
Disallow: /
Еще вариант неплохой и 100% блочить через nginx как на него перейти описано тут
Для начала можно добавить в nginx.conf
после
include /etc/nginx/mime.types;
default_type application/octet-stream;
map $http_user_agent $is_bot { default 0; ~*mj12bot 1; ~*semrush 1; ~*amazonbot 1; ~*applebot 1; ~*bingbot 1; ~*dotbot 1; }
Еще вариант создать файл block.conf
в каталоге /etc/nginx/conf.d/
. Вы можете сделать это с помощью текстового редактора, например, nano
или vi
. В этом примере я буду использовать nano
:
sudo nano /etc/nginx/conf.d/block.conf
И добавляем в block.conf
deny 95.79.121.193; deny 217.69.195.134; deny 178.213.24.233; deny 91.230.154.149; deny 5.35.6.28; deny 185.177.114.137; deny 193.233.158.166; deny 88.87.78.95; deny 217.197.237.74; deny 212.42.56.120; deny 45.5.116.242; deny 188.163.120.155; deny 180.178.103.82; deny 38.49.140.14; deny 46.8.22.67; deny 146.19.39.94; deny 146.19.44.134; deny 79.110.31.107; deny 193.163.207.147; deny 146.19.91.164; deny 79.110.31.243; deny 95.24.78.111; deny 91.246.51.127; deny 147.78.180.133; deny 193.163.207.202; deny 146.185.203.224; deny 91.243.88.33; deny 146.185.201.168; deny 146.185.203.153; deny 147.78.180.154; deny 146.185.203.224; deny 91.246.51.120; deny 62.204.49.235; deny 193.163.207.110; deny 94.154.113.17; deny 146.185.201.77; deny 94.154.113.218; deny 185.89.101.188; deny 91.243.95.160; deny 185.212.115.28; deny 146.19.39.69; deny 146.19.39.101; deny 91.243.88.120; deny 62.233.39.173; deny 85.239.35.172; deny 62.204.49.23; deny 146.185.203.215; deny 212.18.113.68; deny 62.233.39.147; deny 147.78.180.237; deny 91.246.51.197; deny 146.185.202.122; deny 212.18.127.147; deny 188.40.90.167; deny 85.239.35.175; deny 212.18.113.220; deny 193.163.207.93; deny 146.185.201.106; deny 94.154.113.236; deny 85.239.35.117; deny 146.19.44.56; deny 185.89.101.102; deny 146.185.203.11; deny 147.78.180.233; deny 83.97.119.173; deny 91.243.88.163; deny 91.243.88.161; deny 212.18.127.100; deny 5.255.231.64; deny 146.19.91.253; deny 146.185.203.191; deny 146.185.202.152; deny 212.18.127.129; deny 146.185.203.83; deny 185.89.101.218; deny 62.233.39.85; deny 193.163.207.28; deny 146.19.39.218; deny 91.246.51.94; deny 66.249.70.69; deny 94.154.113.28; deny 66.249.70.70; deny 79.110.31.76; deny 185.68.153.83; deny 62.204.49.35; deny 146.19.39.72; deny 146.19.44.129; deny 146.19.78.193; deny 66.249.70.69; deny 147.78.180.250; deny 212.18.113.182; deny 91.247.163.146; deny 62.233.39.63; deny 185.68.153.49; deny 146.185.201.223; deny 62.204.49.185; deny 85.239.35.143; deny 62.233.39.148; deny 85.68.152.150; deny 185.68.152.150; deny 185.68.155.132; deny 193.163.89.245;
Теперь вам нужно включить этот файл в основной конфигурационный файл Nginx или конфигурационный файл вашего сайта. Обычно это делается в блоке server
или http
. Для этого откройте соответствующий конфигурационный файл:
sudo nano /etc/nginx/nginx.conf
Перезагрузите Nginx для применения изменений:
sudo systemctl reload nginx
Еще вариант добавить в /etc/nginx/nginx.conf
map $arg_limit $is_high_limit { default 0; "~^(?<limit>[1-8][0-9]{3}|9000)$" $limit; } limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s; # Определение ботов map $http_user_agent $limit_bot { default 0; ~*(MJ12bot|SemrushBot|Amazonbot|Applebot|AhrefsBot|Yandex|Bytespider|my-tiny-bot|SputnikBot|Crowsnest|PaperLiBot|peerindex|ia_archiver|Slurp|Aport|NING|JS-Kit|rogerbot|BLEXBot|Twiceler|Baiduspider|Java|CommentReader|Yeti|discobot|BTWebClient|Tagoobot|Ezooms|igdeSpyder|Teleport|Offline|DISCo|netvampire|Copier|HTTrack|WebCopier) 1; }
А в конфигурационный файл, в блок server { добавить
# Блокировка по параметру в запросе if ($args ~* "limit=10000") { return 403; } # Блокировка по параметру в запросе if ($is_high_limit>1000) { return 403; } # Можно еще так if ($is_high_limit) { return 403; }
Leave a reply
You must login or register to add a new comment .