Auflisten aktiver * und früherer * Netzwerkverbindungen

3058
Federico Poloni

Unter Linux weiß ich, dass ich aktive Netzwerkverbindungen mit lsof -ioder netstat auflisten kann. Soweit ich weiß, listet dies nur Verbindungen auf, die aktuell geöffnet sind .

Wenn ein Prozess eine kurze Verbindung herstellt und diese dann beendet (wie zum Beispiel ein Programm, das "nach Hause telefoniert"), würde ich es vermissen, wenn ich nicht gerade lsofin diesem Moment laufe . Gibt es eine Möglichkeit, eine Liste der Server zu erhalten, mit denen ich verbunden bin? Ein Tool, das beispielsweise die IP-Adresse in eine Datei schreibt, wenn eine neue Verbindung geöffnet wird, systemweit.

Ein Netzwerk-Sniffer wie Wireshark für diese Aufgabe ständig offen zu halten, scheint übertrieben.

0

3 Antworten auf die Frage

1
a CVn

Ich habe es nicht ausprobiert, aber haben Sie in Erwägung gezogen, iptables mit einem LOGZiel in der Ausgabekette zu verwenden?

Etwas wie das Folgende (ungeprüft, bringt aber den Kern herüber).

iptables -I OUTPUT ! -i lo -p tcp --syn -j LOG --log-prefix 'New TCP' iptables -I OUTPUT ! -i lo -p udp -m state --state NEW -j LOG --log-prefix 'New UDP' 

Dies wird einmal für jede TCP-Verbindung und einmal für jede neue UDP-Sitzung protokolliert, mit Ausnahme der Loopback-Schnittstelle. Dies scheint ungefähr das zu sein, was Sie benötigen. Sie können dann grepIhr System protokollieren, um herauszufinden, welche ausgehenden Verbindungen hergestellt wurden.

Es wird jedoch nicht (und ich glaube nicht, dass einfache Iptables dazu in der Lage sind) Ihnen sagen, von welcher Anwendung die Verbindung initiiert wurde, und Sie werden Tonnen von Protokollen davon erhalten, die wahrscheinlich meist nichts nützen (aufgrund der Anzahl der legitimen Verbindungen) wird sicherlich jedes Telefonieren nach Hause erledigen).

Das ist auch ein guter Vorschlag. Ich weiß nicht, warum mir die Protokollierung auf Firewall-Ebene nicht in den Sinn gekommen ist. Vielen Dank. Federico Poloni vor 10 Jahren 0
1
Gabor Garami

Wenn ein Prozess eine kurze Verbindung herstellt und dann beendet (z. B. ein Programm, das nach Hause telefoniert)

Die meisten dieser Programme stellen eine TCP-Verbindung her, um zu gewährleisten, dass die Informationen bei "Zuhause" ankommen. Wenn dies der Fall ist, wird der netstatBefehl Ihr bester Freund sein, da alle geschlossenen TCP-Verbindungen eine kurze oder längere Zeit im TIME_WAITStatus bleiben, undnetstat --inet -n diese Verbindungen (und auch die aktuell geöffneten) auflisten.

Wenn Sie kein Glück haben und dieser hinterhältige Prozess eine UDP-Verbindung verwendet oder Sie den Datenverkehr längere Zeit überwachen möchten, müssen Sie den gesamten Netzwerkverkehr des Computers mit Tools wie TCPDump oder IPTraf überwachen. IPTraf ist einfacher, da TCPDump nur IP-Adressen und Ports aufzeichnet. TCPDump ist ein fortgeschritteneres Werkzeug (trotz seines Namens kann es auch UDP- und ICMP-Verkehr überwachen) und zeichnet den gesamten Netzwerkverkehr auf.

IPTraf sieht gut aus, danke! Federico Poloni vor 10 Jahren 0
-1
september

Sie müssen mehr als 65000 Ports abhören. Das kann nur der Netzwerk-Sniffer der Firewall. Konfigurieren Sie einfach den richtigen Filter (für neue Verbindungsanforderungen) für Sniffer- oder Firewall-Protokollregeln.