2011-09-19 22 views
6

Chciałbym ograniczyć przepustowość żądań do mojego serwera internetowego, aby uniemożliwić skrobanie przez internet i ataki typu "odmowa usługi" na moją witrynę. Jestem skłonny być względnie niedbałym, kluczową rzeczą jest to, że nikt nie żąda tak dużo, aby spowolnić działania.Dławienie żądań według adresu IP na Apache?

Zastanawiam się nad ustawieniem dławienia według adresu IP, aby żądania z danego adresu IP były spowolnione, gdyby zbyt wiele żądań zostało złożonych w krótkim czasie.

Niektóre pytania I have--

  • Czy to jest właściwa droga o kontaktach z skrobaki internetowych i ataków DoS na poziomie serwera WWW?
  • Jaki jest dobry limit, aby nie przeszkadzać zwykłym użytkownikom, którzy mogą pracować w dzielonych sieciach IP?
  • Jak konkretnie należy skonfigurować dławienie? Używam Apache/2.2
+0

Czy już myślisz o użyciu mod_cache? Jeśli twoja zawartość nie jest zbyt dynamiczna, mod_cache może bardzo pomóc w przypadku zbyt wielu żądań. Począwszy od DOS, na poziomie serwera web mod_throttle może pomóc. Ale uważaj, jeśli twoje strony mają wiele obiektów (jeden HTML, ale 80 obrazów i trochę JS + CSS), możesz być konserwatywny. Od mod_cache mogę ci pomóc, ale nie jestem zbyt pewny w mod_throttle; głównie dlatego, że dokumentacja jest skąpa. –

+0

Moja strona internetowa pobiera dane z API na żywo i martwię się, że nie tylko zostaną skopiowane, ale także zrobię to, jeśli ktoś spiders moją stronę. Więc moja strona jest dość dynamiczna. – babonk

+0

@babonk kto jest twoim gospodarzem? – TMB

Odpowiedz

3

"Czy to właściwa droga ... na poziomie serwera WWW?" To prawdopodobnie najlepsza opcja. Dobrze jest mieć różne progi w różnych częściach witryny: możesz być bardziej skłonny do ograniczania ruchu niż inne. Ale najlepiej byłoby, gdyby tego rodzaju ustawienia były zarządzane na poziomie sieci.

"Jaki jest dobry limit ...?" To całkowicie zależy od twojego ruchu. Ile możesz się spodziewać, skąd pochodzą Twoi prawdziwi użytkownicy, itp.

Jak to zrobić? Możliwe jest napisanie reguł do obsługi tego rodzaju rzeczy w ModSecurity, która również broni przed innymi rzeczami. Podobnie jak w przypadku mod_evasive, nie chroni to w pełni przed atakującymi, dysponującymi wieloma zasobami, ale zmusiłoby ich to do zwiększenia ich poziomu.

Nie sądzę, że jest coś "wbudowanego" w serwer httpd Apache, który to ułatwi. Oczekuje się, że problemy z nadużywającym adresem IP (to jest z problemami z ruchem sieciowym) są zarządzane na poziomie sieci.

EDIT:

Ponieważ skomentować gdzie indziej, że używasz Rackspace za hosting, może chcesz sprawdzić their load balancer API.

+0

Naprawdę, w Apache nie ma * nic * dla tego typu sytuacji? – babonk

+0

Dlaczego to powinno być takie zaskakujące? httpd jest zbudowany, aby obsługiwać HTTP szybko w większości typowych scenariuszy i być platformą do tworzenia bardziej zaawansowanych funkcji ... takich jak dławienie na klienta. Jak już wspomniałem, jest to zwykle wykonywane na innej warstwie (stos IP na pudełku lub na bramie sieciowej). Mówisz, że jesteś w Rackspace ... Zmienię moją odpowiedź, by podać powiązany link. –

+0

Dzięki za edukację mnie na ten temat (zwłaszcza link do rackspace). Odpowiedź/nagroda przyznana! – babonk

0

Aby uniknąć ataków dos/web scraping można zbadać mod_evasive, który zapewnia różne konfiguracje do blokowania żądań. http://www.zdziarski.com/blog/?page_id=442

Może to być użyteczne dla podstawowej ochrony, jednak nie będzie wystarczające dla określonego i doświadczonego intruza, który może atakować z sieci wewnętrznej lub używać szeregu serwerów proxy, aby ukryć swój adres IP.

+0

Wymaga to specjalnej instalacji i jestem na współdzielonym hostingu. Co mogę użyć, które jest wbudowane w Apache? – babonk