The Diary
Дневникът на Георги
<- Понеделник, 1 Януари 2007 | Начална страница | Сряда, 3 Януари 2007 ->
Вторник, 2 Януари 2007
Много мразя мърляшки работи, а в мърляшка работа слагам пълните с
грешки логовете на уебсървърите ми. Една от работите ми е да преглеждам
логовете. Гадно е, че колкото и да се стараеш постигането на чисти error
logs е почти мисия невъзможна, най-често заради идиотите от Майкрософт и
идиотите потребляващите бозите им. Колко от вас са виждали заявки за
следните файлове?
/_vti_bin/owssvr.dll
/MSOffice/cltreq.asp
Предполагам, всеки който има сайт ги е виждал.
Тези заявки идват от лузери, които имат инсталиран Microsoft Office и Internet Explorer, в който са включили Discuss toolbar (каквото и да е това...). Защо точно са го включили този toolbar един господ знае, но включването му предизвиква тези заявки към всеки сайт, който бива отварян. Абсолютна загуба на трафик, тормоз на сървърите, забавяне браузването и като цяло досада.
Ако все пак да създадете тези файлове, за да не ви се пълнят логовете
с глупости, ще останете неприятно изненадани, че това не е всичко. Експлодерта
ще реши, че имате инсталирани Microsoft Office Server Extensions (опазил ви господ)
и освен двата споменати по-горе файла ще реши че му се ще още и
/_vti_bin/_vti_aut/author.dll
/_vti_bin/shtml.exe/vti_rpc
Когато ми писне да гледам горните заявки към несъществуващи файлове ден след ден,
използвам следното, за да ги създам и повече да ми бъркат в очите (вярно, че и
в директорията да ги гледам ме нервят, но по-малко :)
cd SITE_ROOT_DIR
mkdir -p MSOffice _vti_bin/shtml.exe/vti_rpc _vti_bin/_vti_aut
touch MSOffice/cltreq.asp _vti_bin/_vti_aut/author.dll
Има естествено и решение с mod_rewrite. Ползвам го, за да описвам всякакви
"прилепчиви" връзки, които (отдавна не са|никога не са били) валидни. Направете един празен
файл (touch wwwroot/empty.html) и пренасочете заявките към тези файлове с mod_rewrite магия в .htaccess
(ако имате FollowSymlinks права за директорията) или в конфигурацията на
виртуалният хост:
RewriteEngine on
RewriteRule ^_vti_bin /home/gf/wwwroot/empty.html [L]
RewriteRule ^MSOffice /home/gf/wwwroot/empty.html [L]
RewriteRule ^notexisting/dir/file /home/gf/wwwroot/empty.html [L]
Коментари
По-лесно е.
RewriteEngine On
RewriteLog logs/rewrite.log
RewriteLogLevel 3
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /servernotfound.php?%{QUERY_STRING} [L]
Това е много приятен хак, който прихваща невалидни рекуести и вместо да върне 404 ги препраща (302) към скрипт (който пази POST/GET на всичкото отгоре: стандартен 404 има достъп само до бисквити/сесийни vars) и после можеш да правиш какво ли не. Системата за търсене php.net/whatyouwant прави горе-долу това. 0days си изпяват цялата песен като страничен резултат.
Хм. Първо mod_rewrite товари сървера допълнително и ми изглежда малко overkill да се ползва само за това. Освен това някак си не ми става ясно как пазят от 0days точно тези правила, който си дал - проверка дали съществува файл или директория?
Всеки преценява сам за себе си - при мен не се наблюдава предположеното "товарене", нито rewrite се ползва "само за това". Никъде не споменавам, че даденият пример предпазва от нещо, а че разни malware програми решават, че има такъв файл/директория и съответно се опитват да ги атакуват. И всъщност целта при мен не е толкова чист лог файл, а wildcard подобно на някой DNS решения. Ако си девелопър и имаш вземане даване с голям на брой affiliates можеш да видиш бързо ползите. Видя ми се нелогично да се описват "прилепчиви" връзки ред по ред, затова написах този коментар. Още един път - всеки сам решава какво и как да го прави.
Съгласен напълно. За *.domain.com и аз го ползвам на някои машини след обявяването на * в DNS-а. На мен даже не ми е интересно да логвам подобни заявки - само ми хабят дисковото пространство.
Според опита ми разните (web) черволяци не проверяват първо какво има, a директно изстрелват кода на експлойта в повечето случаи. Честно казано това също ми е безинтересно да го логвам, доколкото не е целенасочена атака, а някакви wild scans. Погледни mod_security btw, там е интересно в тази насока.
/home/gf/wwwroot в моя пример може да се замени с %{DOCUMENT_ROOT}
abe hora, towa s modrewrite e da si syzdadesh problem ot nishtoto, tozi regexp koito se proveriawa wyw wseki fail koito se zaiaviava, ne stranica a fail, e goliama dyrvotia, niakade okolo hiliada pyti e po bavno ot towa webservera da izpishe greshkata v errlog, da ne govorim che towa se sreshta pri edin ot 100 usera........ a regexpa kakto kazah se obrabotwa za wsiaka zaiavka
i pone ot malko gramotnost slozete go v virtual host direktiwata a ne v htaccess, shtoto taka navsichkoto otgore ne samo se izpylniawa ami i triabwa da se kompilira za wseki zaiaven fail.......
Disclaimer: Except where otherwise noted all opinions expressed here are personal
opinions of the author and do not reflect official opinions of my employer or
any other person, company or organization associated with the author.
Copyright: Except where otherwise noted the content of this site is licensed under a
Creative Commons Attribution License. Текстът на договора за ползване на български
Copyright (cc) 2003-2011 Georgi Chorbadzhiyski. Some rights reserved.
Comments, texts and pictures not signed by me are property of their respective owners.
Страницата е генерирана от Glog v3.99-test
Мхехе. Явно днес ни е ден. Преди половин час изнервен от абсолютно същото, след като се наложи да гледам error_log тръгнах да решавам и аз проблема ...
Написа Н.Пепелишев (www) на 04-Jan-2007 12:29