Svetainės apsauga su cloudflare.com

Beskaitinėdamas apie nesenai siautusios hakerių grupuotės LulzSec žygdarbius, radau vieną įrašą twitter.com svetainėje apie tai, kad grupuotės puslapį bando atakuoti kita grupuotė ir kone savaitę vykdoma DDOS ataka. Iš karto atsidariau jų svetainę, keletą kartų paspaudinėjau F5, bet kaip ir viskas veikė normaliai. Tame pačiame įraše buvo sakinys „Good old CloudFlare!“. Nieko nelaukęs suradau cloudflare.com svetainę ir pažiūrėjau video. Viską susumavęs nusprendžiau išbandyti paslaugą.

Registracija svetainėje paprasta, paskutinis žingsnis yra pakeisti savo DNS serverius į cloudflare siūlomus. Kadangi interneto vizija DNS serverius keičia kelias dienas, taigi kuriam laikui bandymus galite pamiršti. Galime pasigrožėti cloudflare veikimo principu:

Pasikeitus DNS serveriams, savaitę praleidau nagrinėdamas cloudflare galimybes, kurias dabar trumpai ir apžvelgsiu.

Pagrindiniame lange pateikiama informacija pagal pasirinktą laiko tarpą. Kaip matome iš maždaug 2.4 mln. užklausų 1,278,173 aptarnavo pats cloudflare, taigi mano serveris turėjo gerokai mažiau apkrovos, iš 21.9 GB duomenų 5.9 GB irgi pateikė cloudflare. Skamba kaip ir visai neblogai. Tačiau įdomioji dalis visai ne čia.
Pasirinkus punktą „Threat control“ mus nukelia į IP adresų sąrašus. Čia galime nurodyti kam ką leisti ir ką kam drausti. Taisyklės gali būti nurodomos konkrečiam IP adresui, IP adresų ruožui ar visai šaliai. Taip pat čia mus pasitinka įtartinų IP adresų sąrašas, kur galime pasirinkti ar juos blokuoti ar ne.

Išskleidus vieną iš jų galime pamatyti truputį informacijos apie nedorėlį

Juostelė dešinajame viršutiniame kampe parodo aplinkinių IP adresų būklę, jei visas IP ruožas yra „problematiškas“ tai juostelė bus ryškiai raudona, tad galite blokuoti kiek daugiau nei vieną konkretų IP adresą. Informacijos nėra labai daug, tačiau jos pakanka kad galėtumėme priimti sprendimą blokuoti ar ne. Taip pat pateikiama nuoroda į projecthoneypot.org kur parodo fragmentus siunčiamų el. laiškų iš pasirinkto IP, bei dar keletas dalykėlių. Kai IP adresą užblokuojame, po kažkurio laiko nenaudėlis pamatys gražų užrašą:

Mano bandymų metu nepavyko nustatyti kiek reikia laiko, kad nurodytas IP adresas netektų prieigos prie tinklapio, tačiau užblokuotą IP adresą priskyrus prie „baltojo“ sąrašo prieiga buvo atstatyta iškart.

Cloudflare taip pat turi PRO planą su papildomomis galimybėmis, tačiau nepanorau kol kas mokėti 20$ per mėnesį už tai.
Iš esmės siūloma paslauga man patiko, kad be didelių vargų galiu blokuoti IP ruožus ar šalis dėl bandymų pakenkti svetainei. Visą darbą nudirba ne mano serveriai, tai jei mano serveris bus atakuojamas – jam nereikės papildomai apdoroti užklausų iš tų IP adresų, bei eikvoti savo tinklo pralaidumą. Nenaudėlių IP adresus kaupia visas cloudflare tinklas, jei buvo užpulta kita svetainė esanti tinkle – mano svetainė automatiškai bus apsaugota. Jei gerai supratau logiką, tai įtartinam vartotojui pateikiama captcha kurios nepraėjęs automatiškai esi blokuojamas, tačiau iššaukti pačiam tokio lango nepavyko, tad negaliu tiksliai pasakyti kokia procedūra tuo metu vykdoma.

Bandant cloudflare buvo įvykęs mažas incidentas, kaip matote birželio 28 dieną yra stipriai sumažėjęs pageview skaičius. Tai įvyko ne dėl to, kad tą dieną lankytojai nusprendė į mano svetainę neateiti, tai buvo cloudflare bandymas pakešuoti mano svetainės turinį, kad reikalui esant galėtų aptarnauti užklausas ir be mano serverio žinios (tarkime serveriui nulūžus). Taip tikriausia neturėjo būti, bet serveris patyrė milžiniškas apkrovas nuo cloudflare užklausų, net teko dedikuotą planą serveriai.lt pasikeisti iš D40 į G400, bet net ir tada procesoriaus CPU apkrova buvo beveik 100%… Dienai besibaigiant viskas susitvarkė ir per likusią savaitę daugiau nieko panašaus nepastebėjau. Tai tą mažą incidentą linkęs vertinti kaip treniruotę prieš galimą DDOS ataką.

Žygimantas

Lead developer at Soundest. Zend Certified Engineer.

More Posts - Website

Žymos: , ,

6 komentarai

  1. geras dalykas, pritaikiau vienam projektui. nors projektas didzia dalim veikia ant ajax kur duomenys atsinaujina kas kelias sekundes, bet mano atveju rodo net 57% sumazinta uzkausu skaiciu i serveri. Tai labai gelbsti taupant serverio resursus. Praktiskai

  2. Labas, na as isbandziau :)
    Tai keturias dienas paveike normaliai, paskui prasidejo „laginimai“ :)
    Uzkrovimo laikai iki 40 s. Nunesiau lauk … grizau prie iprasto varianto

    • Taip aš irgi su pora svetainių patyriau nemalonumų. Nuo ko viskas priklauso – sunku pasakyti. Yra pora svetainių kurios sukasi be jokių problemų nuo pat posto parašymo dienos. Pastebėjau tokį reikalą, kad „stabdo“ autominify JS failų kurie jau minifikuoti (pvz jQuery bibliotekos), atjungus autominify nuo JS failų – viskas susitvarko. Su kita svetaine kilo problemų didesnių, teko atjungti cloudflare. Parašius supportui pranešė, kad „Thanks for the traceroute It looks like there might be a problem with the IPs (xxx.xxx.xxx.xxx) you’re on & I’ve pinged engineering“, ir tiek :) Visgi DNS valdymą palieku pas juos, nes privalumas, kad pakeitimai įsigalioja iškarto – labai didelis. Tas itin praverčia development metu. Ką jau kalbėti apie perkelimus į kitus serverius, nereikia laukti kol „susivaikščios DNS’ai“.

      • :( na pas mane DNS gan neblogai atsinaujina. Na vistiek pazymim si resursa riebiu +. Ir stebim ji toliau, gan neblogas dalykas, tik gal kiek veliau veiks stabiliau.

  3. Na reiks pastebeti si resursa, siaip ideja nebloga ir man kaip ir patiko. Veliau reiks koki resursa testini paleisti ir pastebeti, kas ir kaip

  4. http://www.cloudflare.com/system-status akivaizdu, kad kažką intensyviai tvarko (Jan 24), tikėsimės, kad į gera.

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *

Galite naudoti šias HTML žymas ir atributus: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>