Wie finde ich heraus, was oder wer meine Bandbreite nutzt?

17

Um ehrlich zu sein, ich bin arm an Serveradministration, aber mein Chef hat mich um Hilfe gebeten. Sein Server hat eine begrenzte Bandbreite von 2 GB / Tag und heute erhielt er eine Warnung von der Firma, dass er diese überschritten und ... 24 GB verwendet hat.

Da es unmöglich ist, weil er so war, fragte er mich, ob ich das Problem aufspüren kann. Ich habe keine Ahnung, wo ich anfangen soll oder was ich tun soll.

Jede Information wäre hilfreich, wie kann ich herausfinden, was falsch ist.

Maschine läuft unter Ubuntu 12.04. Das Merkwürdigste ist, dass gemäß den vom Hoster erhaltenen Diagrammen nur ausgehende Übertragung verwendet wurde.

BEARBEITEN

Vielen Dank für die Vorschläge, ich werde tcpdump ausführen und versuchen, das Ergebnis zu untersuchen

kamil
quelle
Bitte posten Sie Ihre Kommentare als Kommentar, nicht im Hauptteil Ihrer Frage.
EEAA
Ist hier meine Frage, kann ich tcpdump im Hintergrund laufen lassen, also würde es Daten von sagen wir einen Tag erfassen?
Kamil
Sie können ja. Sie müssen es in einer Bildschirmsitzung oder ähnlichem ausführen . Beachten Sie jedoch, dass Sie sicherstellen müssen, dass Sie über genügend Festplatten verfügen, um alle erfassten Daten zu speichern. Sie sollten wahrscheinlich die tcpdumpManpage lesen und herausfinden, wie sie so konfiguriert wird, dass nur die TCP / IP-Header erfasst werden und der Rest der Paketdaten verworfen wird.
EEAA

Antworten:

18

Zur sofortigen Überwachung können Sie iftop verwenden . Hier sehen Sie die aktuell aktiven Verbindungen und die von ihnen verwendete Bandbreite. Wenn Sie eine Verbindung mit hohem Datenaufkommen gefunden haben, suchen Sie die lokale Portnummer und ermitteln Sie mit, netstatzu welchem ​​Prozess die Verbindung gehört.

sudo netstat -tpn | grep 12345

Für eine längerfristige Überwachung würde ich so etwas wie darkstat vorschlagen . Auf diese Weise erhalten Sie eine Aufschlüsselung nach Host und Port, anhand derer Sie möglicherweise herausfinden können, mit welchem ​​Datenverkehr Sie zu tun haben.

mgorven
quelle
1
iotop? Oder hast du an iftop gedacht ?
EEAA
@ErikA Äh, ja ... das habe ich gesagt!
mgorven
7

Ich würde empfehlen, ntop zu installieren.

http://www.ntop.org/

Stellen Sie das auf einen Host-Gateway / Router-Standort und beobachten Sie den Datenverkehr für einen Tag / eine Woche. Ntop bietet eine Web-Benutzeroberfläche, über die Sie eine Aufschlüsselung nach IP / Port / Protokoll erhalten.

dmourati
quelle
2

In solchen Situationen ist eine Paketerfassung normalerweise der erste Startpunkt. Stellen Sie sicher, dass tcpdump installiert ist ( $ sudo apt-get install tcpdump), und führen Sie dann Folgendes aus:

$ sudo tcpdump -w packet.log

Dies schreibt ein Protokoll aller Pakete an packet.log. Lass das ein paar Minuten laufen, lade dann die Datei herunter und inspiziere sie mit Wireshark . Wenn der mysteriöse Datenverkehr weiterhin besteht, sollte dies mit einem flüchtigen Blick durch die Paketerfassungsdaten offensichtlich sein.

EEAA
quelle
Verwenden von Wireshark im Menü "Statistik" - "Endpunkte". Sie können dann IP- oder TCP-Listen oder andere Listen auswählen und nach dem von jedem Endpunkt empfangenen / gesendeten Betrag sortieren. Der Endpunkt ist die IP-Adresse oder der Computer. Einige Endpunkte könnten jedoch ein Gateway oder ein Switch sein, sodass ein weiterer TCP-Dump und ein Wireshark auf diesem Gateway durchgeführt werden müssten, um den Bandbreitennutzer ausfindig zu machen.
Gaoithe
2

Schauen Sie sich tcpdump an . Es kann den gesamten Netzwerkverkehr speichern (nicht nur TCP, wie der Name vermuten lässt), den Sie dann mit einer Anwendung wie Wireshark lesen können. In Wireshark ist es sehr einfach, bestimmte Datentypen zu filtern und sogar Diagramme der Netzwerk-E / A zu zeichnen.

Ein weiteres nützliches Tool könnte netstat sein, das eine Liste der laufenden Netzwerkverbindungen anzeigt. Vielleicht gibt es Verbindungen, die nicht da sein sollten. Tcpdump ist viel nützlicher (erfassen Sie einige Minuten und prüfen Sie dann, ob Sie die Quelle bereits sehen können), aber netstat kann Ihnen einen schnellen Überblick geben.

Übrigens: Meine ersten Gedanken sind, dass sich Malware auf Ihrem Server befindet oder für Amplification-Angriffe verwendet wird. Um dies zu untersuchen, müssen Sie zuerst tcpdump ausführen.

Bearbeiten: Beachten Sie, dass tcpdump wahrscheinlich als root ausgeführt werden muss, möglicherweise müssen Sie verwenden sudo tcpdump.

Eine weitere Änderung: Da ich keine wirklich gute Webseite finden kann, um zu verlinken, was Verstärkungsangriffe im Allgemeinen sind, ist hier eine kurze Version:

Protokolle wie DNS laufen auf UDP. UDP-Verkehr ist verbindungslos, und daher können Sie die IP-Adresse eines anderen Benutzers sehr leicht fälschen. Da eine DNS-Antwort normalerweise größer als die Abfrage ist, kann diese für einen DoS-Angriff verwendet werden. Der Angreifer sendet eine Abfrage, in der alle Datensätze angefordert werden, die der DNS-Server zu einem bestimmten Namen hat, und teilt dem DNS-Server mit, dass die Anforderung von X stammt. Dieses X ist das Ziel, das der Angreifer ausführen möchte. Der DNS-Server antwortet dann freundlich und sendet die (große, sagen wir 4 KB) Antwort an X.

Dies ist eine Verstärkung, da der Angreifer weniger Daten sendet, als X tatsächlich empfängt. DNS ist nicht das einzige Protokoll, mit dem dies möglich ist.

Luc
quelle
1
Ja. tcpdump -i any -w /tmp/traffic.pcap. Verwenden von Wireshark im Menü "Statistik" - "Endpunkte". Sortieren nach Betrag empfangen / gesendet.
Gaoithe
2

Das beste Tool dafür ist wahrscheinlich iftop und kann einfach über sudo apt-get install iftop heruntergeladen werden. Die Ausgabe wird nach den IP-Adressen / Hostnamen des Täters angezeigt:

             191Mb      381Mb                 572Mb       763Mb             954Mb
└────────────┴──────────┴─────────────────────┴───────────┴──────────────────────
box4.local            => box-2.local                      91.0Mb  27.0Mb  15.1Mb
                      <=                                  1.59Mb   761kb   452kb
box4.local            => box.local                         560b   26.8kb  27.7kb
                      <=                                   880b   31.3kb  32.1kb
box4.local            => userify.com                         0b   11.4kb  8.01kb
                      <=                                  1.17kb  2.39kb  1.75kb
box4.local            => b.resolvers.Level3.net              0b     58b    168b
                      <=                                     0b     83b    288b
box4.local            => stackoverflow.com                   0b     42b     21b
                      <=                                     0b     42b     21b
box4.local            => 224.0.0.251                         0b      0b    179b
                      <=                                     0b      0b      0b
224.0.0.251           => box-2.local                         0b      0b      0b
                      <=                                     0b      0b     36b
224.0.0.251           => box.local                           0b      0b      0b
                      <=                                     0b      0b     35b


─────────────────────────────────────────────────────────────────────────────────
TX:           cum:   37.9MB   peak:   91.0Mb     rates:   91.0Mb  27.1Mb  15.2Mb
RX:                  1.19MB           1.89Mb              1.59Mb   795kb   486kb
TOTAL:               39.1MB           92.6Mb              92.6Mb  27.9Mb  15.6Mb

Vergessen Sie nicht die klassischen und leistungsstarken Dienstprogramme sar und netstat auf älteren * nix!

Ein weiteres großartiges Tool ist nload , ein großartiges Tool zur Überwachung der Bandbreite in Echtzeit und einfach in Ubuntu oder Debian mit sudo apt-get install nload zu installieren.

Device eth0 [10.10.10.5] (1/2):
=====================================================================================
Incoming:


                               .         ...|
                               #         ####|
                           .. |#|  ...   #####.         ..          Curr: 2.07 MBit/s
                          ###.###  #### #######|.     . ##      |   Avg: 1.41 MBit/s
                         ########|#########################.   ###  Min: 1.12 kBit/s
             ........    ###################################  .###  Max: 4.49 MBit/s
           .##########. |###################################|#####  Ttl: 1.94 GByte
Outgoing:
            ##########  ###########    ###########################
            ##########  ###########    ###########################
            ##########. ###########   .###########################
            ########### ###########  #############################
            ########### ###########..#############################
           ############ ##########################################
           ############ ##########################################
           ############ ##########################################  Curr: 63.88 MBit/s
           ############ ##########################################  Avg: 32.04 MBit/s
           ############ ##########################################  Min: 0.00 Bit/s
           ############ ##########################################  Max: 93.23 MBit/s
         ############## ##########################################  Ttl: 2.49 GByte
Jamieson Becker
quelle
1

Nachdem ich eine Weile nach dem Problem gesucht hatte (über 60 GB Bandbreite in wenigen Tagen), stellte ich fest, dass es sich bei meinem Server um eine DDOS-Angriffsquelle handelte.

Zuerst habe ich versucht, Oracle DB darauf zu installieren, deshalb habe ich einen Oracle-Benutzer erstellt. Hacker haben es irgendwie geschafft, den Pass für diesen Benutzer zu brechen (ich denke, ich sollte es schwieriger machen :(), sie haben ein verstecktes Verzeichnis unter Oracle erstellt, mit einer Crontab dort, die manuell einige Deamons ausgeführt hat, die den Zielserver überfluteten.

Außerdem haben Hacker 2 neue Benutzer auf meinem Server angelegt: avahi und colord. Was soll ich dagegen tun? Ich habe gegoogelt und es scheint, dass Software mit demselben Namen nicht gefährlich ist, aber ich habe diese Benutzer (und auch Oracle) gelöscht.

Außerdem habe ich das ganze Orakelhaus mit allem darin gelöscht.

Ich denke, ich muss meinen Server mehr sichern, da er möglicherweise erneut angegriffen wird. Vielen Dank an alle für die Hilfe!

kamil
quelle
4
Ich würde Ihren Server löschen und neu starten. Nach einem Kompromiss vertraue ich keinem Server. Nuke die Website aus dem Orbit, es ist der einzige Weg, um sicher zu sein.
Der Unix-Hausmeister
Ja, das mache ich, erstens das Sichern einiger Daten (svn-Repository, nützliche Skripte)
kamil
Stellen Sie sicher, dass die Daten immer noch integer sind. Es ist Eindringlingen bekannt, Quellcode und Skripte zu ändern, um Hintertüren zu platzieren. Ich würde die neueste svn-Quelle mit einer kürzlich ausgecheckten Version vergleichen, bevor der Einbruch eintrat.
Der Unix-Hausmeister
0

Das Erfassen aller Pakete, die an einem Tag gesendet werden, an dem Sie Ihr Bandbreitenkontingent überschreiten, ist wahrscheinlich nicht der sinnvollste Ansatz. Wie werden Sie die Daten des Systems für die Analyse abrufen?

Welchen Zugang hast du zur Box? Welche Ports sind offen? Haben Sie die Protokolle für die Dienste überprüft, die ausgeführt werden? So etwas wie awstats fasst FTP-, HTTP- und SMTP-Protokolle zusammen (vorausgesetzt, diese Server sind so konfiguriert, dass sie die Daten in Protokollen aufzeichnen). OTOH mrtg zeichnet die Netzwerknutzung nach Endpunkt / Port auf und verfolgt sie.

symcbean
quelle