lip 23

Jak może wiecie na jednym moim serwerze mam kilka rzeczy, wśród nich siedzi Apache 2.

No i wszystko było fajnie… aż Apache nie przestał odpowiadać.
Oczywiście od razu znalazłem przyczynę – bo to nie nowość – atak DDoS, konkretnie zajmowanie socketów (wisiały połączenia). Wszystko skończyłoby się natychmiast -> ale wtedy bym o tym nie pisał. Wiec scenariusz był inny.
Dodałem oczywiście adresy IP do hosts.deny – bez skutku. Przeładowałem apacha (może musi sobie odświeżyć ?), ataki ustały. Ucieszyłem się, ale nie na długo. Po chwili nowe adresy IP zaczęły atakować. (Były to adresy z Taiwanu i Korei). Wkurzyłem się z lekka i… dodałem całą maskę 115.0.0.0/8. Myślę sobie – Korea nie będzie mi już przeszkadzać, Taiwan także.

No cóż, niestety nie było tak pięknie – Apache 2 nie obsługuje hosts.allow ani hosts.deny (nie ma libwrap).
Sprawdzić to łatwo:

ldd /usr/sbin/apache2 | grep libwrap
ldd /usr/sbin/sshd | grep libwrap

Pierwsza linijka nic nie wyświetli – Apache 2 nie ma biblioteki libwrap, druga wyświetli – demon ssh obsługuje.

Finał – trzeba zablokować to inaczej. Pogrzebałem troszkę w configu apache. Najlepiej w apachu dodać (ja to zrobiłem w /etc/apache2/httpd.conf):

<Files * >
Order Allow,Deny
allow from all
Deny from 115.0.0.0/8
</Files>

Efekt – pomogło :)
Jak ręką odjął – Apache odpowiada normalnie. Tak więc nie zawsze należy polegać na tcpwrapperach.

Dodam że iptables także zawodzi, a do limitowania ilości połączeń TCP żądał przekompilowania jądra w co bawić się nie chciałem :P

Uzupełnienie:
maski IP mogą wyglądać tak – w zależności na którym miejscu zostawiamy zero:
111.0.0.0/8
111.111.0.0/16
111.111.111.0/32
(Jedynki przykładowe, chodzi o liczbę po slashu)

VN:F [1.8.2_1042]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.2_1042]
Rating: 0 (from 0 votes)

Napisane przez Don Daniello \\ tagi: , , , ,