abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 00:33 | Zajímavý článek

Správce nástroje curl Daniel Stenberg na GitHubu průběžně vytváří svou novou knihu Uncurled, v níž shrnuje své dlouhodobé zkušenosti s údržbou open-source projektu: od odpozorovaných pouček po vtipné a ne až tak vtipné příklady e-mailů od uživatelů.

Fluttershy, yay! | Komentářů: 0
dnes 00:22 | Nová verze

Byla vydána nová major verze 25.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Nová verze

Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript a TypeScript, bylo vydáno ve verzi 1.22. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 18:22 | Nová verze

Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 9.0. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
včera 14:00 | Komunita

Lars Knoll oznámil, že po 25 letech v ekosystému Qt, z toho 22 let pracující pro různé společnosti vlastnící Qt, odchází ze společnosti The Qt Company do malého norského startupu.

Ladislav Hagara | Komentářů: 2
včera 13:22 | Zajímavý projekt

Na Kickstarteru běží kampaň na podporu mini ITX desky Turing Pi 2 Cluster Computer. Vložením 4 výpočetních modulů, podporovány jsou Raspberry Pi 4, Turing RK1 a Nvidia Jetson, lze získat 4uzlový cluster. Cena desky je 219 dolarů.

Ladislav Hagara | Komentářů: 2
včera 10:00 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 198. brněnský sraz, který proběhne v pátek 20. května tradičně od 18 hodin v Pivovarské restauraci Moravia.

Ladislav Hagara | Komentářů: 2
včera 07:00 | Zajímavý software

Byla vydána nová verze 0.25 herního enginu Fyrox, původně rg3d. Přehled novinek s kódy, náhledy i videi v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
včera 00:11 | Nová verze

Multiplatformní audio přehrávač Qmmp (Wikipedie) byl vydán ve verzi 2.1.0. Z novinek lze zmínit například podporu XDG Base Directory Specification.

Ladislav Hagara | Komentářů: 0
17.5. 23:22 | Komunita

Letošní konference LibreOffice proběhne 28. září až 1. října v Bolzanu. The Document Foundation hledá přednášející.

Zdeněk Crhonek | Komentářů: 0
Na sociálních sítích nebo jiných webových diskuzích vystupuji pod
 (60%)
 (17%)
 (23%)
Celkem 272 hlasů
 Komentářů: 23, poslední včera 16:14
Rozcestník


Dotaz: iptables ddos ochrana

26.3.2017 04:14 newone
iptables ddos ochrana
Přečteno: 700×
Ahoj, mám CentOS6, na kterém mi běží webserver (tcp80+443). Před serverem je firewall, který všechen příchozí provoz z internetu blokuje, kromě portů 80/tcp a 443/tcp (víc o firewallu nevím, neadminuju ho). Provoz z internetu jde na eth1, eth0 je management sitovka.

Pomocí iptables chci zabránit malému DDOS útoku na eth1, nepotřebuju logování, jde mi o jednoduchost, přehlednost a funkčnost. Předpokládám návštěvnost cca 30 připojení za sekundu. Ve špičce i víc.

Podle tohoto článku jsem si sepsal pravidla, výsledek vypadá takto:
[root@svweb1 ~]# iptables-save
# Generated by iptables-save v1.4.7 on Sun Mar 26 03:11:48 2017
*filter
:INPUT ACCEPT [46:3090]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [150647:109863890]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -m connlimit --connlimit-above 200 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
-A INPUT -i eth1 -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --tcp-flags RST RST -j DROP
-A INPUT -i eth1 -p tcp -m conntrack --ctstate NEW -m limit --limit 60/sec --limit-burst 50 -j ACCEPT
-A INPUT -i eth1 -p tcp -m conntrack --ctstate NEW -j DROP
COMMIT
# Completed on Sun Mar 26 03:11:48 2017
# Generated by iptables-save v1.4.7 on Sun Mar 26 03:11:48 2017
*mangle
:PREROUTING ACCEPT [252606:111663529]
:INPUT ACCEPT [252500:111649961]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [150664:109868456]
:POSTROUTING ACCEPT [150664:109868456]
-A PREROUTING -m conntrack --ctstate INVALID -j DROP
-A PREROUTING -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j DROP
-A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A PREROUTING -f -j DROP
COMMIT
# Completed on Sun Mar 26 03:11:48 2017
[root@svweb1 ~]# iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 113 packets, 7696 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1    33061   14M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 REJECT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           #conn/32 > 200 reject-with tcp-reset
3        0     0 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x04/0x04 limit: avg 2/sec burst 5
4        0     0 DROP       tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x04/0x04
5      195 10824 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           ctstate NEW limit: avg 60/sec burst 50
6        0     0 DROP       tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           ctstate NEW

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 22804 packets, 15M bytes)
num   pkts bytes target     prot opt in     out     source               destination
Co si o tomto řešení myslíte? Uvítám vaše názory, popřípadě vaše řešení z podobně dimenzované aplikace. Dík

Odpovědi

26.3.2017 08:46 iptables
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Představ si, co to je DDOS.

Zahlcení linky za účelem znepřístupnění služeb.

Skutečně si myslíš, že pomůže omezení provozu?

Pokud vím (ostatní mě opraví), proti DDOS pomůže jen dostatečně "široká" linka.

Existuje mnoho řešení za mnoho peněz.

Žádné ale nefunguje.

Pokud se začne omezovat provoz (včetně omezení IP na země nebo rozsahy) DDOS vyhrál.
26.3.2017 10:21 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Ne, DDoS je distribuované znepřístupnění služeb. Nemusí jít o zahlcení linky, klidně se může útočník pokoušet zahltit aplikaci nebo operační systém. Mnoho aplikací nezvládne obsloužit tolik požadavků, kolik k nim pustí linka.

Nicméně nacpat do firewallu spoustu divných pravidel je právě způsob, jak omezit propustnost OS, aby ten DDoS byl snazší.
26.3.2017 09:36 NN
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Dve veci. Nedelej zbytecne praci za firewall, kdyz ho tam mas. Definovanim legitimniho provozu a zahozenim zbytku by jsi si usetril dost pravidel i prace.
26.3.2017 10:41 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Vůbec nepíšete, čeho tím nastavením firewallu chcete dosáhnout („zabránit malému DDoS“ je příliš obecné – má vaše aplikace problém s počtem spojení, nebo s počtem nových spojení,nebo s délkou spojení, s objemem přenesených dat?). Takže těžko můžeme posoudit, zda vaše řešení vede k požadovanému výsledku a zda je efektivní. Osobně mi nepřipadá jako dobrý nápad nutit firewall sledovat všechna spojení ani nutit ho procházet spoustu pravidel.

Je vůbec nějaký důvod mít tam firewall? Máte tam nějaké aplikace, které naslouchají na IP adrese dostupné z venku, které nemají být z venku dostupné? Pokud ano, nemůžete je nakonfigurovat tak, aby naslouchaly jenom tam, kde mají?

Jaké jsou limity té vaší aplikace? Opravdu je nutné aplikaci před přetížením chránit firewallem, který nic neví ani o komunikaci ani o stavu aplikace? Nedokázala by se ta aplikace lépe ubránit sama?
26.3.2017 12:17 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Můžeš se inspirovat zde: ipset: odlehčete přetíženým iptables
ipset create zakazane hash:ip timeout 86400
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m set --match-set zakazane src -j DROP
iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit-above 5/min --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name SSH-bruteforce -j SET --add-set zakazane src
Ale jak psaly pokud je to fakt masivní DDOS a vytíží linku tak nic nezmůžeš.

Pokud je to DDOS pouze na nějakou službu tak by to ta služba měla ustát (měly by ty parametry být nastaveny už v té službě) ale pokud to tam nejde nastavit tak pak takové pravidlo co dočasně blokne útočící IP pomůže.

Ale pokud půjdou útoky z hromady různých IP třeba 10 dotazů z jedné IP dalších 10 dotazů z druhé + 10 dotazů z třetí tak ti to stejně nepomůže....
26.3.2017 12:23 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Pokud je to útok z jedné nebo několika málo IP adres, není to DDoS, ale „jen“ DoS. To první „D“ v DDoS znamená „distribuovaný“. Celé je to „(distributed) denial of service“.
26.3.2017 13:16 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Jasně ale je rozdíl zda to jde z stovek rozdílných IP a nebo z tisíců a více....

PS. Kdy je to DoS a kdy už DDoS?
26.3.2017 18:14 iptables
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Pokud na tebe zaútočím z jedné IP na tvou službu a uměle vytvořím provoz, co tu službu znapřístupní, je to DoS a pomocí pravidel ve firewallu lze občas Dos zabránit.

Pokud si vezmu na pomoc pár desítek tisíc mých zombíků a zaútočím na tebe, jedná se o DDoS a ty se můžeš jít klouzat, pokud nesedíš na páteřní síti. :-)
27.3.2017 14:28 Elvis
Rozbalit Rozbalit vše Re: iptables ddos ochrana
Lepším řešením by bylo pustit veškerý webový provoz na nějakou proxy a na té omezovat počet existujících a nových spojení. A na zbytek dávat tcp/reset.
Na firewallu můžeš blokovat provoz z nějakých exotických rozsahů, pokud takové jsou.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.