Sollten Sie den SSH-Flow aus einem Remote-Capture ausschließen?
Ein Remote-Capture zeichnet die Verbindung auf, die seine eigene Ausgabe transportiert. Entscheiden Sie, wie viel Sie ausschließen, und verknüpfen Sie niemals zwei negative Host-Tests mit or.
Auf einer entfernten Maschine mitzuschneiden, während Sie die Ausgabe über dieselbe Verbindung beobachten, ist eine selbstreferenzielle Messung, und sie verzerrt das, was Sie messen. Jedes Paket, das Sie ausgeben, wandert durch die Sitzung zurück, die mitgeschnitten wird. Diesen Flow auszuschließen ist meist richtig, aber die Größe des Ausschlusses ist eine echte Entscheidung. Zu eng, und der Mitschnitt überflutet sich selbst; zu weit, und die Beweise verschwinden.
Warum der Mitschnitt sich selbst aufzeichnet
Der Mitschnitt sieht den Rückweg seiner eigenen Ausgabe. Jede Zeile, die in Ihrem Terminal erscheint, wird zu einem oder mehreren Paketen auf der Management-Verbindung, die der Filter dann erneut trifft und ausgibt. Das Ergebnis ist eine Schleife, die wächst, bis der Puffer oder die Leitung aufgibt.
Deshalb sieht ein Mitschnitt, der in eine Datei geschrieben wird, gut aus, während derselbe Mitschnitt live gestreamt unbrauchbar wird. Der Verkehr ist nicht neu; Sie haben ihn erzeugt. Ein Mitschnitt von zehn Sekunden kann mehr Ausgabe erzeugen, als die Leitung tragen kann, sobald die Schleife beginnt.
Bauen Sie den Ausschluss als eine Gruppe
Gehen Sie davon aus, wie der entfernte Host Ihre Sitzung sieht, nicht von der Adresse in Ihrem lokalen Terminal. Ein Sprunghost oder ein NAT-Gerät kann aus der Gegenseite etwas machen, das Sie nie eingegeben haben, lesen Sie die Adresse also aus der Sicht der entfernten Seite. Fassen Sie dann Host und Port zusammen, damit die Negation für das Paar gilt.
tcpdump -ni eth0 '(net 10.60.0.0/24) and not (host 203.0.113.77 and tcp port 2222)'Wenn Sie den gesamten Ausdruck in Anführungszeichen setzen, liest die Shell die Klammern nicht als Syntax. Geben Sie den Filter erneut aus, bevor Sie dem Ergebnis trauen.
Der Filter, der richtig aussieht und alles behält
Der falsche Filter ist der, der sich natürlich liest: Quelle ist nicht die Gegenseite oder Ziel ist nicht die Gegenseite. Für ein Paket von Ihrer Workstation ist der erste Test wahr; für die Antwort der zweite. Beide mit or zu verbinden behält beide Richtungen, also genau das, was Sie verwerfen wollten.
Die pcap-Filterlogik gibt and und or dieselbe Priorität und wertet von links nach rechts aus, Klammern sind also nicht optional, wenn Sie beide mischen. Negieren Sie einen gruppierten Ausdruck, statt zwei Negationen zu kombinieren. Diese eine Änderung trennt einen funktionierenden Filter von einem Mitschnitt voller eigener Tipparbeit. pcap-Filterreferenz ist kurz genug, um sie im Terminal zu lesen, und lohnt einen Blick, wann immer sich ein Filter unerwartet verhält.
Entscheiden Sie danach, was der Mitschnitt beweisen muss
Entscheiden Sie, wie viel Sie ausschließen, indem Sie fragen, was der Mitschnitt beweisen muss. Wenn Sie Anwendungsverkehr zum selben Host sehen müssen, schließen Sie nur den SSH-Port aus und akzeptieren Sie Rauschen anderer Sitzungen. Ist der Host für die Frage irrelevant, ist der vollständige Ausschluss einfacher und entfernt eine ganze Klasse selbst erzeugter Pakete. Schreiben Sie die Wahl neben die Mitschnittdatei, denn ein Filter ist eine Annahme über die Beweise.
Die Wahl der Schnittstelle entscheidet, was Sie überhaupt sehen. Auf dem Tunnel sehen Sie den inneren Verkehr; auf der physischen Schnittstelle sehen Sie den verschlüsselten Transport. Fehlen die Management-Pakete an der gewählten Stelle bereits, wird kein Ausschluss einen Mitschnitt reparieren, der auf die falsche Schicht zielt.