Serwer pod atakiem DDOS - jak znaleźć adresy IP?

20

Mój serwer jest pod atakami DDOS i chcę zablokować IP, który to robi, jakich dzienników powinienem szukać w celu ustalenia adresu IP atakującego?

Webnet
źródło
2
W jaki sposób ustaliłeś, że serwer jest atakowany? Wydaje mi się, że musiałbyś spojrzeć na pewnego rodzaju tabelę sesji TCP (netstat w systemie Windows), aby dokonać tego ustalenia, a dzięki temu zobaczyłbyś adresy IP hostów łączących się z twoim serwerem, co spowodowałoby twoje pytanie sporny.
joeqwerty

Odpowiedzi:

43
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more

Spójrz na najlepsze adresy IP. Jeśli coś wyróżnia się spośród innych, to te zapory ogniowe.

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

Spowoduje to sprawdzenie aktualnie aktywnych połączeń, aby sprawdzić, czy są jakieś adresy IP łączące się z portem 80. Może być konieczna zmiana cut -c 45-, ponieważ adres IP może nie zaczynać się w kolumnie 45. Jeśli ktoś robił zalew UDP, aby twój serwer WWW, to też by to podniosło.

Przy małej szansie, że żaden z tych adresów IP nie będzie nadmiernie wykraczał poza normę, musisz założyć, że masz atakującego cię botnetu i musisz poszukać określonych wzorców w logach, aby zobaczyć, co robią. Typowy atak na witryny Wordpress to:

GET /index.php? HTTP/1.0

Jeśli przejrzysz dzienniki dostępu do swojej witryny, możesz zrobić coś takiego:

cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more

które pokażą Ci najczęściej trafiane adresy URL. Może się okazać, że uderzają w określony skrypt, a nie ładują całą witrynę.

cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more

pozwoli ci zobaczyć wspólnych UserAgents. Możliwe, że używają jednego UserAgent w swoim ataku.

Sztuką jest znaleźć coś wspólnego z ruchem ataku, który nie istnieje w normalnym ruchu, a następnie filtrować to przez iptables, mod_rewrite lub upstream z twoim hostem. Jeśli trafia Cię Slowloris, Apache 2.2.15 ma teraz moduł reqtimeout, który pozwala skonfigurować niektóre ustawienia w celu lepszej ochrony przed Slowloris.

użytkownik6738237482
źródło
Dzięki bardzo, zdecydowanie zajrzę w ten weekend.
Webnet,
doskonały. bardzo przydatne i po prostu świetne .... tak trzymaj i niech cię Bóg błogosławi. Allinonescript.com ( allinonescript.com ) Deweloperzy z całego świata Wiedza zdobywają wiedzę.
Vadivel S,
O ile poprawnie skonfigurujesz dziennik_dostępu: tail -n 10000 / var / log / httpd / access_log | cut -f 1 -d '' | sort | uniq -c | sort -nr | more To powinno działać. Pracował dla mnie,
śmieciarz
7

Do Twojej wiadomości - powinieneś spróbować współpracować z usługodawcą internetowym, aby sprawdzić, czy może zablokować go przed Tobą.

mfinni
źródło
4

Kilka dobrych wskazówek tutaj. Dodałbym również:

netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''

Umieść to pod aliasem (na przykład nn). To da ci „graficzną” perspektywę ips z bardziej ustanowionymi połączeniami.

Mam nadzieję że to pomoże.

Dla tych, którzy nie mogli tego uruchomić, poprawiłem składnię, więc działa ona dla mnie pod Ubuntu:

netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
Marco Ramos
źródło
3

Moje ulubione pliki dziennika do sprawdzania ataków DOS to / var / log / secure (pod Redhat / Centos / Fedora ....) i /var/log/auth.log (pod Ubuntu, debian ...). Zobaczysz nieudane próby logowania ze źródłowego adresu IP atakującego, najczęściej ataki oparte na słowniku.

Daniel t.
źródło
1

w celu ochrony mojego serwera używam prostego skryptu Fail2Ban

skanuje pliki dziennika, takie jak / var / log / pwdfail lub / var / log / apache / error_log i blokuje IP, co powoduje zbyt wiele błędów hasła. Aktualizuje reguły zapory, aby odrzucić adres IP.

http://www.fail2ban.org/wiki/index.php/Main_Page

Mirandapablog
źródło
0

Która dystrybucja?

Myślę, że dziennik znajduje się w katalogu /var/log/apache2/access.log w systemie Ubuntu ... Prawdopodobnie również w Debianie.

Uruchom updatedb as sudo, a następnie zlokalizuj access.log z wiersza poleceń.

EDYCJA: Uważam, że stanie się tak tylko wtedy, gdy uderzą cię albo przez strony, albo bezpośrednio przez port 80. Jeśli uderzają w inne porty, nie zobaczysz tam potrzebnych informacji, będziesz musiał sprawdzić, który proces jest działający na tym porcie i spójrz na dzienniki połączeń dla tego procesu.


źródło
0

możesz użyć tcpdump, aby zobaczyć, który to adres $ tcpdump -vv port X, jeśli podejrzewasz konkretny port

Razique
źródło
0

Jeśli korzystasz z rozproszonego DOS, na pewno jest więcej niż jeden adres IP do zablokowania i adresy IP mogą zostać sfałszowane, lepiej zapytaj swojego dostawcę usług internetowych, jak powiedział mfinni . Może to być coś więcej niż DOS przeciwko serwerowi, ale wabik, aby ukryć prawdziwy atak przed wykryciem, więc sprawdź, czy wszystkie ujawnione usługi są uruchamiane przez aktualne oprogramowanie. Możesz być także zainteresowany mod_dosevasive dla apache.

Maxwell
źródło
2
Adresy IP są bardzo trudne do sfałszowania w przypadku ataków sieciowych. Ponieważ prawidłowe połączenie internetowe wymaga uzgadniania synchronizacji / synchronizacji, musisz mieć szczęście, że podrobiony adres IP ma prawidłowy numer sekwencyjny dla ładunku z fałszywej witryny atakującej. Ruch UDP / ICMP jest bezpołączeniowy i umożliwia fałszowanie pakietów, ale większość hostów blokuje te pakiety.
user6738237482
0

Najpierw musisz określić typ DOS. Niektóre ataki są bardzo niewidzialne, ale skuteczne (slowlori), niektóre z nich są tak ciężkie, że mogą obniżyć ISP (powódź ICMP z większej przepustowości niż źródło ISP).

Po określeniu rodzaju DOS, zadzwoń do swojego usługodawcy internetowego i zapytaj go, czy mogą odfiltrować ruch.

Widziałem powodzie ICMP tak duże, że musieliśmy poprosić dostawcę usług internetowych o odfiltrowanie docelowego adresu IP za pośrednictwem społeczności BGP.

Mircea Vutcovici
źródło