Fail2ban против DDOS и сканирования сайтов

Тема в разделе "Защита от DDOS своими силами", создана пользователем X-Shar, 13 дек 2014.

↑ ↓
  1. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    Я тут узнал про прикольную тулзу это fail2ban, смысл такой что может банить по определённым событиям в логах, а так-же неплохо защищает от брута админок, SSH и т.д.

    По умолчанию после установки он уже защищает 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=ddosport="http,https"]
                   
    sendmail-buffered[name=ddoslines=5dest=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
     
    • Мне нравится Мне нравится x 2
  2. Антоха Администратор
    Антоха
    Ответить в чате

    Администрация

    Регистрация:
    26.12.2012
    Сообщения:
    3.180
    Симпатии:
    11.094
    Пол:
    Мужской
    Репа:
    +11.242 / 47 / -6
    Jabber:
    Skype:
    Читал ту тему.Лисичку совсем загрызли.Хотя обороняется она красиво.
     
    • Мне нравится Мне нравится x 1
  3. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    Важно ещё подобрать findtime, по умолчанию 10-ть минут там и соответственно если сделать например 10 запросов, то многие будут блокироваться, это очень важный момент...
     
    • Мне нравится Мне нравится x 2

Поделиться этой страницей