« 1 2 3 4 »
Autor Zpráva
Kajman_
Profil *
Chamurappi:
Počkal bych na ty logy, pak se uvidí. Už by měly být na cestě. (Respektive cesta k nim je na cestě.)
Dorazila už cesta k logům? A je z nich něco patrné?
Chamurappi
Profil
Reaguji na Kajmana:
Právě dorazila.

Během výpadku mezi 18:10 a 18:20 prý přišlo na server dvanáct tisíc požadavků místo obvyklých dvou tisíc. User-Agent, který se z mnoha různých IP adres pokoušel POSTovat, se jmenuje „Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8 RPT-HTTPClient/0.3-3“. Jak se ho můžeme co nejradikálněji zbavit?
Aesir
Profil
[#2] Chamurappi:
RPT-HTTPClient/0.3-3
To vypadá na podpis jedné Javovské knihovny, takže než nějaký robot to bude dost možná něčí scrapper a ten na robots.txt koukat nebude.

Jak se ho můžeme co nejradikálněji zbavit?
Pro začátek by mohlo pomoct posílat hlavičku 403, pokud user-agent obsahuje řetězec "RPT-HTTPClient". Nevím, jaké jsou možnosti, ale ideálně už na firewallu :)
Chamurappi
Profil
Reaguji na Aesira:
ten na robots.txt koukat nebude
Ano, celou dobu předpokládám, že za výpadky nemohou hodní a poslušní roboti. Proto se teď ptám na radikální řešení.

Nevím, jaké jsou možnosti, ale ideálně už na firewallu :)
To je zase moc radikální, tak dlouhé prsty zřejmě nemáme.

Pro začátek by mohlo pomoct posílat hlavičku 403
Předpokládám, že to půjde udělat pomocí .htaccessu a že mi někdo řekne, co tam mám napsat :-)
Kajman_
Profil *
RewriteCond %{HTTP_USER_AGENT} RPT-HTTPClient [NC]
RewriteRule .* - [F,L]


upraveno - výjimka pro robots.txt
RewriteCond %{HTTP_USER_AGENT} RPT-HTTPClient [NC]
RewriteRule !^robots\.txt$ - [F,L]
Aesir
Profil
Ještě bych přidal do .htaccess (před Kajmanovu definici):
RewriteCond %{REQUEST_URI} !^/robots\.txt$

A do robots.txt:
User-agent: RPT-HTTPClient
Disallow: /

U hodných robotů/scrapperů, kteří na robots.txt koukají se stává, že pokud nenajdou robots.txt (jedno jestli je prázdný, nebo dostanou 40x hlavičku), tak to berou jako povolení pro procházení celého webu.
I to může pár requestů případně zachránit.
DoubleThink
Profil *
Možná místo rewritů:
BrowserMatchNoCase "RPT-HTTPClient" block    # tady možná bude potřeba mínus vyescapovat, nejsem si teď jistý
Deny from env=block
Chamurappi
Profil
Tak jak?
Za pár minut budeme mít přetížení, mohli bychom to rovnou zkusit.
Yuhů
Profil
Normálně bych to řešil nasazením mod_evasive na proxynu, ale to tady asi nepůjde (žádná proxy tam není).

Kouknul jsem taky do toho logu a vyšlo mi, že včerejší útok po 18. hodině přišel z IP adresy 64.191.47.213. Zkusmo jsem ji teď bloknul v administraci (třeba to povede k tomu, že neuvidí formuláře a nebude útočit).

// nejčastější ípéčka po 18. hodině, počet záznamů v logu
$ cat diskuse-2010-01-04.log | grep "04/Jan/2010:18:" | cut -d " " -f 1 | sort
| uniq -c | sort -n -r | head -6
6478 64.191.47.213
813 81.92.250.198
601 194.79.55.130
404 84.42.163.172
387 120.28.64.78
368 86.49.127.182

// RPT agenti po 18. hodině
$ cat diskuse-2010-01-04.log | grep "04/Jan/2010:18:" | grep RPT | cut -d " " -
f 1 | sort | uniq -c | sort -n -r | head -9
6478 64.191.47.213
387 120.28.64.78
321 66.29.195.20
293 120.28.64.85
163 124.158.18.144
145 62.190.148.25
139 208.91.245.90
116 93.62.4.207
116 59.41.141.171

// nejčastěji POSTující IPčka po 18. hodině
$ cat diskuse-2010-01-04.log | grep "04/Jan/2010:18:" | grep POST | cut -d " "
-f 1 | sort | uniq -c | sort -n -r | head -30
65 120.28.64.78
61 66.29.195.20
47 194.79.55.130
47 120.28.64.85
32 208.91.245.90
31 62.190.148.25
26 124.158.18.144
Yuhů
Profil
Tady máme kamarády z nejhoršího loňského dne, šestého prosince. Počet řádků v logu podle IP:

$ cat diskuse-2009-12-06_01.log | cut -d " " -f 1 | sort | uniq -c | sort -r -n
| head
36508 81.92.250.198
21655 64.191.47.213
7587 66.249.65.76
4196 213.192.56.133
2713 79.98.72.34
2630 88.100.64.20
2333 93.89.144.5
1680 77.75.76.115

a když se podívám, co je za user agenta ten první 81.92.250.198, tak mají všechny stejného User Agenta:
$ cat diskuse-2009-12-06_01.log | grep 81.92.250.198 | cut -d " " -f 12- | sort
| uniq -c | sort -r -n | head
36508 "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.6 (KHTML, like
Gecko) Chrome/4.0.261.0 Safari/532.6"

takže tím RPT si asi taky nepomůžeme. Ale tohle IPčko pro jistotu bloknu v adminu taky. Možná by to chtělo bloknout 81.92.250.198 i v htaccessu, ideálně nějak chytřeji než přes mod_rewrite.

No a dnešní podezřelá adresa 64.191.47.213 je zřejmě pořád tentýž útočník:
$ cat diskuse-2009-12-06_01.log | grep 64.191.47.213 | cut -d " " -f 12- | sort
| uniq -c | sort -r -n | head
21655 "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko/20071
008 Firefox/2.0.0.8 RPT-HTTPClient/0.3-3"
Jan Tvrdík
Profil
Yuhů:
Možná by to chtělo bloknout 81.92.250.198 i v htaccessu, ideálně nějak chytřeji než přes mod_rewrite.
IP adresy se v .htaccess blokují snáz. Ten mod_rewrite tam byl kvůli blokování user agenta, i když i tam by mělo být lepší řešení od DoubleThinka.

Takhle by to mohlo vypadat celé:
BrowserMatchNoCase "RPT-HTTPClient" block    # tady možná bude potřeba mínus vyescapovat, nejsem si teď jistý

Order allow,deny
Deny from env=block
Deny from 81.92.250.198
Deny from 64.191.47.213
Allow from all
Chamurappi
Profil
Nešlo by blokování podobných náletů nějak zautomatizovat? Na to už existují nějaké nástroje, ne?


Reaguji na Yuhůa:
Díky za rozbor. Z logu, který jsem viděl (jen výjezd POSTů), to vypadalo, že těch IP adres je spousta a že jediné vodítko je ten User-Agent.


Reaguji na Jana Tvrdíka:
Doposud vypadal .htaccess takto:
ErrorDocument 503 http://www.jakpsatweb.cz/pretizena-diskuse.html


# nastaveni vychozi stranky adresare
DirectoryIndex index.php

# zakaze zobrazeni obsahu adresare, pokud chybi vychozi soubor
Options -Indexes

# Cacheovani

ExpiresActive On
# vychozi expirace 3 minuty, kvuli vykonu
ExpiresDefault A180
# expiruje pocet sekund pote, kdy byl accessnut (A)
ExpiresByType application/x-javascript A2600000
ExpiresByType text/css A12000000
ExpiresByType image/gif A30000000
ExpiresByType image/jpeg A30000000
ExpiresByType image/png A30000000


RewriteEngine on
RewriteRule ^(sitemap.*\.xml(\.gz)?) cache/$1 [L]

Stačí to, co píšeš, plácnout na konec? A to mínus je třeba escapovat, nebo ne? Nebo to tam mám dát i s komentářem, že nevíme? :-)
Kajman_
Profil *
plácnout na konec?

Může být na konci. A myslím, že - se escapovat nemusí, když je to v uvozovkách jako text.

Yuhů
A můžeš ještě grepnout, zda se tito user agenti koukali na robots.txt?
Kajman_
Profil *
Tak po změně agenta na RPT se sem už nedostanu, tak se to asi povedlo :-)
Chamurappi
Profil
Reaguji na Kajmana:
Těší mě, že jsem to nerozbil. Myslím, že brzy uvidíme, jaký to mělo efekt.
Kajman_
Profil *
Jestli roboti koukaji na robots.txt, tak by bylo lepší tam zkusit nastavit i něco jako
SetEnvIf Request_URI robots\.txt !block


A co tam rovnou přidat i to balení javascriptu? To se může klidně i otestovat nejdřív v sandboxu. A vypadá to, že mod_deflate je zapnutý.
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/css text/javascript application/x-javascript
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Yuhů
Profil
Pro robotx.txt si nikdo z IP adres 81.92.250.198 a 64.191.47.213 nesáhnul. Takže blokáda je jistě správná.

Pár minut jsem teď ještě zkoumal třetí podezřele aktivní IPčko, ale nakonec se ukázalo, že to je Chamurappi.

Když tak koukám na ten .htacess, možná by stálo za to zrušit řádek
ExpiresDefault A180
čímž by ve většině klientů odpadla nutnost dávat refresh po přidání příspěvku. Dřív to byla ochrana výkonu proti častému znovunačítání (hlavně hlavní stránky), teď už je to možné zbytečné.

Když jsem asi před dvěma lety testoval na tomto serveru mod_deflate, přišel mi nefunkční. Ale třeba se to změnilo. Zapněme ho, jestli ještě není, prosím.
Kajman_
Profil *
U Google se v posledních dnech polámal index diskuse. Je tam jen pár tisíc stránek, většinou jen uživatelé a na vlákna to odkazuje jako na
diskuse.jakpsatweb.cz/?action=vthreadforum=31topic=104690
kde je vždy duplicitní obsah, protože tam chybí ampersandy. Nevím, kde bere takhle čerstvá vlákna s polámanou adresou. Tipoval bych sitemapy, ale tam žádnou chybu nevidím. Nebo tam někdo chybu vidíte? RSS vypadají taky v pořádku.

Přitom je zvláštní, že ve webmaster tools ty ampersandy v sitemapách jsou uvedeny občas v chybovém logu. Ony robotovi asi dávají ty výpadky zabrat, když je robots.txt při nich nedostupný s 503, tak pak tvrdí, že zakazuje i adresy, co nepolámaný nezakazuje.
Jan Tvrdík
Profil
Špatně zapsané ampersandy jsou např. v číslování stránek (via validátor).
Kajman_
Profil *
Tam jsou jen adresy s parametrem page, to nebude ten pravý zdroj chybných adres.

Jestli do robots.txt nepřidat
Disallow: /?action=vthreadforum
Chamurappi
Profil
Reaguji na Yuhůa:
Pár minut jsem teď ještě zkoumal třetí podezřele aktivní IPčko, ale nakonec se ukázalo, že to je Chamurappi.
Kdybych moc zatěžoval, můžeme mě zakázat :-)

Dřív to byla ochrana výkonu proti častému znovunačítání (hlavně hlavní stránky), teď už je to možná zbytečné.
Začínám se ztrácet v tom, co může a co nemůže za problémy s výkonem. Dost lidí si na to kešování stěžovalo a všem jsme doposud odpovídali, že je nutné. Asi tedy není, ale stejně bych teď raději počkal, až se stav ustabilizuje, než povolíme uzdu další potenciální zátěži.


Reaguji na Kajmana:
A co tam rovnou přidat i to balení javascriptu?
Co přesně dělají ty BrowserMatch?

Jestli do robots.txt nepřidat
Máme-li tuto evidentní chybu Googlu nějak ošetřovat, udělejme to automatickým přesměrováním těch mršin na správné adresy.


Reaguji na Jana Tvrdíka:
Nemůže mít vliv. V HTML (na rozdíl od XML) neexistuje syntakticky špatný zápis entity a postup při zpracování neexistující entity je definovaný.
Kajman_
Profil *
Chamurappi:
Co přesně dělají ty BrowserMatch?
To jsou tuším nějaké doporučené ošetření na staré netscapy, které tvrdily v hlavičkách, že deflate umí, ale neuměly.
Kajman_
Profil *
Chamurappi:
Máme-li tuto evidentní chybu Googlu nějak ošetřovat, udělejme to automatickým přesměrováním těch mršin na správné adresy.

Netuším, kde ty adresy bere, přes rewrite by to mohlo být takto...
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^action=vthreadforum=([0-9]*)topic=([0-9]*)(page=..?)?$
RewriteRule ^(index\.php)?$ ?action=vthread&forum=%1&topic=%2&%3 [R=301,L]


Ale to zakázání přes robots.txt bude pro server určitě méně náročné. Google takových rozbitých adres ukazuje jen asi 80 (těžko říct, jestli nejsou další schované jen z důvodu duplicity), a třeba tam bývaly už dřív, jen je divné, že tam jsou i úplně čerstvé. A index.php by mohl u nesmyslných action vracet 404.

A do robots.txt bych dal i
Disallow: /rss2.php?

každý uživatel i vlákno mají své rss, což roboti nemusí prolézat, stačí stačí jim verze bez parametru. Ať prolézají raději skutečná vlákna.
Chamurappi
Profil
Řekl bych, že se situace už stabilizovala, i když pár přetížení denně se pořád ukazuje.


Reaguji na Yuhůa:
Když tak koukám na ten .htacess, možná by stálo za to zrušit řádek
ExpiresDefault A180
Když ho zruším, tak se místo 180 sekund používá 300 sekund.
Poradí někdo, co tam mám přesně napsat, aby se stránky nekešovaly? (A abych to nerozbil?)


Reaguji na Kajmana:
Netuším, kde ty adresy bere
Index Googlu už se pravděpodobně uzdravil. Už toho 8. ledna přišlo na vadnou adresu všehovšudy jen pět požadavků.

do robots.txt bych dal i Disallow: /rss2.php?
Proč? Google RSS sleduje.

Ať prolézají raději skutečná vlákna.
Není předpoklad, že jakýmkoliv zákazem vstupu posílíme důležitost toho, co zůstalo povolené, trochu naivní?
Chamurappi
Profil
Teď jsem si všiml, že Google indexuje i stránky pod doménou www.diskuse.jakpsatweb.cz. Bylo by asi dobré odtamtud přesměrovávat.
Kajman_
Profil *
Chamurappi:
www.diskuse.jakpsatweb.cz. Bylo by asi dobré odtamtud přesměrovávat.

Přes mod rewrite by to mohlo být takto nějak (raději vyzkoušej v sandboxu)...
RewriteCond %{HTTP_HOST} !^diskuse\.jakpsatweb\.cz$ [NC]
RewriteRule ^(.*)$ http://diskuse.jakpsatweb.cz/$1 [R=301,L,NE]


„do robots.txt bych dal i Disallow: /rss2.php?“
Proč? Google RSS sleduje.

Stačí, když bude sledovat hlavní rss celé diskuse, nemusí sledovat přes stotisíc variant s různými parametry za otazníkem.
Chamurappi
Profil
Reaguji na Kajmana:
Přes mod rewrite by to mohlo být takto nějak
Děkuji, zdá se, že to funguje.
Nevěděl bys ještě, jak zrušit to tříminutové kešování?

Stačí, když bude sledovat hlavní rss celé diskuse
Pokud na něj nekouká každých deset minut, tak mu může ledacos utéct.

nemusí sledovat přes stotisíc variant
To asi nemusí, ale nechal bych to na jeho inteligenci. Současný stav je přijatelný.
Davex
Profil
Dají se nastavovat hlavičky Cache-Control: max-age=0 a Expires na čas přístupu pomocí:
ExpiresDefault A0
Chamurappi
Profil
Reaguji na Davexe:
Děkuji. Čekal jsem větší vědu :-)
Nastavil jsem tedy nulu.
Kajman_
Profil *
Mrkněte na sitemap.xml ... U ledu má prioritu sníženou, vlákna, označená jako důležitá, zvýšenou.

Co trošku snížit prioritu u Názoru na stránku?
« 1 2 3 4 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0