Auf einer Centos-Box möchte ich TCP-Verbindungen sichern - ich möchte sehen, ob ein Server versucht, Anforderungen an eine bestimmte IP zu senden. Normalerweise würde tcpdump den Trick machen - aber tcpdump ist nicht installiert und die Installation von Software ist keine Option (aus Gründen der Unternehmensrichtlinie). Ich fürchte, netstat zeigt mir keine einzige Anfrage.
Also habe ich mich gefragt, welche anderen Optionen ich habe. Ich habe root-Zugriff auf den Server.
Antworten:
Sicher hast du
python
?Dies wird beendet, wenn "GOT TARGET" die IP-Adresse angibt, deren Übereinstimmung wiederhergestellt wird. Da TCP während eines Handshakes etwas zurücksenden muss, sollte dies alles von einer bestimmten Zieladresse abfangen. Es ist egal, ob das Protokoll TCP oder UDP ist (noch überprüfe ich).
Vergessen Sie nicht, ZIEL und SCHNITTSTELLE zu ändern.
quelle
socket.error: (1, 'Operation not permitted')
Ich würde wirklich versuchen, tcpdump zu bekommen. Einige Alternativen, um festzustellen, ob für eine IP eine bestimmte Verbindung besteht, sind:
strace:
lsof:
netstat:
quelle
Iptables verfügt über eine Debug-Funktion, die auch für die Verkehrsanalyse verwendet werden kann.
Die Lösung ist unter der folgenden URL beschrieben.
Debugregeln in Iptables
Lesen Sie auch die folgende URL, um die Protokollierung der Trace-Ausgabe in einer Datei Ihrer Wahl einzurichten.
http://backreference.org/2010/06/11/iptables-debugging/
Ich würde diese Lösung nicht als gleichbedeutend mit tcpdump betrachten, aber sie kann mit einer minimalen Installation von Centos durchgeführt werden. Sie müssen vorsichtig sein, um die Festplatte nicht mit den Protokollen zu füllen, da tcpdump bei der Festplattennutzung viel effizienter ist. Deaktivieren Sie die Protokollierung, wenn sie nicht benötigt wird.
Sie können Folgendes als grundlegende Vorlage in Ihrem Skript verwenden.
quelle
Wenn Sie eine bestimmte Software für Ihre Arbeit benötigen und dies nicht dürfen, machen Sie entweder keinen guten Business Case oder verkaufen Ihre Ideen an die richtigen Leute ... oder Sie haben keine Kontrolle über dieses System. .
Wenn ich beauftragt wäre, etwas zu tun, und die Art von Debugging- / Fehlerbehebungsinformationen benötige, die Sie in diesem Fall benötigen, würde ich das richtige Tool verwenden. Das ist wahrscheinlich
tcpdump
odertshark
. Ja, das sind Software-Teile, aber ich würde sie für wesentlich wichtigere Dienstprogramme halten . Tatsächlich handelt es sich um Dienstprogramme, die vorübergehend auf dem System installiert oder geladen und ohne Zwischenfälle entfernt werden können (ist ein Wechselmedium eine Option? ... Hinweis ).Der Punkt ist jedoch, dass eine ruckelige Umgehung der Unternehmensrichtlinien wahrscheinlich mehr Aufwand erfordert, als die Genehmigung für diesen Anwendungsfall zu erhalten.
quelle
tcpdump
Dateien kompilieren und sie einfach nach / tmp kopieren und von dort ausführen?Kyle bot einige großartige Optionen an. Eine weitere wäre zu verwenden
iptables
:Dies ist im Wesentlichen eine Rechnungslegungsvorschrift. Der Datenverkehr wird nicht explizit zugelassen oder abgelehnt, daher wird die Standardrichtlinie für die OUTPUT-Kette verwendet (standardmäßig ACCEPT). Jedes übereinstimmende Paket erhöht jedoch die Zähler für die Regel.
Optional können Sie Details log über das Paket als auch mit der
-j LOG
Option:Die Protokolle werden an die Kernel-Protokollierungsfunktion gesendet. Sie sollten daher in / var / log / messages unter Red Hat-Derivaten und /var/log/kern.log unter Debian-Derivaten angezeigt werden. Es wäre auch in der Ausgabe von sichtbar
dmesg
, wie gezeigt. Im Gegensatz dazutcpdump
wird jedoch nicht der vollständige Inhalt des Pakets protokolliert, sondern nur der Inhalt des Paketheaders.quelle
Da Ihr Server eine Verbindung zu einer bestimmten IP herstellt, wird es sich vermutlich um einen Port handeln, über den Sie ebenfalls Bescheid wissen.
In jedem Fall
netstat
oderss
sind entworfen, um zu tun, was Sie wollen. Sie können dasselbe mit beiden Befehlen tun:Dabei
A.B.C.D
steht "Wobei" für eine IPv4-Adresse und "n
Wobei" für eine Portnummer, mit der Ihr Server auf der Remote-Seite eine Verbindung herstellt. Beispielsweise:Oder, wenn Sie nur wissen möchten, dass die Verbindung hergestellt wurde:
Wenn Sie die Portnummer, zu der Sie eine Verbindung herstellen möchten, nicht kennen, ist der Job schwieriger, da TCP auf beiden Seiten der Konversation einen Port für die Daten- und ACK-Pakete öffnet. In diesem Fall können Sie einfach nach der IP-Adresse suchen, um anzuzeigen, dass eine Verbindung hergestellt wurde, unabhängig davon, ob eine Verbindung besteht oder nicht.
Schließlich können Sie dies nach Herzenslust als Überwachungswerkzeug verwenden:
quelle