1111111111Rating 0.00 (0 Votes)

Можно использовать несколько методов. Защита от множественных соединений может быть осуществлена при помощи DDOS DEFLATE, защита от множественных GET / POST запросов может осуществлена при помощи Fail2ban, ниже в краце расскажу как можно быстро задействовать оба метода.

Установка DDOS DEFLATE

Последний пакет можно "затянуть" из master ветки с GitHub:

wget https://github.com/jgmdev/ddos-deflate/archive/master.zip

Распаковать:

unzip master.zip

Установить:

cd ddos-deflate-master
./install.sh

Добавить в автозагрузку:

chkconfig ddos on

Настройка DDOS DEFLATE

Все настройки хранятся в файле /etc/ddos/ddos.conf, их не много, в качестве ключевых настроек можно выделить множественные соединения:

NO_OF_CONNECTIONS=200

Время бана (в секундах), например:

BAN_PERIOD=1800

Примечание: В качестве игнорируемого IP можно указать внешний IP сервера, в случае значения по умолчанию 0.0.0.0 все локальные соединения будут разрешены.

Перезапускаем сервис:

service ddos restart

Теперь у DDOS DEFLATE появился "интерфейс" при помощи которого можно просмотреть соединения:

ddos -v

Или быстро обрубить из в соответствии с настройками:

ddos -k

 Защита от множественных запросов GET / POST

 Как установить fail2ban было описано здесь и здесь, ниже расскажу как добавить правило. Необходимо создать файл /etc/fail2ban/filter.d/http-get-dos.conf с выражением:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*
ignoreregex =

 В /etc/fail2ban/jail.local необходимо добавить:

[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
# путь к логам
logpath = /var/www/httpd-logs/*.access.log
# кол-во повторных запросов
maxretry = 300
# 300 секунд = 5 минут
findtime = 300
# бан на 5 минут
bantime = 300
action = iptables[name=HTTP, port=http, protocol=tcp]

Перезапустить сервис:

service fail2ban restart

Протестировать с удаленной машины:

ab -c10 -n500  https://site/

 

Добавить комментарий


Обновить
Защитный код

Сейчас 99 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз