LINUX.ORG.RU
ФорумAdmin

Анти-ddos для не красноглазых

 


2

3

Сложилась такая ситуёвина:

0.) ddos'ят один сайт на VDS'ничке
1.) владелец там виндузятник и совсем не красноглаз
2.) все решения найденные в гугле на скриптах

Есть что-нибудь такое, чтобы на Debian можно было одной командой (не считая добавления репозиториев) накатить защиту от ddos? И чтобы оно работало из коробки?

Неужели за годы существования ddos-атак никто так и не запилил ничего на компилируемом языке и чтобы оно ставилось как пакет?

На баше получаются два скрипта и сложна-сложна.

P.S: пока снабдил владельца сервачка тем, что вместо vim ему следует набирать nano, чтобы хоть в редактор «не засаживать без вазелина».



Последнее исправление: k0ttee (всего исправлений: 1)

DDoS не отражается на хосте, поэтому такой «программы» нет. Если канал забит и до хоста пакет не доходит, то не всё ли равно какой программы там нет?

Нужно брать у хостера допом пакет «анти-ддос» либо обращаться к специализированным конторам типа qrator.

anonymous
()
Ответ на: комментарий от anonymous

DDoS не отражается на хосте

Зависит от типа ддоса. Некоторые атаки можно отразить, если нападающий криворук

anonymous
()

владелец там виндузятник

Пущай лицензию на защиту от ддоса купит, делов-то

Goury ★★★★★
()

Как-то так

#!/usr/bin/mawk -f

# Fill main cycle with find credentials and add IP in array a[$1]++

# Apply:
# ddos_mitigate some.log | iptables-restore

# Or ever that (suitable for balancer):
# ddos_mitigate some.log | ssh host sudo iptables-restore
# Revert back:
# iptables-restore /etc/iptables/rules.v4

# Nginx applicate:
# ddos_mitigate -v ngx=1 some.log > /var/tmp/ddos_blacklist

# And add in nginx.conf:
# include /var/tmp/ddos_blacklist;


BEGIN {
    # set max requiest per subnet in log
    max=200

}


{
    #if ($12 ~ /(WordPress|Mozilla)/ && $5 == "\"GET" && $6 == "/") {a[$1]++}
    #if ($5 == "\"0000000\"" && $7 == 400) {a[$1]++}
    #$6 ~ /login$/ && a[$1]++
    #$14 ~ /^Siege/ && a[$1]++
    #($7 ~ /bitrix/ && $9 == 404) && a[$1]++
    $9 == 404 && a[$1]++

}


END {

    for (i in a) {
        split(i, t, ".")
        bad_network[sprintf("%d.%d.%d.0/24", t[1], t[2], t[3])] += a[i]
    }
    delete a


    while (getline < "/etc/fail2ban/jail.local" > 0) {
        if ($1 == "ignoreip") {
            split($0, twl)
            for (i in twl) {
                if (twl[i] ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {
                    split(twl[i], t, ".")
                    white_network[sprintf("%d.%d.%d.0/24", t[1], t[2], t[3])]++
                }
            }
            delete twl
            break
        }
    }
    close("/etc/fail2ban/jail.local")


    if (ngx == "") {
        while ("iptables-save" | getline > 0) {
            if ($2 == "INPUT" && $3 == "-s" && $6 == "DROP") {
                current_bad_network[$4]
            }
        }
        close("iptables-save")
    }


    for (i in bad_network) {
        if (bad_network[i] > max && i in current_bad_network == 0 && i in white_network == 0) {
            block[i]++
        }
    }


    if (ngx) {

        for (i in block) {
            printf("deny %s;\n", i)
        }

        print("allow all;")

    } else {

        while ("iptables-save" | getline > 0) {

            if ($1 == "*filter") { filter_chain_found=1 }
            if ($1 == "*raw")    { filter_chain_found=0 }

            if (filter_chain_found && $1 == "COMMIT") {
                for (i in block) {
                    printf("-I INPUT -s %s -j DROP\n", i)
                }
                print "COMMIT"

            } else {
                print

            }

        }

        close("iptables-save")

    }

}
andreik
()
Ответ на: комментарий от kiotoze

если это действительно ДДОС, то никакие скрипты тебе не помогут на хосте

Неверно, все зависит от ddos. А реально как про «встречу динозавра с блондинкой 50%» или поможет или нет.
Из реалий жизни, днс на низкой скорости (до 10мбит) спасли правила в iptables, и так же нехилый пров лежал под ддос емним неделю...

anc ★★★★★
()

https://github.com/LTD-Beget/syncookied
Можешь посчитать сколько это тебе обойдется, если уже нет отдельной инфраструктуру в которую вложились, и это только L4

все решения найденные в гугле на скриптах

Короче вангую, что ddos-deflate в его случае хватит. В инном же случае Cloudflare, QRATOR, etc.

anonymous_sama ★★★★★
()

Смотря что там за дудос. Если заваливают говном канал - это к хостеру, но с 90% вероятностью он вас просто выкинет на мороз. В этом случае уже нужно идти к специализированным сервисам типа qrator.

Если долбят поиск или просто тяжелые страницы - nginx с testcookie.

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)

ddos атак существует много, Вам от какой лекарство?
Один раз анализировал атаку на одного из своих клиентов на количество уникальных IP с которых шли пакеты на IP абонента, внутрь пакетов не лез и что там происходило у клиента мне было пох.
Далее нашел список AS и подсетей, которые за ними, прогнал список уникальных IP по этому списку и получил 54000 уникальных AS. только не помню какой pps шел во время атаки
ddos защита от атаки, которая укладывает канал по которому идет Интернет делается только у провайдера или у его вышестоящего провайдера - у которого каналы толще и железки мощные есть для отражения атаки.
Бороться на хосте можно и если успешно, то это не ddos атака.

Vlad-76 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.