Zlobivý roboti, co mi DoSují WordPress

disgusted-oh-god-why-textVíte co je super na tom mít Alexa rank pod 100K? Váš web začnou procrawlovávat desítky robotů a zařazovat jej do různých adresářů, agregátorů a obsahových farem. Jo sice nabíráte nabíráte “přirozené odkazy” – tedy odkazy, které se tvoří sami bez vašeho přičinění, ale občas to nadělá pěkný bordel.

Takže pokud je váš WordPress zničehonic pomalejší anebo padá, možná za to může nějaký robot.

Cachovací pluginy

Jj zrychlit si WordPress pomocí cachovacích pluginů je super. Místo neustálého generování stránky si je plugin zčásti předgeneruje a tím šetří prostředky serveru. Jenomže když si robot vyžádá 1000 postů, znamená to u některých pluginů i desítky tisíc pidisouborů. Třeba za jeden den mi WP-Super-Cache vytvořil soubory o velikosti v součtu přes 200 MB. Přitom instalace WP může mít jen nižší desítky megabajtů.

Jak to řešit: Nastavte si cachování pouze těch stránek, které mají největší návštěvnost. Díky friendly SEO URL ve WordPress, není problém cachovat pouze příspěvky s aktuálním rokem anebo měsícem. Samozřejmě jestli je vaše návštěvnost v rámci mezí (max desítky lidí online v jeden okamžik), tak zvažte zdali vůbec má cenu cachování zapínat.

Crawlujeme jako o život

Googlebot i Seznambot jsou ke stránkám šetrní. Chápou že obsah tvoříte pro lidi a ne kvůli nim. Proto intenzitu procházení nijak nepřehání. Dokonce můžete jejich rychlost procházení ovlivnit. Jenomže pak tu máme různé ostatní roboty, které jsou schopné se někdy i zacyklit. Výsledkem je zátěž, která připomíná i slabší DoS útok. Pokud jsou vaše zdroje omezené (máte třeba nejnižší tarif VPS), tak to zaručeně pocítíte. Stalo se to i mě (Chyba 503 nemusí znamenat, že potřebujete lepší tarif). Popravdě bez statistik ze serveru (access log) na to ani nepřijdete.

Jak to řešit: Sdílený webhosting toho utáhne dneska hodně. Navíc zákaznická podpora koukne do logu a bude jí jasné co se děje. Další výhodou sdíleného hostingu je, že server je proti DoS útokům chráněný například přes fail2ban. Takže se s tímto problémem ani nepotkáte. Jestliže se na zákaznickou podporu nemůžete spolehnout (nepomůže, máte VPS), tak určitě koukněte do access log. Řešení je pak v mém článku zmíněném v předchozím odstavci.

Jestlipak máš heslo 123456?

Naprosto každý WordPress si tímto projde jakmile jej zaindexuje Google. Robot zkusí na wp-login.php spustit palbu nejpoužívanějších hesel. Často jsou to i stovky či tisíce pokusů. Nemusí se to stát naráz, klidně postupně. Na 404M jsem v access logu uviděl desítky takových pokusů za hodinu. Popravdě heslo k 404M ani sám neznám. Využívám předgenerovaná hesla o 15 znacích, včetně speciálních znaků.

Před pár měsíci jsem si sem nainstaloval na otestování plugin WP-Security. Občas jsem viděl menší zpomalení systému a pingdom na hlídání dostupnosti ukazoval krátké výpadky. Hledal jsem nějakou funkci jako fail2ban k logování. Prostě 3x zadáš špatné heslo a IP adresa bude zablokována. No během několika měsíců měl v databázi 713 IP  adres rozsahu C (AAA.BBB.CCC.*) a k tomu přes 25 tisíc pokusů o brute force útok.

Jak to řešit: Pár dnů zpátky už byl zřejmě tlak tak velký, že mi blog na pár minut dokonce spadl. Říkám si, tady už mi skripty nepomůžou, musím sáhnout po serverovém řešení. Díky bohu .htaccess umí daleko víc než je hezké URL.

Order Deny,Allow
Deny from all
Allow from 81.200.55.227

.htaccess jsem nahrál do adresáře /wp-admin/ takže celý jeho obsah je přístupný jen z IP adresy 81.200.55.227, kterou sdílím s půlkou sídliště. Pokud by tady byl někdo, kdo zkusí získat heslo k 404M, tak jej už bude muset zastavit WP-Security. Ten zároveň umí poslat i email, pokud nějakou IP adresu dá na blacklist. Takže pokud vám přijde hromada spamu můžete přejít na zablokování všech IP adres mimo té vaší.

Závěr

WordPress či většinou redakčních systémů obecně dokáže dnes už nainstalovat každý. Starat se o něj už tolik lidí neumí,  přitom stačí dodržovat pár základních věcí – nehrabat se v kódu, neinstalovat co neznám, pravidelně zálohovat a aktualizovat. Ve většině příruček se dozvíte, že tohle je všechno, aby CMS dobře šlapalo. Jenomže jsou tu ještě vlivy venkovního prostředí … A pak nezbude než požádat o pomoc někoho zkušeného.


Jak bude reklama vypadat?
-
Kup si reklamu navždy pod tímto článkem jen za 100 Kč
Zobrazit formulář pro nákup

12 komentářů u „Zlobivý roboti, co mi DoSují WordPress“

  1. To s tím htaccessem je fakt dobrý nápad. Sice nemám tak navštěvované stránky ale co není může být.

  2. ako sa google pozera na blokovanie rozsahov ip? napr .com web s blokovanymi ruskymi a cinskymi ip?
    je mozne ze google testuje pristup z roznych krajin?

  3. nechapu ze WP neumoznuje si standardne prejmenovat wp-login.php abych jmeno stranky znal pouze ja !!!
    Meli by pozizalkach!!!

  4. Nešlo by použít řešení jako má Presta? Přejmenovat buď složku admin nebo alespoň login?

  5. Osobne si myslim, ze fail2ban nevyresi vsechno. Mel jsem nedavno utok na named server a VPS logovani preteklo pres kapacitu VPS :). Tak jsem ho vypnul a mam klid.
    Jinak pokud ma vas web/vps SSH pristup, tak doporucuju utilitku “iftop” pro sledovani pristupu na server v realnem case. Odhalil jsem takhle snifovani Cloudflare a veskery jejich IP rozsahy sly do blokace.

  6. Používám kombinace pluginů Limit Login Attempts, Wordfence Security a Stop Spammer Registrations Plugin a je to výrazně lepší. Jen si přečtu v mailu, kdo se zase o co pokoušel ;)

  7. Při každé registraci kouknu, zda nemá záznam ve stopforumspam (API), pro CZ a SK jsem si počet navýšil a světe div se mám klid :) Celkově počet BANů upadá, za poslední 3 měsíce “jen” 2.700 IP adres. Dřív to bývalo víc :)

  8. Tyto útoky jsou otravné a stále častější, sám to pozoruji u několika svých stránek. Díky za návod, jak na se bránit.

  9. Já jsem vsechny admin sekce na vsech svych PHP webech zahesloval pres htaccess a htpaswd. musim ted sice zadavat dve ruzne jmena a hesla, ale vim, ze se nikdo nedostane ani k nejake bezpecnostni chybe, kterych bylo napr v zencartu pozehnane.

    A zaroven se tam ja dostanu odkudkoliv.

Komentáře nejsou povoleny.