Я тут узнал про прикольную тулзу это fail2ban, смысл такой что может банить по определённым событиям в логах, а так-же неплохо защищает от брута админок, SSH и т.д.
По умолчанию после установки он уже защищает SSH, т.е. банит после 6-ти попыток подбора паролей, также есть уже готовые шаблоны в конфиге, можете их посмотреть и включить нужные, сейчас попробуем сделать конфиг сами которые будет блокировать тех-кто слишком-уж долбит запросами сайт, итак:
1)В Дебиан устанавливается очень легко:
2)Во время DDOS в логах апаче /opt/lampp/logs/access_log записывается много таких строк:
XX.119.73.134 — - [23/Jun/2011:14:22:03 +0600] «GET /index.php HTTP/1.1″ 200 -
XX.119.73.134 — - [23/Jun/2011:14:22:03 +0600] «GET /index.php HTTP/1.1″ 200 -
XX.119.73.134 — - [23/Jun/2011:14:22:03 +0600] «GET /index.php HTTP/1.1″ 200 -
В fail2ban, можно банить за определённое время, т.е. например можно сделать что-бы банил тех-кто за х секунд долбил сайт у раз, давайте попробуем это сделать:
-В начале создадим фильтр, создадим конфиг с названием "apache-ddos.conf", в /etc/fail2ban/filter.d с таким содержимым:
-Далее в /etc/fail2ban добовляем в конфиг jail.conf:
ГДЕ:
logpath - Путь до нашего лога;
findtime - Время после которого будет бан;
maxretry - число повторений за findtime.
sendmail-buffered[name=ddos, lines=5, dest=root]
Куда присылать отчёт root замените на свой почтовый ящик !
Вроде всё и не забудте перезапустить fail2ban !
service fail2ban restart
По умолчанию после установки он уже защищает SSH, т.е. банит после 6-ти попыток подбора паролей, также есть уже готовые шаблоны в конфиге, можете их посмотреть и включить нужные, сейчас попробуем сделать конфиг сами которые будет блокировать тех-кто слишком-уж долбит запросами сайт, итак:
1)В Дебиан устанавливается очень легко:
Код:
aptitude install fail2ban
2)Во время DDOS в логах апаче /opt/lampp/logs/access_log записывается много таких строк:
XX.119.73.134 — - [23/Jun/2011:14:22:03 +0600] «GET /index.php HTTP/1.1″ 200 -
XX.119.73.134 — - [23/Jun/2011:14:22:03 +0600] «GET /index.php HTTP/1.1″ 200 -
XX.119.73.134 — - [23/Jun/2011:14:22:03 +0600] «GET /index.php HTTP/1.1″ 200 -
В fail2ban, можно банить за определённое время, т.е. например можно сделать что-бы банил тех-кто за х секунд долбил сайт у раз, давайте попробуем это сделать:
-В начале создадим фильтр, создадим конфиг с названием "apache-ddos.conf", в /etc/fail2ban/filter.d с таким содержимым:
Код:
# Fail2Ban configuration file
# Author: AmiGator
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*HTTP.*"
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
#
ignoreregex =
-Далее в /etc/fail2ban добовляем в конфиг jail.conf:
Код:
[apache-ddos]
enabled = true
filter = apache-ddos
action = iptables-multiport[name=ddos, port="http,https"]
sendmail-buffered[name=ddos, lines=5, dest=root]
logpath = /var/www/*/log/access.log
bantime = 1800
findtime = 60
maxretry = 10
ignoreregex = \.(jpg|jpeg|png|gif|js|css)
ГДЕ:
logpath - Путь до нашего лога;
findtime - Время после которого будет бан;
maxretry - число повторений за findtime.
sendmail-buffered[name=ddos, lines=5, dest=root]
Куда присылать отчёт root замените на свой почтовый ящик !
Вроде всё и не забудте перезапустить fail2ban !
service fail2ban restart