Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Еще два способа защиты от http флуда (DDOS) fail2ban
#1
Способ №1

Просмотрев логи своего веб сервера (xampp) /opt/lampp/logs/error_log я заметил, что кто-то брутит пытаясь найти что то.
Код:
[Mon Apr 04 23:05:52 2011] [error] [client XX.104.134.251] File does not exist: /opt/lampp/htdocs/pass.txt, referer: http://webxakep.net
[Mon Apr 04 23:05:52 2011] [error] [client XX.104.134.251] File does not exist: /opt/lampp/htdocs/moderator, referer: http://webxakep.net
[Mon Apr 04 23:05:52 2011] [error] [client XX.104.134.251] File does not exist: /opt/lampp/htdocs/modules, referer: http://webxakep.net
[Mon Apr 04 23:05:52 2011] [error] [client XX.104.134.251] File does not exist: /opt/lampp/htdocs/newsadmin, referer: http://webxakep.net

После установки fail2ban в конфиге /etc/fail2ban/jail.conf изменил эти строки:

Код:
[apache-shorewall]

enabled  = true
filter   = apache-noscript
action   = iptables[name=httpd, port=http, protocol=tcp]
logpath  = /opt/lampp/logs/error_log
maxretry = 3

true - включить
apache-noscript - фильтр который лежит в /etc/fail2ban/filter.d
iptables[name=httpd, port=http, protocol=tcp] - фаервол iptables
/opt/lampp/logs/error_log - путь к лог файлу апача
maxretry = 3 - кол-во ошибок
При возникновение 3 ошибок доступ блокируется при помощи файервола iptables.

Также изменил конфиг фильтра в /etc/fail2ban/filter.d
Код:
failregex = [[]client <HOST>[]] (File does not exist|.* not found or unable to stat)

«.*» - обозначает любой текст
Это значит что будет блокироваться вот такие строки:
Код:
[Mon Apr 04 23:04:37 2011] [error] [client XX.104.134.251] script '/opt/lampp/htdocs/moderator.php' not found or unable to stat, referer: http://webxakep.net
[Mon Apr 04 23:04:27 2011] [error] [client XX.104.134.251] File does not exist: /opt/lampp/htdocs/mssql, referer: http://webxakep.net

Способ №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 -

В /etc/fail2ban/jail.conf изменил вот так:
Код:
[apache-badbots]

enabled  = true
filter   = apache-badbots
action   = iptables[name=Bad, port=http, protocol=tcp]
logpath  = /opt/lampp/logs/access_log
bantime  = 1800
maxretry = 250

bantime = 1800 - блокировать на 30 мин
maxretry = 250 - количество строк в логах с одним и тем же IP (меньше ставить не советую)

Конфиг фильтра в /etc/fail2ban/filter.d
Код:
failregex = ^<HOST> -.*"(GET|POST).*

Узнаем кого заблокировали /var/log/fail2ban.log
Код:
2011-06-29 04:16:49,743 fail2ban.actions: WARNING [apache-shorewall] Ban XX.24.139.11
2011-06-29 04:16:50,757 fail2ban.actions: WARNING [apache-shorewall] XX.24.139.11 already banned
2011-06-29 04:26:50,211 fail2ban.actions: WARNING [apache-shorewall] Unban XX.24.139.11
2011-06-29 16:55:38,908 fail2ban.actions: WARNING [apache-badbots] Ban XX.119.73.134

PS: я сам не догоняю выражение "already banned"
Wink
Ответ
#2
Под Ubuntu есть какой то антиддос, что бы тоже так легко настраивался...?
Ответ
#3
Fail2ban прекрасно себя будет чувствовать под debian-подобными системами. Поищите в репозиториях.
Ответ
#4
fail2ban можно настроить на защиту ЛС ГС и мускл? Или там только iptables?
Ответ
#5
kraleksandr Написал:fail2ban можно настроить на защиту ЛС ГС и мускл? Или там только iptables?
iptables это файрвол. Fail2ban использует его.
Но fail2ban не имеет возможности защиты гс/лс.

его возможности это защита ssh, ftp, http серверов.
Ответ
#6
Думаю возможно писать правила под любые логи. Например в ГС
Код:
[11.08.25 11:06:51] 'mahax' 94.41.196.178 - OK : LoginOk
[11.08.25 11:07:31] 'killerxp3d' 88.85.187.218 - ERR : LoginFailed
[11.08.25 11:07:58] 'killerxp3d' 88.85.187.218 - ERR : LoginFailed
[11.08.25 11:08:11] 'killerxp3d' 88.85.187.218 - OK : LoginOk
[11.08.25 11:08:27] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:08:42] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:08:43] 'jenek32' 217.118.66.104 - OK : LoginOk
[11.08.25 11:08:55] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:09:20] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:09:35] 'lineageups' 46.247.218.137 - OK : LoginOk

Блокировать по строкам ERR : LoginFailed через сколько то попыток на сколько то минут.
Это защитит от перебора паролей, от ддос атак не поможет.
Ответ
#7
MAZDIK Написал:Думаю возможно писать правила под любые логи. Например в ГС
Код:
[11.08.25 11:06:51] 'mahax' 94.41.196.178 - OK : LoginOk
[11.08.25 11:07:31] 'killerxp3d' 88.85.187.218 - ERR : LoginFailed
[11.08.25 11:07:58] 'killerxp3d' 88.85.187.218 - ERR : LoginFailed
[11.08.25 11:08:11] 'killerxp3d' 88.85.187.218 - OK : LoginOk
[11.08.25 11:08:27] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:08:42] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:08:43] 'jenek32' 217.118.66.104 - OK : LoginOk
[11.08.25 11:08:55] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:09:20] 'lineage793' 46.247.218.137 - ERR : LoginFailed
[11.08.25 11:09:35] 'lineageups' 46.247.218.137 - OK : LoginOk

Блокировать по строкам ERR : LoginFailed через сколько то попыток на сколько то минут.
Это защитит от перебора паролей, от ддос атак не поможет.
Что за бред? Подобный функционал есть в каждой сборке.
Ответ
#8
Добавлю, что для включения
Код:
[ssh-iptables]
нужны логи /var/log/auth
Для этого надо в
Код:
/etc/syslog.conf
добавить строчку:
Код:
auth.*  -/var/log/auth
перезапустить службу
Код:
service syslog restart

И еще не забываем правила:
Код:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j REJECT
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 10 -j REJECT
iptables -A INPUT -p tcp --syn --dport 2106 -m connlimit --connlimit-above 15 -j REJECT
iptables -A INPUT -p tcp --syn --dport 7777 -m connlimit --connlimit-above 200 -j REJECT
Тут 200 на онлайн 200 - может я ошибаюсь, если было бы iplimit я точно поставил бы не больше 5 подключений.
Ответ
#9
Это и есть айпи лимит=)
Ответ
#10
Не могу найти в файле "jail.conf" строчку.
[apache-badbots]
[Изображение: 1564177459.png]
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)