Търся код за htaccess за ограничаване на реферал

TheCrazyBastard

Well-Known Member
Здравейте!

Ще Ви помоля да ми дадете код, който да добавя в htaccess файла, за да огранича една bruteforce атака по реферал.

Имам посещения от...

IP: 5.39.86.162
Hostname-Resolved: ks3273571.kimsufi.com

IP: 5.135.185.89
Hostname-Resolved: ks3290602.kimsufi.com

IP: 91.121.9.21
Hostname-Resolved: ks22943.kimsufi.com

и т.н. до 8 на брой.

Ясно е, че поддомейна може да е всякакъв, както и IP-то, т.е. ползват този сайт за хостинг услуги kimsufi.com , на който явно са инсталирали неправомерни неща или им е нещо като vpn. Забранил съм IP-то от този главен сайт, но дали това е достатъчно. Има ли код, чрез който като реферал от него или който и да било поддомейн от него да ги ограничава, 403 или някаква друга грешка да им изписва.

Допълнение: [Edit]
Сега разгледах и 8 хита, колкото и на брой получих по емейл, та възможно и да трябва да огранича това:

Посетител hits: 8 ip: 184.72.93.198 (<-- може би истинското)
Последен URL /
User Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6
(FlipboardProxy/0.0.5; +http://flipboard.com/browserproxy)
Хост: (amazonaws.com) ec2-184-72-93-198.compute-1.amazonaws.com

Не знам дали това е свързано с търсачката на amazon или е нещо фалшименто, щом използва прокси.
 
Последно редактирано:
От: Търся код за htaccess за ограничаване на реферал

Що не забраниш целия домейн и да се оправят. Надали ще изгубиш много посетители точно от там :)
 
От: Търся код за htaccess за ограничаване на реферал

Това намерих, пробвай го.

PHP:
# block visitors referred from indicated domains
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR]
 RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR]
 RewriteRule .* - [F]
  
</ifModule>
 
От: Търся код за htaccess за ограничаване на реферал

Аз намерих това:

# Block reffered traffic
RewriteEngine on
RewriteCond %{HTTP_REFERER} google\.com [NC]
RewriteRule .* – [F]

Кое да ползвам, твоето или моето? Става въпрос за WP сайт.
 
От: Търся код за htaccess за ограничаване на реферал

Едни и същи са... почти. Твоето е за един домейн, моето е за повече.
 
От: Търся код за htaccess за ограничаване на реферал

И двата кода не стават. При твоя ми дава Apache страницата и сайта го няма, при този другия, който намерих дава Internal Server Error.

Edit: Имах един плъгин wp-sentinel, който е много добър и ограничава подобни и други атаки, но след като ме ограничи и мен веднъж, заради фейсбук документацията, която исках да интегрирам, го махнах, за да не ми загуби трафика с аутобан за 24 часа.
 
От: Търся код за htaccess за ограничаване на реферал

Май и по домейн.ком става. Намерих това, ама всъщност ти трябва обратното.

PHP:
# block domain.com but allow sub.domain.com
order deny,allow
deny from domain.com
allow from sub.domain.com
 
От: Търся код за htaccess за ограничаване на реферал

VPS или shared hosting?
 
От: Търся код за htaccess за ограничаване на реферал

Добавих това и сървъра си работи, както и сайта. Надявам се да ограничава това url, за което го слагам.

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://kimsufi\.com [OR]
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]

А ако трябва да се добавя още, всички трябва да завършват с [OR] като на последия ред (сайт за ограничаване) това [OR] не се слага.
За amazonaws.com няма да го слагам, че може да има нещо общо с twitter или alexa rank, или какво ли още полезно американско.

ВАЖЕН ЕДИТ: Всъщност не става този код! Когато съм логнат в самото WP и дам линк от него, ме препраща към собственото ми IP и не работи. Само външно сайтът работи и може да се гледа, но не и да се ползват опциите на администратора.

VPS или shared hosting?
shared
 
От: Търся код за htaccess за ограничаване на реферал

На принципа Проба-Грешка стигнах до следния видимо работещ код при мен:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} kimsufi.com\.com [NC]
RewriteRule .* - [F]


Благодаря на всички включили се в темата :)
 
От: Търся код за htaccess за ограничаване на реферал

На принципа Проба-Грешка стигнах до следния видимо работещ код при мен:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} kimsufi.com\.com [NC]
RewriteRule .* - [F]


Благодаря на всички включили се в темата :)

Не виждам да е с нещо по-различен от примера, който според теб връща грешка 500 ? Да не би при редакцията да си объркал нещо първия път. [OR] се използва само ако имаш няколко условия (RewriteCond) за сравнение.
 
От: Търся код за htaccess за ограничаване на реферал

О, има разлика.. Я забележи, че съм сложил сега RewriteCond %{HTTP_REFERER} kimsufi.com\.com [NC] ,т.е. се едно нищо не съм направил. Първото .com май трябва да го няма.
Макар, че сега като проверих какво съм поставил отново:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} kimsufi\.com [NC]
RewriteRule .* - [F]

Някакви тази разлика като че ли се е оправила сама.
А може и да има някакъв смисъл това # Options +FollowSymlinks , но пък с това # отпред все едно не се изпълнява май.
 
От: Търся код за htaccess за ограничаване на реферал

Този

Код:
# Block reffered traffic
RewriteEngine on
RewriteCond %{HTTP_REFERER} google\.com [NC]
RewriteRule .* – [F]

и този
Код:
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} kimsufi\.com [NC]
RewriteRule .* - [F]

не се различават освен в името не реферала, а "Options +FollowSymlinks" може да е забранено за ползване и затова да си получил грешка 500. Сложи го в началото на първия ред на .htaccess и го разкоментирай (махни # отпред). Ако пак ти върне Error 500 ще знаеш от какво е.
 
От: Търся код за htaccess за ограничаване на реферал

И Options +FollowSymlinks да го има с # отпред, или без него, или въобще да го няма този ред, сега няма проблем. Даже сложих горния код сега. Не зная, може би имам някаква дебъг функция на сървъра. Важното е, че с някакъв допълнителен код за ограничаване по реферал, сайтът все още работи нормално и нямам репорти в близките часове за нови bruteforce атаки.
Благодаря! :)
 
От: Търся код за htaccess за ограничаване на реферал

Въпрос на време е да се усетят и да сменят реферала. Използва "curl" и лесно се сменя.
 
От: Търся код за htaccess за ограничаване на реферал

Много е възможно, защото точно преди тези проби блокирах следното IP: 91.229.78.157 с Hostname-Resolved: 157-78-229-91.deltahost.com.ua , тъй като се опита веднъж, след това се почнаха останалите опити. Трябва да се хване реалното... Но ми е малко трудно.
 
От: Търся код за htaccess за ограничаване на реферал

И като сменят IP-то или си вземат цял диапазон от 100 IP-та за да ги ползват като проксита ръчно ли ще блокираш всички?!? Имаш 2 варианта. Или позволяваш POST заявки към wp-login.php само от товето IP, или защитаваш wp-login.php с "AuthType Basic" и го оставяш на произвола на съдбата.
 
От: Търся код за htaccess за ограничаване на реферал

Засега оставям това нещо:

RewriteEngine on
RewriteCond %{HTTP_REFERER} deltahost\.com.ua [NC,OR]
RewriteCond %{HTTP_REFERER} kimsufi\.com [NC]
RewriteRule .* – [F]

Знам за тези ограничения и вършат перфектна работа, но за сайт, в който ще се логвам само аз и където регистрациите са забранени. Но където имам потребители, се получава някакъв бъг, затова не ги ползвам. Давам пример:
Добавям <Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from x.x.x.x
</Files> Всичко е ОК. Хората успяват да се впишат, но когато искат да дата "Изход" от акаунта си - Forbidden You don't have permission to access /wp-login.php on this server. Това се получава, заради пренасочване http://сайта/wp-login.php?action=logout&redirect_to=http://сайта/&_wpnonce=някъв хеш , въпреки че веднага след това се пренасочва ауто към началната страница.
Това ако има как да го избегна, ще го оставя.
 
От: Търся код за htaccess за ограничаване на реферал

И да допълня.. Горното ограничение явно не върши работа. Отново емейл със следното:
Wordpress Login Attempt By admin
Date: 01/12/13 20:54:05
IP: 5.135.182.147
Hostname-Resolved: ks3289006.kimsufi.com
Browser: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10
Referral: http://сайта/wp-login.php

Явно трябва в кода да е описано цялостно ограничение, включващо и всичко с точка пред него като поддомейни. Знам ли..

Всъщност рефералът тук е самия wp-login.php от сайта, затова и не работи.. Но ако добавя и тоя реферал, все едно и на себе си да направя някой бъг.. Що па да не пробвам..

EDIT: Добавих още един ред RewriteCond %{HTTP_REFERER} сайта\.com/wp-login.php [NC,OR]
Във wp-admin или login.php дори и да се въведат правилните данни, връща грешка. Това е добре, тъй като за тази цел има работещ sidebar login, който въпреки този ред работи нормално и човек може да се вписва и отписва без грешки. А за админ менюто също няма проблем, ако след влизане от страничната лента се даде на менюто. Поне засега може би това е някаква решение.
 
Последно редактирано:

Горе