Linux за българи: Форуми

Сигурност => Системна Сигурност => Темата е започната от: lqlqlq в Mar 29, 2013, 10:59



Титла: Защита на apache от F5 с iptables
Публикувано от: lqlqlq в Mar 29, 2013, 10:59
Така, имам тази команда само:
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 6 --connlimit-mask 24 -j DROP
Която се подразбира, че реже кънекции над 6 от дадено IP, която работи безпроблемно, над нея имам:
iptables -I INPUT -p tcp --syn --dport 80 -m state --state NEW -j ACCEPT

Искам нещо подобно на Mod_evasive, но през иптаблици, защото evasive не работи под Prefork модула, а само на worker.
С hitcount не става, може би с някакъв стринг и ограничения към него, но не знам какъв точно трябва да е стринга.

Четох в интернет, има пример за блокване на POST трафика, ето и как:

iptables -I INPUT -d my_server_ip -p tcp --dport 80 -m string --string 'POST /' --algo bm -j DROP

Чакам вашите съвети, за над 5 рефреша - да DROP-ва.
Благодаря!


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: edmon в Mar 29, 2013, 17:02

Не може ли скрипта, който се изпълнява с рифреш-а да брои колко пъти е изпълнен за сесията например... :)


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: laskov в Mar 29, 2013, 17:20
Е добре. Да речем, че го направиш. На тези, които рефрешват (ако са хора), ще им се показва грешка "Времето за отговор от сървъра изтече." или нещо подобно с бутон "Опитай отново" или нещо подобно, което ще ги кара да мислят, че сървърът ти не работи.
Не те ли притеснява това, че клиентите ти ще си мислят, че сървърът не е надежден ?

PS1: Ако решиш да ми теглиш една майна - не се притеснявай - действай :)

PS2: И друго - аз не съм много наясно, но при рефреш не е задължително сървърът да прати отново цялата страница с всичките и елементи. Пробвай да рефрешваш например този форум и ще видиш колко време отнема, когато няма нови мнения.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: go_fire в Mar 29, 2013, 17:25
A-a-a притеснително е. Според правилата се оказва, че не може да ругаеш дори себе си, камо ли някой друг  :P


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: lqlqlq в Mar 29, 2013, 17:29
Хора, дайте някакъв метод, искам просто при много заявки с F5 да им спира кънекциите, не ме интересува какво ще си мислят за сървъра... Кой ги е карал да правят мизерии ?


PP: искам подобно нещо, защото при много такива фейк заявчици, cpu-то отива по-дяволите.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: go_fire в Mar 29, 2013, 17:32
В общи линии колегите се опитаха да обяснят, че идеята е много тъпа. А за помощ съжалявам, не мога да помогна, защото грам не разбирам от iptables.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: lqlqlq в Mar 29, 2013, 17:33
За теб може да е тъпа, но аз знам какво искам и какво точно ми трябва, но не мога да измисля начин да си го направя.
Идеята е, че няма да се товари процесора по-този начин.
Иначе други защити от syn tcp флууд си имам. Просто искам и това да оправя, за да ми е по-сигурно.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: laskov в Mar 29, 2013, 17:38
Ами намали броя на httpd процесите.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: lqlqlq в Mar 29, 2013, 17:43
Не мисля, че това ще е това което ми трябва, но можеш ли да дадеш пример, как да го направя?
Благодаря!


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: vox в Mar 29, 2013, 19:19
Evasive mod

https://www.google.bg/#hl=bg&sclient=psy-ab&q=evasive+mod+apache&oq=evasivemod&gs_l=hp.3.2.0i13i30l4.572.3714.0.5728.10.9.0.1.1.0.159.952.4j5.9.0...0.0...1c.1.7.psy-ab.4fsiXc7rIbE&pbx=1&bav=on.2,or.r_qf.&bvm=bv.44442042,d.Yms&fp=1fd87d2724808b24&biw=1280&bih=880 ($2)


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: lqlqlq в Mar 29, 2013, 19:55
@vox - Прочети първия ми пост.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: edmon в Mar 29, 2013, 21:50
понеже не казваш какво се изпълнява при рилоудъ предполагам, че е някаква простотия:)))


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: vox в Mar 29, 2013, 22:11
@vox - Прочети първия ми пост.

Правилно, чел не дочел съм!


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: Ali Nebi в Mar 29, 2013, 22:29
Аз съм ползвал mod_evasive с prefork и си работеше без проблем. Може да пробваш на тестова машина или на същия сървър само за определен сайт. Пусни му тестове и ще видиш дали има резултат, но до колкото си спомням си работеше без проблем.

PS: http://shebangme.blogspot.com/2009/09/modevasive-howto-step-by-step.html (инфо за компилация за prefork)


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: ircn в Mar 30, 2013, 10:58
Това което искаш може да стане с iplimit модула на iptables
http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html ($2)
3.5 iplimit patch

This patch by Gerd Knorr <kraxel@bytesex.org> adds a new match that will allow you to restrict the number of parallel TCP connections from a particular host or network.

For example, let's limit the number of parallel HTTP connections made by a single IP address to 4 :

    # iptables -A INPUT -p tcp --syn --dport http -m iplimit --iplimit-above 4 -j REJECT

    # iptables --list
    Chain INPUT (policy ACCEPT)
    target   prot opt source    destination         
    REJECT   tcp  --  anywhere  anywhere     tcp dpt:http flags:SYN,RST,ACK/SYN #conn/32 > 4 reject-with icmp-port-unreachable

Or you might want to limit the number of parallel connections made by a whole class A for example :

    # iptables -A INPUT -p tcp --syn --dport http -m iplimit --iplimit-mask 8 --iplimit-above 4 -j REJECT

    # iptables --list
    Chain INPUT (policy ACCEPT)
    target   prot opt source    destination         
    REJECT   tcp  --  anywhere  anywhere     tcp dpt:http flags:SYN,RST,ACK/SYN #conn/8 > 4 reject-with icmp-port-unreachable

Supported options for the iplimit patch are :

[!] --iplimit-above n

    -> match if the number of existing tcp connections is (not) above n
--iplimit-mask n

    -> group hosts using mask


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: lqlqlq в Mar 30, 2013, 11:29
@ircn - iplimit е заменен с connlimit и няма да ми върши работата - която искам.


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: laskov в Mar 30, 2013, 16:57
Ами намали броя на httpd процесите.
Може би така: RLimitNPROC ($2)


Титла: Re: Защита на apache от F5 с iptables
Публикувано от: ircn в Mar 30, 2013, 18:34
Нещо си в грешка със заменките.
connlimit - лимитира глобалните конекции.
iplimit - лимитира конекциите за съответното ип от което идват заявките.
Ако си чел щеше да ти е ясно, то си е написано.
Ако нямаш модула по подразбиране в дистрибуцията която ползваш
трябва да пачваш кернела с patch-o-matic и да го прекомпилираш, а също и прекомпилиране на iptables.
http://netfilter.org/projects/patch-o-matic/ ($2) обаче гледам, че вече не се поддържа този проект, а е заменен от Engelhardt's xtables-addons.
Xtables-addons is the successor to patch-o-matic(-ng). Likewise, it contains extensions that were not, or are not yet, accepted in the main kernel/iptables packages.
http://xtables-addons.sourceforge.net/ ($2)
Знам, че работи защото съм го правил. Даже мисля, че в slackware по подразбиране го има модула iplimit, но както казах зависи от дистрибуцията и нейната политика какво да бъде включено.
Ако ти не можеш да си пачнеш и компилираш ядрото, това е друго нещо, а не че това което ти казвам няма да ти свърши работа.