Server unter DDOS-Angriff - Wie finde ich IPs heraus?

20

Mein Server befindet sich unter DDOS-Angriffen, und ich möchte die IP-Adresse blockieren, die dies tut. Nach welchen Protokollen sollte ich suchen, um die IP-Adresse des Angreifers zu ermitteln?

Webnet
quelle
2
Wie haben Sie festgestellt, dass der Server angegriffen wird? Es scheint mir, dass Sie sich eine Art TCP-Sitzungstabelle (netstat unter Windows) ansehen müssen, um diese Feststellung zu treffen, und dabei die IP-Adressen der Hosts sehen müssen, die eine Verbindung zu Ihrem Server herstellen, was Ihre Frage aufwirft streitig.
Joeqwerty

Antworten:

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

Schauen Sie sich die Top-IP-Adressen an. Wenn sich jemand von den anderen abhebt, sind dies diejenigen, die eine Firewall benötigen.

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

Hierbei werden die derzeit aktiven Verbindungen überprüft, um festzustellen, ob IP-Adressen mit Port 80 verbunden sind. Möglicherweise müssen Sie den Wert -c 45- ändern, da die IP-Adresse möglicherweise nicht in Spalte 45 beginnt Ihr Webserver, dies würde es auch abholen.

Wenn keine dieser IPs übermäßig ungewöhnliche IPs aufweist, müssen Sie davon ausgehen, dass Sie von einem Botnetz angegriffen werden, und in den Protokollen nach bestimmten Mustern suchen, um zu sehen, was diese tun. Ein häufiger Angriff auf WordPress-Sites ist:

GET /index.php? HTTP/1.0

Wenn Sie die Zugriffsprotokolle für Ihre Website durchsuchen, können Sie möglicherweise Folgendes tun:

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

Hier werden die am häufigsten aufgerufenen URLs angezeigt. Möglicherweise wird ein bestimmtes Skript aufgerufen, anstatt die gesamte Site zu laden.

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

würden Sie gemeinsame UserAgents sehen können. Es ist möglich, dass sie bei ihrem Angriff einen einzelnen UserAgent verwenden.

Der Trick besteht darin, Gemeinsamkeiten mit dem Angriffsverkehr zu finden, der in Ihrem normalen Verkehr nicht vorhanden ist, und diesen dann über iptables, mod_rewrite oder upstream mit Ihrem Webhost zu filtern. Wenn Sie von Slowloris betroffen sind, verfügt Apache 2.2.15 jetzt über das Modul reqtimeout, mit dem Sie einige Einstellungen konfigurieren können, um sich besser vor Slowloris zu schützen.

user6738237482
quelle
Vielen Dank, ich werde mich dieses Wochenende definitiv darum kümmern.
Webnet
Ausgezeichnet. Sehr nützlich und einfach großartig. Mach weiter so und Gott segne dich. Allinonescript.com ( allinonescript.com ) Entwickler auf der ganzen Welt Wissen erwerben Wissen.
Vadivel S
Solange Sie Ihr Zugriffsprotokoll korrekt eingerichtet haben: tail -n 10000 / var / log / httpd / Zugriffsprotokoll | cut -f 1 -d '' | sort | uniq -c | sort -nr | more Dies sollte funktionieren. Arbeitete für mich,
Dustbuster
7

Zu Ihrer Information: Sie sollten versuchen, mit Ihrem Internetdienstanbieter zusammenzuarbeiten, um zu prüfen, ob er es vor Ihnen blockieren kann.

mfinni
quelle
4

Einige gute Tipps hier. Ich würde auch folgendes hinzufügen:

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 ""}'\''

Setzen Sie dies unter einen Alias ​​(z. B. nn). Dies gibt Ihnen eine "grafische" Perspektive der IPS mit besser etablierten Verbindungen.

Hoffe das hilft.

Für diejenigen, die dies nicht zum Laufen bringen konnten, habe ich die Syntax so korrigiert, dass sie für mich unter Ubuntu läuft:

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
quelle
3

Meine bevorzugten Protokolldateien für DOS-Angriffe sind / var / log / secure (unter Redhat / Centos / Fedora ....) und /var/log/auth.log (unter Ubuntu, Debian ...). Es werden fehlgeschlagene Anmeldeversuche von der Quell-IP des Angreifers angezeigt, meistens wörterbuchbasierte Angriffe.

Daniel t.
quelle
1

Um meinen Server zu schützen, benutze ich Fail2Ban, ein einfaches Skript

Überprüft Protokolldateien wie / var / log / pwdfail oder / var / log / apache / error_log und verbietet IP-Adressen, die zu viele Kennwortfehler verursachen. Es aktualisiert die Firewall-Regeln, um die IP-Adresse abzulehnen.

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

Mirandapablog
quelle
0

Welche Distribution?

Ich denke, das Protokoll befindet sich unter /var/log/apache2/access.log mit Ubuntu ... Möglicherweise auch Debian.

Führen Sie updatedb als sudo aus und suchen Sie access.log über die Befehlszeile.

BEARBEITEN: Ich glaube, dies wird nur passieren, wenn sie Sie treffen, indem sie Seiten anfordern oder direkt über Port 80. Wenn sie andere Ports treffen, sehen Sie nicht die Informationen, die Sie dort benötigen. Sie müssen überprüfen, um welchen Prozess es sich handelt Laufen auf diesem Port und werfen Sie einen Blick auf die Verbindungsprotokolle für diesen Prozess.


quelle
0

Sie könnten tcpdump verwenden, um zu sehen, welche Adresse $ tcpdump -vv Port X ist, wenn Sie einen bestimmten Port vermuten

Razique
quelle
0

Wenn Sie unter einem verteilten DOS arbeiten, müssen Sie mit Sicherheit mehr als eine IP- Adresse blockieren und IP- Adressen können gefälscht werden . Dies kann auch mehr sein als ein DOS-Angriff auf Ihren Server, aber ein Lockvogel, um den tatsächlichen Angriff vor dem Erkennen zu schützen. Überprüfen Sie daher, ob alle Ihre exponierten Dienste von aktueller Software ausgeführt werden. Sie könnten auch an mod_dosevasive for apache interessiert sein.

Maxwell
quelle
2
Es ist sehr schwierig, IPs für Webangriffe zu fälschen. Da für eine gültige Webverbindung ein Syn / Ack-Handshake erforderlich ist, müssen Sie das Glück haben, die gefälschte IP-Adresse mit der richtigen Sequenznummer für Ihre Nutzlast von der gefälschten Angriffsseite bestätigen zu können. UDP / ICMP-Verkehr ist verbindungslos und erlaubt gefälschte Pakete, aber die meisten Hosts blockieren diese Pakete.
user6738237482
0

Zuerst müssen Sie den DOS-Typ bestimmen. Einige Angriffe sind sehr heimlich, aber effektiv (Slowloris), einige sind so schwer, dass ein ISP abstürzen könnte (ICMP-Flut von einer höheren Bandbreite als Ihre ISP-Quelle).

Rufen Sie Ihren Internetdienstanbieter an, und fragen Sie ihn, ob er den Datenverkehr herausfiltern kann, nachdem Sie den DOS-Typ ermittelt haben.

Ich habe ICMP-Fluten gesehen, die so stark waren, dass wir den vorgelagerten ISP bitten mussten, die Ziel-IP über eine BGP-Community herauszufiltern.

Mircea Vutcovici
quelle