Promosyon - 2 ücretli dönemle çarpın!
Защита сервера от DDoS своими силами | Well-Web - твой провайдер хостинга!
- 01.01.2023
- 0
- admin
В данной статье мы расскажем как Вы можете защитить свой сервер от небольшой DDoS атаки под управлением самой популярной операционной системы Linux(CentOS, Debian, Ubuntu и т.п.).
Если Вы столкнулись с DDoS атакой, то ее можно попробовать решить без привлечения сторонних компаний, это собственно то – что вам сделает первым делом, любой опытный администратор.
Проверяем, есть ли DDoS атака
Итак, приступим. Первым делом посмотрим с какого IP сколько подключений к нашему проекту, для этого используем команду:netstat -ntu | awk '{print $5}'| cut -d: -f1 | sort | uniq -c | sort -nr | more
Таким образом мы увидим с каких адресов наиболее много обращений. Если это 1-3 адреса – то это обычная DoS атака, и мы решим проблему заблокировав эти несколько адресов через iptables, командой: iptables -A INPUT -s ip_адрес -j DROP
Если же адресов гораздо больше – то можно автоматизировать это действие и попробовать защитить свои проекты на уровне Вашего сервера.
Автоматизация защиты при DDoS атаке
Понятно, что все вышеописанное вручную выполнять долго. Давайте автоматизируем этот процесс и напишем небольшой скрипт. Мы так же написали подробные комментарии, что бы Вы могли изменять его параметры.
Код скрипта:#!/bin/sh # Находим IP входящих соедениений и записываем их в файл ddos.ip netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | grep -v "127.0.0.1" > /usr/local/antidd/ddos.ip # создаем DROP правила (сбрасывать соединения) для IP с количеством подключений более 30 и добавляем их в файл awk '{if ($1 > 50) {print "/sbin/iptables -A INPUT -s " $2 " -j DROP"; print "/sbin/iptables -A INPUT -d " $2 " -j DROP";}}' /usr/local/antidd/ddos.ip >> /usr/local/antidd/iptables_ban.sh # запускаем скрипт который забанит адреса в iptables bash /usr/local/antidd/iptables_ban.sh # Очищаем скрипт, который производит бан cat /dev/null > /usr/local/antidd/iptables_ban.sh
Давайте теперь его установим и добавим в крон. Создадим для него каталог:mkdir /usr/local/antidd
Теперь перейдем в эту папку командой:cd /usr/local/antidd
Создадим файл: nano antidd.sh
И вставим в него код нашего скрипта. Выставляем права 777 на файл скрипта командой:chmod 777 /usr/local/antidd/antidd.sh
Запускаем скрипт для теста командой:sh /usr/local/antidd/antidd.sh
В папке со скриптом появятся два файла:
ddos.ip – в него скидываются все подключения
iptables_ban.sh – сформированный скрипт для блокировки IP адресов
Теперь добавим задание в CRON. Откроем файл:nano /etc/crontab
И добавляем в него следующее:*/5 * * * * root /bin/sh /usr/local/antidd/antidd.sh @monthly root iptables -F
Первая строка – запускает анти-ddos скрипт каждые 5 минут.
Вторая – производит раз в месяц очистку всех блокировок (что бы не нагружать IPTABLES).
На этом наша простенькая защита автоматизирована и работает.
Если возникнут какие-либо проблемы – откройте тикет из личного кабинета, и наши специалисты обязательно Вам помогут.
WELL-WEB 2023