Много сайтов на OpenCart и не только, сталкиваются с DDoS-атаками, грузят сайт он перестает работать, и начинают вымогать деньги, пока не заплатишь сайт не будет работать, сопротивляться бесполезно.
Небольшая заметка может кому пригодится. Сам процесс как вычислялся трафик описан тут
Включение кнопки идет атака на cloudflare, что бы при входе на сайт выводилась капча и тариф за 20$ не помогает))
Смотрим трафик
Просто блокируем их, один из вариантов запретить доступ к сайту через robots.txt
после
Еще вариант создать файл block.conf в каталоге
И добавляем в block.conf
Теперь вам нужно включить этот файл в основной конфигурационный файл Nginx или конфигурационный файл вашего сайта.
Обычно это делается в блоке server или http. Для этого откройте соответствующий конфигурационный файл:
Перезагрузите Nginx для применения изменений:
Еще вариант добавить в
А в конфигурационный файл, в блок
Небольшая заметка может кому пригодится. Сам процесс как вычислялся трафик описан тут
Для просмотра ссылки Вы должны войти или зарегистрироваться.
Включение кнопки идет атака на cloudflare, что бы при входе на сайт выводилась капча и тариф за 20$ не помогает))
Смотрим трафик
Код:
tcpdump -n -i eno1 -s 0 -w output.txt dst port 80 and host
cat /root/output.txt
- -n: Отключает преобразование числовых адресов и портов в их имена. Это ускоряет сбор данных, так как tcpdump не будет искать DNS-записи.
- -i eno1: Захватывает трафик на указанном сетевом интерфейсе eno1 Если у вас другой укажите, проверить какой команда ifconfig.
- -s 0: Устанавливает размер захватываемого пакета на максимально возможное значение. Это гарантирует, что будут захвачены полные пакеты данных.
- -w output.txt: Записывает захваченные пакеты в файл output.txt. По умолчанию будет лежать /root/ посмотреть командой cat /root/output.txt
- dst port 80: Фильтрует пакеты, адресованные на порт 80 (обычно используется для HTTP-трафика).
Код:
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;
"~^(?[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;
}