{"id":55420,"date":"2018-02-02T13:06:25","date_gmt":"2018-02-02T12:06:25","guid":{"rendered":"https:\/\/blog.wedos.cz\/?p=55420"},"modified":"2021-01-14T13:08:54","modified_gmt":"2021-01-14T12:08:54","slug":"jak-nas-web-byl-pod-utokem-anebo-uz-nas-zase-nekdo-nema-rad","status":"publish","type":"post","link":"https:\/\/blog.wedos.com\/cs\/jak-nas-web-byl-pod-utokem-anebo-uz-nas-zase-nekdo-nema-rad","title":{"rendered":"Jak n\u00e1\u0161 web byl pod \u00fatokem anebo u\u017e n\u00e1s zase n\u011bkdo nem\u00e1 r\u00e1d"},"content":{"rendered":"\n<p>N\u00e1\u0161 v\u00fdvoj jde spr\u00e1vn\u00fdm sm\u011brem. Pozn\u00e1me to snadno. U\u017e zase n\u011bkomu hodn\u011b moc vad\u00edme.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>V\u00e1\u017een\u00ed z\u00e1kazn\u00edci, r\u00e1di bychom V\u00e1s informovali o d\u016fvodech nedostupnosti na\u0161eho webu a z\u00e1kaznick\u00e9 administrace dne 2. \u00fanora 2018 v odpoledn\u00edch a no\u010dn\u00edch hodin\u00e1ch. V\u017edy jsme k v\u00e1m byli up\u0159imn\u00ed a hodl\u00e1me v tom i nad\u00e1le pokra\u010dovat, proto\u017ee jen tak m\u016f\u017eete m\u00edt v na\u0161e slu\u017eby plnou d\u016fv\u011bru.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00datok v 17:54<\/h2>\n\n\n\n<p>Kolem 18 hodiny byl na n\u00e1\u0161 web hosting.wedos.com proveden velmi siln\u00fd DDoS \u00fatok. Z\u00e1rove\u0148 prob\u00edhaly men\u0161\u00ed n\u00e1ro\u010dn\u011bji detekovateln\u00e9 \u00fatoky na n\u011bkter\u00e9 dal\u0161\u00ed servery, zejm\u00e9na nov\u00e9 webhostingy, kter\u00e9 od konce listopadu z\u0159izujeme na HPE Moonshot.<\/p>\n\n\n\n<p>Hlavn\u00ed \u00fatok byl proveden p\u0159es r\u016fzn\u00e9 ICMP a UDP, co\u017e by pro n\u00e1s nebyl probl\u00e9m, proto\u017ee je b\u011b\u017en\u011b filtrujeme ve velk\u00e9m mno\u017estv\u00ed. Z\u00e1rove\u0148 v\u0161ak prob\u011bhl i masivn\u00ed \u00fatok TCP+SYN pakety s c\u00edlem zahltit na\u0161e webov\u00e9 servery. To vedlo k p\u0159et\u00ed\u017een\u00ed IPS\/IDS ochrany, kterou vyu\u017e\u00edvaj\u00ed i webhostingy NoLimit, z\u0159\u00edzen\u00e9 p\u0159ed listopadem minul\u00e9ho roku. IPS\/IDS ochrana tak byla &#8222;ucpan\u00e1&#8220; po\u017eadavky a nest\u00edhala p\u0159ehazovat pakety a spojen\u00ed. Automaticky m\u011bl pomoci ochrann\u00fd mechanismus DDoS ochrany a IDS\/IPS ochran\u011b uleh\u010dit a uv\u00e9st situaci do norm\u00e1lu. To se v\u0161ak nestalo. Bohu\u017eel nezafungoval ani pojistn\u00fd mechanismus, kdy se m\u011bl syst\u00e9m IDS\/IPS ochrany pro napadanou s\u00ed\u0165 odpojit. To po p\u00e1r minut\u00e1ch ud\u011blal technik odpojen\u00edm kabelu a napadan\u00fd provoz od toho okam\u017eiku nejel p\u0159es IDS\/IPS ochranu, ale mimo po z\u00e1lo\u017en\u00edch tras\u00e1ch (proto sta\u010dilo odpojit kabel a to bu\u010f konfigura\u010dn\u011b nebo ru\u010dn\u011b).<\/p>\n\n\n\n<p>\u00datok byl prim\u00e1rn\u011b veden na v\u0161echny na\u0161e dom\u00e9ny WEDOS.xxy. Hlavn\u00ed v\u011bci m\u00e1me na samostatn\u00fdch serverech, kter\u00e9 t\u00edm byly p\u0159et\u00ed\u017een\u00e9, ale jednotliv\u00e9 dom\u00e9ny (jednotliv\u00e9 TLD koncovky) jsou na r\u016fzn\u00fdch \u010d\u00e1stech s\u00edt\u011b a r\u016fzn\u00fdch serverech a tam doch\u00e1zelo k v\u00fdpadk\u016fm nebo ke zpomalen\u00ed. Ostatn\u00ed slu\u017eby jako VPS ON, VPS, VPS SSD a dedikovan\u00e9 servery nebyly t\u00edmto \u00fatokem nijak posti\u017eeny.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00datok v 21:40<\/h2>\n\n\n\n<p>Dal\u0161\u00ed \u00fatok a o dost siln\u011bj\u0161\u00ed prob\u011bhl kolem 21:40. Sc\u00e9n\u00e1\u0159 byl stejn\u00fd, ale u\u017e jsme na v\u0161e byli p\u0159ipraveni. Technik ru\u010dn\u011b shodil IPS\/IDS ochranu a tak sd\u00edlen\u00e9 webhostingy z\u0159\u00edzen\u00e9 p\u0159ed listopadem minul\u00e9ho roku poc\u00edtili jen kr\u00e1tk\u00fd n\u011bkolikasekundov\u00fd v\u00fdpadek, respektive zpomalen\u00ed na n\u011bkolik sekund.<\/p>\n\n\n\n<p>Tento ve\u010dern\u00ed \u00fatok byl cca 2x siln\u011bj\u0161\u00ed, ne\u017e v podve\u010der. Ve\u010der k n\u00e1m p\u0159ich\u00e1zelo (na n\u00e1\u0161 hlavn\u00ed web) kolem 2 milion\u016f po\u017eadavk\u016f na spojen\u00ed za sekundu ve form\u011b TCP+SYN paket\u016f, tedy paket\u016f, kter\u00e9 jen maj\u00ed nav\u00e1zat spojen\u00ed a \u010dekaj\u00ed na odpov\u011b\u010f. Sou\u010d\u00e1st\u00ed \u00fatok\u016f bylo n\u011bkolik dal\u0161\u00edch milion\u016f paket\u016f za sekundu, zejm\u00e9na UDP, kter\u00e9 m\u011bly za c\u00edl zahltit na\u0161e linky sm\u011brem k server\u016fm. Vzhledem k tomu, \u017ee jsme p\u00e1te\u0159 p\u0159ed\u011blali na X kr\u00e1t 100 Gbps, tak tohle nehrozilo a do\u0161lo na cca 1 sekundu k ucp\u00e1n\u00ed linky sm\u011brem k fin\u00e1ln\u011b napaden\u00fdm server\u016fm. Potom zafungovala DDoS ochrana a tyto UDP pakety jsme odfiltrovali je\u0161t\u011b p\u0159ed vstupem do na\u0161\u00ed s\u00edt\u011b. Probl\u00e9m byl s TCP+SYN pakety.<\/p>\n\n\n\n<p>Kdy\u017e \u00fato\u010dn\u00edci zjistili, \u017ee ostatn\u00ed na\u0161e slu\u017eby jedou, zam\u011b\u0159ili se na servery kde jedou nov\u00e9 webhostingy na HPE Moonshot. Servery jsou na velkou z\u00e1t\u011b\u017e stav\u011bn\u00e9 jak hardwarov\u011b tak i softwarov\u011b (jeden HPE Moonshot s OpenNebula se star\u00e1 o v\u00edce jak des\u00edtky milion\u016f soubor\u016f). Bohu\u017eel rychl\u00e9 p\u0159\u00edstupy zp\u016fsobily p\u0159\u00edli\u0161 mnoho z\u00e1pis\u016f do log\u016f. M\u00edsta je pro tyto p\u0159\u00edpady dostatek a na serverech byla obrovsk\u00e1 rezerva, ale n\u011bjak\u00fd ochrann\u00fd mechanismus u Docker (respektive souvisej\u00edc\u00edch v\u011bci) preventivn\u011b v\u0161e vypnul a po\u0159\u00e1d n\u011bkter\u00e9 servery opakovan\u011b vyp\u00ednal s informac\u00ed, \u017ee bylo p\u0159ekro\u010deno 87% zapln\u011bn\u00e9ho prostoru na n\u011bkter\u00fdch disc\u00edch. Ne\u017e to na\u0161i technici a v\u00fdvoj\u00e1\u0159i vy\u0159e\u0161ili \u00fapravou, do\u0161lo k restartu \u00falo\u017ei\u0161t\u011b a n\u00e1sledn\u011b bylo nutn\u00e9 synchronizovat data mezi servery v cloudu. To se projevilo nedostupnost\u00ed a n\u00e1sledn\u00fdm zpomalen\u00edm n\u011bkter\u00fdch nov\u00fdch webhosting\u016f. Nov\u00fdm webhosting\u016fm a \u00falo\u017ei\u0161ti jsme se v\u011bnovali posledn\u00ed m\u011bs\u00edc velmi intenzivn\u011b a u\u017e jsme se radovali, \u017ee 11 dn\u00ed jedou bez jedin\u00e9ho zav\u00e1h\u00e1n\u00ed a hlavn\u011b mimo\u0159\u00e1dn\u011b rychle. O tom nap\u00ed\u0161eme samostatn\u00fd \u010dl\u00e1nek.<\/p>\n\n\n\n<p>Tento probl\u00e9m byl u\u017e vy\u0159e\u0161en. V\u00fdvoj\u00e1\u0159i tak\u00e9 p\u0159ipravuj\u00ed n\u011bkolik vylep\u0161en\u00ed, kter\u00e9 podobn\u00fdm situac\u00edm p\u0159edejdou.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Filtraci TCP+SYN jsme m\u011bli<\/h2>\n\n\n\n<p>Filtraci TCP+SYN jsme m\u011bli ji\u017e v p\u016fvodn\u00ed verzi s\u00edt\u011b, ale pro\u010d nyn\u00ed nezafungovala? Po p\u0159echodu na X kr\u00e1t 100 Gbps nefungovala ochrana proti TCP+SYN spr\u00e1vn\u011b, proto\u017ee jsme zcela zm\u011bnili logiku routov\u00e1n\u00ed a v\u0161e je pln\u011b automaticky z\u00e1lohovan\u00e9 (ka\u017ed\u00fd router a filtr v s\u00edti m\u00e1 &#8222;sv\u00e9ho brat\u0159\u00ed\u010dka&#8220; jako online z\u00e1lohu, co\u017e je prevence proti v\u00fdpadk\u016fm a z\u00e1rove\u0148 mo\u017enost balancov\u00e1n\u00ed provozu) a routov\u00e1n\u00ed nen\u00ed symetrick\u00e9. Pakety sm\u011brem dovnit\u0159 na\u0161\u00ed s\u00edt\u011b &#8222;te\u010dou&#8220; jinou trasou ne\u017e pakety, kter\u00e9 z na\u0161\u00ed s\u00edt\u011b odch\u00e1zej\u00ed. V takov\u00e9m p\u0159\u00edpad\u011b filtrace TCP+SYN paket\u016f nefunguje.&nbsp;<br><br>Je\u0161t\u011b v noci z p\u00e1tka na sobotu jsme ud\u011blali n\u011bkolik \u00faprav v routov\u00e1n\u00ed tak, abychom mohli p\u0159\u00edslu\u0161n\u00e9 pakety filtrovat. Je to selektivn\u011b. Vybereme napaden\u00fd provoz a ten po\u0161leme jinou cestou, ne\u017e zbytek. Tak\u017ee odchoz\u00ed pakety po\u0161leme stejnou cestou jako p\u0159\u00edchoz\u00ed a t\u00edm umo\u017en\u00edme filtraci.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nov\u00fd filtr v akci<\/h2>\n\n\n\n<p>Prioritou pro n\u00e1s bylo udr\u017eet v chodu hostingov\u00e9 slu\u017eby, proto tak\u00e9 na\u0161e internetov\u00e9 str\u00e1nky nejely tak dlouhou dobu. V\u017edy jsou pro n\u00e1s prioritou va\u0161e slu\u017eby. \u010c\u00e1st t\u00fdmu pracovala na \u0159e\u0161en\u00ed n\u011bkolika problematick\u00fdch server\u016f (jednalo se asi o 7 server\u016f z celkov\u00fdch cca 1500, kter\u00e9 m\u00e1me) a \u010d\u00e1st t\u00fdmu \u0159e\u0161ila jak situaci co nejd\u0159\u00edve vy\u0159e\u0161it a \u010d\u00e1st t\u00fdmu se v\u011bnovala i \u00faprav\u00e1m, aby k probl\u00e9m\u016fm nedoch\u00e1zelo. Nav\u00edc jsme je\u0161t\u011b dali zpr\u00e1vu na soci\u00e1ln\u00ed s\u00edt\u011b a kolega tam odpov\u00eddal. S podobn\u00fdmi situacemi m\u00e1me dlouholet\u00e9 zku\u0161enosti, tak\u017ee sestavit t\u00fdmy a koordinovat jejich \u010dinnost v krizov\u00fdch p\u0159\u00edpadech je v podstat\u011b rutina. Ka\u017ed\u00fd v\u00ed koho informovat, od koho z\u00edsk\u00e1 dal\u0161\u00ed instrukce anebo mu sd\u011blit, co u\u017e za\u0159\u00eddil.&nbsp;<\/p>\n\n\n\n<p>Samoz\u0159ejm\u011b \u010d\u00e1st na\u0161eho t\u00fdmu se nep\u0159etr\u017eit\u011b v\u011bnovala odra\u017een\u00ed \u00fatoku. P\u0159ed na\u0161e str\u00e1nky jsme se tak\u00e9 rozhodli nasadit nov\u00fd filtr f80. Jedn\u00e1 se o nov\u00fd, dosud v ostr\u00e9m provozu nevyzkou\u0161en\u00fd filtr, kter\u00fd na\u0161i v\u00fdvoj\u00e1\u0159i a technici p\u0159ipravovali pro slu\u017ebu VPS SSD a VPS ON a nov\u011b p\u0159ipravovan\u00fd WEDOS Cloud. Jeho nasazen\u00ed jsme v\u0161ak odkl\u00e1dali kv\u016fli p\u0159estavb\u011b s\u00edt\u011b na X kr\u00e1t 100 Gbps. Nov\u00fd filtr f80 umo\u017e\u0148uje filtrov\u00e1n\u00ed provozu podle zem\u00ed p\u016fvodu. Pokud m\u00e1te slu\u017ebu pro omezen\u00fd okruh lid\u00ed, tak ostatn\u00ed p\u0159\u00edstupy jsou jen zbyte\u010dnou z\u00e1t\u011b\u017e\u00ed. Tak\u00e9 poslou\u017e\u00ed jako nouzov\u00e9 \u0159e\u0161en\u00ed pro situace jako byla pr\u00e1v\u011b te\u010f ta na\u0161e.<\/p>\n\n\n\n<p>Na nov\u00e9m filtru f80 jsme si nastavili p\u0159\u00edstupy pouze z \u010ceska, Slovenska, Polska a zapojili jej do s\u00edt\u011b. Okam\u017eit\u011b za\u010dal filtrovat provoz a n\u00e1\u0161 web jel naplno. Vyt\u00ed\u017een\u00ed serveru padlo okam\u017eit\u011b na b\u011b\u017en\u00fd provoz. \u017d\u00e1dn\u00e9 pomal\u00e9 na\u010d\u00edt\u00e1n\u00ed \u2013 v\u0161e jelo jako by se nic nestalo. P\u0159itom server byl p\u016fvodn\u011b (doslova) pod palbou milion\u016f po\u017eadavk\u016f za vte\u0159inu. Nov\u00fd filtr f80 byl od za\u010d\u00e1tku vyv\u00edjen pro obrovskou z\u00e1t\u011b\u017e, ov\u0161em dokud jej nevyzkou\u0161\u00edte v re\u00e1ln\u00e9m provozu tak nev\u00edte nakolik bude efektivn\u00ed anebo kolik toho dlouhodob\u011b zvl\u00e1dne. Vyzkou\u0161et jej v &#8222;bojov\u00fdch&#8220; podm\u00ednk\u00e1ch na na\u0161em vlastn\u00edm webu, kde jsme v podstat\u011b nic neriskovali, bylo ide\u00e1ln\u00ed. V testu obst\u00e1l na jedni\u010dku \ud83d\ude42<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nov\u00e9 mo\u017enosti filtrace pro na\u0161e klienty<\/h2>\n\n\n\n<p>Tento nov\u00fd zp\u016fsob filtrace budeme cht\u00edt nab\u00eddnout na\u0161im klient\u016fm u v\u0161ech slu\u017eeb (v\u010detn\u011b webhostingu). Klienti si budou moci vybrat zem\u011b, ze kter\u00fdch cht\u011bj\u00ed povolit p\u0159\u00edstupy na sv\u016fj server (prim\u00e1rn\u011b bude slu\u017eba ur\u010dena pro VPS, VPS ON a WEDOS Cloud). Pokud nap\u0159\u00edklad v\u00edte, \u017ee m\u00e1te server s n\u00e1v\u0161t\u011bvn\u00edky z \u010cR a SR, tak si povol\u00edte jen tyto dv\u011b zem\u011b. Nebo t\u0159eba v\u00edte, \u017ee chcete n\u00e1v\u0161t\u011bvn\u00edky jen z Evropy, tak si povol\u00edte p\u0159\u00edstupy jen z Evropy. Samoz\u0159ejm\u011b p\u016fjdou d\u011blat v nastaven\u00ed v\u00fdjimky. V\u0161e p\u016fjde nastavit v administraci.<\/p>\n\n\n\n<p>Nyn\u00ed dob\u0159e v\u00edme, \u017ee to funguje a nebudeme m\u00edt strach tuto slu\u017ebu nab\u00eddnout na\u0161im z\u00e1kazn\u00edk\u016fm.&nbsp;<\/p>\n\n\n\n<p>Nyn\u00ed je\u0161t\u011b chceme dokon\u010dit p\u0159echod s\u00edt\u011b na X kr\u00e1t 100 Gbps, kde n\u00e1m v podstat\u011b chyb\u00ed jen spu\u0161t\u011bn\u00ed IPv6 pro nov\u00e9 slu\u017eby (nov\u00e9 webhostingy, VPS ON a WEDOS Cloud). Tam na \u0159e\u0161en\u00ed pracujeme.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Z\u00e1v\u011br<\/h2>\n\n\n\n<p>V p\u00e1tek se toho ud\u00e1lo v\u00edce, ale to by bylo pomalu na sc\u00e9n\u00e1\u0159 k celove\u010dern\u00edmu filmu:). A\u017e otev\u0159eme na\u0161e druh\u00e9 datacentrum a ud\u011bl\u00e1me dny otev\u0159en\u00fdch dve\u0159\u00ed, tak si o tom r\u00e1di s v\u00e1mi popov\u00edd\u00e1me do detail\u016f. Nem\u00e1me se za co styd\u011bt pr\u00e1v\u011b naopak. V\u011bd\u011bli jsme co se d\u011bje, a jak to vy\u0159e\u0161it s minim\u00e1ln\u00edm dopadem na slu\u017eby na\u0161ich z\u00e1kazn\u00edk\u016f. Klidn\u011b takov\u00e9 \u00fatoky mohly trvat i hodiny a opakovat se ka\u017ed\u00fd den. Popravd\u011b se opakovaly i dal\u0161\u00ed den, ale to u\u017e jste si ni\u010deho nev\u0161imli, proto\u017ee jsme se na n\u011b p\u0159ipravili a na\u0161e DDoS ochrana tentokr\u00e1t reagovala bezchybn\u011b.<\/p>\n\n\n\n<p>\u00datoky sm\u011b\u0159ovaly hlavn\u011b na n\u00e1s \u2013 na n\u00e1\u0161 hlavn\u00ed web, administraci a tak\u00e9 dom\u00e9ny, kter\u00e9 moc nepou\u017e\u00edv\u00e1me jako t\u0159eba wedos.cz (zde je jen p\u0159esm\u011brov\u00e1n\u00ed). N\u011bkdo n\u00e1s asi nem\u00e1 r\u00e1d. Mo\u017en\u00e1 bychom m\u011bli ud\u011blat mimo\u0159\u00e1dnou alespo\u0148 t\u00fddenn\u00ed slevu na na\u0161e nov\u00e9 slu\u017eby \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00e1\u0161 v\u00fdvoj jde spr\u00e1vn\u00fdm sm\u011brem. Pozn\u00e1me to snadno. U\u017e zase n\u011bkomu hodn\u011b moc vad\u00edme.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,101],"tags":[],"class_list":["post-55420","post","type-post","status-publish","format-standard","hentry","category-spolecnost","category-udalosti"],"_links":{"self":[{"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/posts\/55420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/comments?post=55420"}],"version-history":[{"count":1,"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/posts\/55420\/revisions"}],"predecessor-version":[{"id":55424,"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/posts\/55420\/revisions\/55424"}],"wp:attachment":[{"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/media?parent=55420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/categories?post=55420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wedos.com\/cs\/wp-json\/wp\/v2\/tags?post=55420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}