blogg-vitalika.ru

  

Bästa artiklarna:

  
Main / Ddos syn flood iptables howto

Ddos syn flood iptables howto

GitHub är värd för ett brett utbud av användarinnehåll, och som alla stora webbplatser får det oss ofta att bli ett mål för förnekande av tjänstattacker. För ungefär ett år sedan var GitHub i mottagande delen av en stor, ovanlig och mycket väl publicerad attack som involverade både applikationsnivå och volymetriska attacker mot vår infrastruktur. Våra användare litar på att vi är mycket tillgängliga och vi tar detta på allvar.

Vårt åtagande är att äga vår egen tillgänglighet och att vi har ett ansvar att mildra den här typen av attacker i största möjliga utsträckning tekniskt möjligt. I ett försök att minska effekterna av dessa attacker började vi arbeta med en rad ytterligare begränsningsstrategier och system för att bättre förbereda oss för en framtida attack av liknande karaktär. SYN-översvämningar är en av de äldsta och vanligaste attackerna, så vanliga att Linux-kärnan innehåller några inbyggda stöd för att mildra dem.

När en klient ansluter till en server med TCP använder den trevägshandskakningen för att synkronisera :. Dessa sekvensnummer låter TCP hålla reda på vilka meddelanden som har skickats och kvitterats av den andra parten. En SYN-översvämning missbrukar detta handskakning genom att bara gå delvis igenom handskakningen. I stället för att gå igenom den normala sekvensen, översvämmer en angripare målservern med så många SYN-paket som de kan samla in, från så många olika värdar som de kan, och spoofar ursprungets IP så mycket de kan.

Även externa DDoS-skrubbningstjänster kan bara gissa om ett paket är legitimt eller en del av en översvämning, vilket gör det svårt att mildra en attack utan att påverka legitim trafik. Under en SYN-översvämning är detta beteende oönskat. SYN-cookies är ett smart sätt att undvika lagring av TCP-anslutningstillstånd under det första handskakningen, vilket skjuter upp lagringen tills en giltig ACK har mottagits. Servern lagrar inget tillstånd för anslutningen förrän ACK som innehåller den validerade SYN-kakan tas emot, och endast vid den tidpunkten regenereras och lagras tillståndet.

SYN-cookies har funnits ett tag och de har ganska minimal inverkan på TCPs tillförlitlighet och falska skydd. I stället för att aktivera dem ständigt aktiverar Linux-kärnan som standard automatiskt SYN-cookies endast när SYN-mottagningskön är full. Detta betyder att du under normala omständigheter när ingen SYN-översvämning inträffar inte får någon påverkan alls, men under en SYN-översvämning accepterar du den minimala effekten av SYN-cookies i utbyte mot att inte släppa anslutningar.

Den extra CPU-kostnaden för att skapa SYN-cookies kompenseras av det faktum att du inte längre har en begränsad resurs, och i praktiken är detta en utmärkt kompromiss.

I Linux 3. Denna implementering gör att alla SYN-kakor genereras seriellt över alla kärnor, vilket försvinner fördelarna med ett multi-processorsystem. För att göra saken värre snurrar alla kärnor och väntar på att låset blir tillgängligt. Det var bra tillbaka i de dagar då en genomsnittlig angripare bara kunde skicka några MBits SYN-paket på ditt sätt, främst tack vare att nätverken var mycket långsammare.

Medan Linux 4. Patching Linux 3. Den sitter i netfilter i kärnan, innan Linux TCP-stacken, och som namnet antyder, proxyserverar alla anslutningar samtidigt som SYN-cookies skapas. För varje efterföljande paket i varje riktning ändrar det sekvensnumren så att det är transparent för båda sidor. Detta är ett ganska påträngande sätt att lösa problemet eftersom det berör varje paket under hela anslutningen, men det minskar framgångsrikt SYN-översvämningar.

Tyvärr upptäckte vi att i praktiken under vår belastning och med mängden missformade paket vi får, bröt det snabbt ner och orsakade en kärnpanik. Dessutom var det nödvändigt att aktivera det hela tiden, eftersom det inte fanns något enkelt sätt att aktivera det bara under attack.

Detta innebar att vi ständigt måste acceptera den minimala effekten av SYN-kakor, och i vår skala skulle detta fortfarande troligen orsaka problem för några av våra användare. Vi bestämde oss för att det var mer komplicerat än vad det behövde vara för vårt användningsfall, och vi ville ha en enklare lösning som bara skulle röra de paket som behövde beröras för att mildra en SYN-översvämning.

Vi bestämde oss också för att en lindring endast skulle orsaka potential även om minimala effekter under lindring och inte under normal drift. Ange synsanity, vår lösning för att mildra SYN-översvämningar på Linux 3. Den största skillnaden är att synsanity genererar en SYN-cookie i stället för att röra vid alla paket på samma sätt som Linux-kärnan skulle generera en om SYN-kön var full, och en gång validerar ACK-paketet, det går igenom till standard Linux SYN-cookiekoden, som skapar och slutför anslutningen.

12 juni 2019. 4 juni 2019. Vi har nyligen uppgraderat GitHub för att använda den senaste versionen av Ruby 2. Ruby 2. 5 mars 2019. Vulcanizer är ett Go-bibliotek för interaktion med ett Elasticsearch-kluster. Dess mål är att tillhandahålla ett API på hög nivå för att hjälpa till med vanliga uppgifter som är associerade med att driva ett Elasticsearch-kluster, såsom att fråga hälsostatus för klustret, migrera data från noder, uppdatera klusterinställningar och mer.

Fira en värld kopplad med kod vid vårt årliga produkt- och community-evenemang, 13-14 november i San Francisco. Vår senaste händelse belyste en sammanlänkad mjukvarugemenskap. Titta på nyckeln, samtalen och panelerna från ditt hörn av världen. Tillbaka till GitHub. Vad är en SYN-översvämning i alla fall? När en klient ansluter till en server med TCP använder den trevägshandskakningen för att synkronisera: Relaterade inlägg. 12 juni 2019 Redaktörsverktyg. Atom-redigeraren har uppdaterats för att göra vanliga funktioner betydligt snabbare.

4 juni 2019 Ingenjörsvetenskap. 5 mars 2019 Ingenjörsvetenskap. Spara din plats vid GitHub Universe Fira en värld som är kopplad med kod vid vårt årliga produkt- och community-evenemang, 13-14 november i San Francisco.

Få biljetter. Upplev GitHub Satellite 2019 Vår senaste händelse belyste en sammankopplad mjukvarugemenskap. Kolla nu.

(с) 2019 blog-vitalika.ru