Установка (D)DoS Deflate на Debian/Ubuntu
Есть много мануалов о том, как установить (DDoS Deflate на сервер с Linux (или VPS) и в большинстве случаев не должно быть с этим проблем, но я столкнулся некоторые небольшие проблемы с установкой (D) DoS Deflate на Debian 7/8 по этому, я хотел выложить статью «Установка (D)DoS Deflate на Debian/Ubuntu» по установке (D)DoS Deflate на Debian/Ubuntu на готовых примерах. Я думаю, данное руководство также будет работать на Ubuntu.
И так, для начала перейдем в нужную папку и создадим новый каталог для проекта:
1 |
cd /usr/local/src/ && sudo mkdir ddos && cd ddos |
Скачиваем скрипт:
1 |
wget http://www.inetbase.com/scripts/ddos/install.sh |
Запускаем установочный скрипт:
1 |
sh install.sh |
Настройка (D)DoS Deflate на Debian/Ubuntu
Когда установка будет выполнена, вы увидите что-то вроде этого:
1 2 3 4 5 6 7 8 9 10 |
Installing DOS-Deflate 0.6 Downloading source files.........done Creating cron to run script every minute.....(Default setting).....done Installation has completed. Config file is at /usr/local/ddos/ddos.conf Please send in your comments and/or suggestions to zaf@vsnl.com |
Сейчас приступаем к редактированию файла конфигурации, настройте в зависимости с вашими требованиями:
1 |
nano /usr/local/ddos/ddos.conf |
Я рекомендую ничего не править в данном конфиге. Выставляем количество соединений с 1 IP-адреса (после того как кто-то «потратил» лимит будет забанен на 10 минут, лучше выставить немалое значение, т.к вы рескуете быть забаненым за NAT транслятором (ipv6 ещё не пришол!):
1 |
NO_OF_CONNECTIONS=64 |
Включим бан через iptables, а не по APF:
1 |
APF_BAN=0 |
Идем далее, и следующим шагом будет настройка крон. Т.к я не особо люблю разные cron-файлы в папке /etc/cron.d/, то буду использовать свой личный кронтаб, а файл /etc/cron.d/ddos.cron я удалю:
1 |
crontab -e */1 * * * * nice -n -5 /usr/local/ddos/ddos.sh |
В этой строчке, я увеличиваю приоритет процесса для DDoS Deflate, чтобы когда система загибается от множества коннектов скрипт отработал и забанил кого надо, а у кого истекло время штрафа — разбанил.
По необходимости, вы можете установить APF, если не знаете как, вот руководство:
Установка APF (Advanced Policy Firewall) в Unix/Linux
Вы также можете внести в белый список IP-адрес вашего сервера:
1 |
nano /usr/local/ddos/ignore.ip.list |
Теперь пришло время запускать (D) DoS Deflate:
1 |
/usr/local/ddos/ddos.sh -c |
К сожалению, я получил это:
1 2 3 4 5 |
/usr/local/ddos/ddos.sh: 13: [: /usr/local/ddos/ddos.conf: unexpected operator DDoS-Deflate version 0.6 Copyright (C) 2005, Zaf <zaf@vsnl.com> $CONF not found. |
Для исправления, отредактируйте ddos.sh:
1 |
nano /usr/local/ddos/ddos.sh |
Нужно изменить первую строку файла с:
1 |
!/bin/sh |
На:
1 |
!/bin/bash |
Сохранить и закройте ddos.sh.
Запустите службу снова:
1 |
/usr/local/ddos/ddos.sh -c |
Если вы получаете сообщение об ошибке:
1 2 3 4 5 |
crond: unrecognized service Failed to restart crond.service: Unit crond.service failed to load: No such file or directory. Failed to restart crond.service: Unit crond.service failed to load: No such file or directory. |
Открываем ddos.sh снова:
1 |
nano /usr/local/ddos/ddos.sh |
1 |
service crond restart |
1 |
service cron restart |
Я нашел два экземпляра, которые должны быть изменены).
Сохраните и выйдите с текстового редактора, после чего снова запустить службу:
1 |
/usr/local/ddos/ddos.sh -c |
Если вы все сделали правильно, вы должны увидеть следующее сообщение:
1 |
[ ok ] Restarting periodic command scheduler: cron [....] Stopping periodic command scheduler: cron. |
Все сделали!
Примечание: Я читал в нескольких форумах и блога на которых есть ошибка с (Д) DoS-Deflate версии 6.0 и исправить ее можно следующим образом, необходимо открыть /usr/local/ddos/ddos.sh и заменить:
1 |
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n |
На:
1 |
netstat -ntu | grep ':' | awk '{print $5}' | sed 's/::ffff://' | cut -f1 -d ':' | sort | uniq -c | sort -nr > $BAD_IP_LIST |
Можно попробовать еще и:
1 |
netstat -ntu | grep ':' | awk '{print $5}' | sed 's/::ffff://' | cut -f1 -d ':' | sort | uniq -c | sort -nr |
У меня не было возможности протестировать так как все работало и без этого. На этом у меня все и моя статья «Установка (D)DoS Deflate на Debian/Ubuntu» завершена.