Was sind die signifikanten Unterschiede zwischen Tracepath und Traceroute?

58

Ich habe kürzlich einen Artikel über HowToGeek gelesen, der mich ein wenig am Kopf kratzen lässt. Ich habe allerdings wenig Erfahrung mit Linux, also verzeihen Sie mir, wenn dies ein Einstiegsmodell ist:

"Der Befehl tracepath ähnelt traceroute, erfordert jedoch keine Root-Rechte."

http://www.howtogeek.com/108511/wie-zu-arbeiten-mit-dem-Netzwerk-vom-Linux-Terminal-11-befiehlt-Sie-zu-erkennen-

Wie üben Traceroute und Tracepath eine ähnliche Funktion auf unterschiedliche Weise aus?

Was macht Traceroute, für das Root-Rechte erforderlich sind, für das Tracepath jedoch nicht?

Gibt es Szenarien, in denen man Tracepath gegenüber Traceroute bevorzugen sollte oder umgekehrt?

Iszi
quelle

Antworten:

57

Wie üben Traceroute und Tracepath eine ähnliche Funktion auf unterschiedliche Weise aus?

Beide Programme machen im Wesentlichen eines: bestimmte IP-Pakete senden und empfangen.

Sie können dazu die normale Sockets-API verwenden oder die Rohpakete über die Schnittstelle bearbeiten. Die Sockets-API erfordert keine Root-Rechte, da sie ziemlich sicher ist. Es gibt integrierte Mechanismen, die verhindern, dass ein Programm auf IP-Pakete zugreift, die ein anderes Programm erstellt hat.

Tracepath verwendet die Sockets-API für alle Funktionen. Traceroute manipuliert Rohpakete für einige seiner Funktionen.

Was macht Traceroute, für das Root-Rechte erforderlich sind, für das Tracepath jedoch nicht?

Es manipuliert Rohpakete.

Um Rohpakete zu manipulieren, benötigen Sie Root-Rechte, da Sie auf diese Weise die Sicherheitsmechanismen der Sockets-API umgehen. Über diese Schnittstelle erhalten Sie Zugriff auf die Kommunikation aller anderen Prozesse und Benutzer. Stellen Sie sich vor, was ein Virus tun könnte, wenn er Rohpakete manipulieren könnte.

Gibt es Szenarien, in denen man Tracepath gegenüber Traceroute bevorzugen sollte oder umgekehrt?

Ein erweiterter Befehl, der in Traceroute verfügbar ist, ist die Fähigkeit, eine Netzwerkablaufverfolgung unter Verwendung des IPv4- oder IPv6-Protokolls auszuführen. Es ist auch möglich, zwischen den Datenformaten ICMP, TCP oder UDP für eine Sonde zu wählen. Traceroute kann bestimmte Quellroutings für den Test auswählen und auswählen, von welchem ​​Port gesendet werden soll. Es kann Grenzwerte für die minimale und maximale TTL festlegen, die von einem ausgehenden Test akzeptiert werden sollen. Außerdem kann Traceroute die Wartezeit für Antwort-Pings anzeigen sowie festlegen, wie viele Pakete in jedem Test gesendet werden und wie viele Tests gesendet werden sollen. Einige dieser Befehle werden möglicherweise nicht von der Netzwerkhardware auf dem Pfad unterstützt, wodurch der Test möglicherweise beendet wird, bevor er sein Ziel erreicht.

Quellen: 1 2 3

Galgalesh
quelle
1
Schließlich eine Antwort mit berechtigten Sicherheitsbedenken, die sich auf das lokale System auswirken. Vielen Dank!
Iszi
10

Sie können traceroutefür die erweiterte Netzwerkablaufverfolgung zwischen IPv4- und IPv6-Protokollen sowie zwischen ICMP-, TCP- oder UDP-Datenformaten für einen Test wählen.

Hat traceroutealso erweiterte Optionen als tracepathdie, die UDP-Pakete für die Ablaufverfolgung verwenden.

Nun zu Superuser-Rechten :

Sie können diese Optiontraceroute sowohl mit einem normalen Benutzer als auch mit einem Superuser verwenden. Dies ist ein Beispiel:

Bildbeschreibung hier eingeben

Hier verwenden wir UDP- Pakete, die keine Superuser-Berechtigungen benötigen

Bildbeschreibung hier eingeben

Hier verwenden wir ICMP- Echopakete, die Privilegien benötigen.

Mit ICMP- Paketen können Sie DDOS-Angriffe ausführen.

Informationen zu ICMP-Optionen finden Sie auf der Traceroute-Manpage

Um tracerouteOptionen anzuzeigen , geben Sie das Terminal einman traceroute

ICMP benötigt Superuser-Berechtigungen, um sicherzustellen, dass nur Administratoren einige seiner Optionen nutzen können, da dies dazu verwendet werden kann, den Tod zu melden und Informationen über ein bestimmtes Netzwerk zu sammeln. Mit dieser Berechtigung kann der Superuser die Optionen mithilfe von ICMP ändern Pakete.

Dass Sie es sehen können, wenn Sie versuchen, Websites wie zu www.microsoft.compingen, schlägt Ihr Ping sogar online fehl, und das, weil Microsoft-Router ICMP_requests blockieren.

Daher schützt Linux das System vor nichtprivilegierten Benutzern, sodass sie diese Befehle nicht für Angriffe verwenden können.

nux
quelle
3
In der Regel werden Einschränkungen für nicht privilegierte Benutzer verwendet, um das System vor Angriffen zu schützen, und nicht, um andere Systeme anzugreifen. Das ergibt für mich keinen Sinn - kennen Sie Unterlagen, die dies belegen?
Iszi
3

Ich denke, Sie müssen diese http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html lesen

Über den obigen Link:

TracePath

Tracepath zeichnet einen Pfad zu einer festgelegten Netzwerkadresse auf und gibt dabei die verbleibende Lebensdauer oder TTL-Verzögerung sowie die MTU (Maximum Transmission Units) an. Dieser Befehl kann von jedem anderen Benutzer mit Zugriff auf die Befehlszeile ausgeführt werden.


Traceroute-Grundlagen

Traceroute ist im Wesentlichen mit Tracepath identisch, mit der Ausnahme, dass standardmäßig nur der TTL-Wert angegeben wird. Wenn Sie zusätzliche Daten wünschen, müssen Sie diese Variablen in der Befehlszeile anfordern. Außerdem benötigt traceroute Superuser-Zugriff, um den Befehl auf einer Linux-Box auszuführen, und einige erweiterte Datenanforderungen werden möglicherweise nicht von allen Routern entlang des Pfads unterstützt. In einer Windows-Umgebung kann jeder Benutzer mit Zugriff auf die Befehlszeile Traceroute ausführen.

rɑːdʒɑ
quelle
Vielen Dank für den Link, aber können Sie in Ihrer Antwort auch einen konkreten Inhalt einfügen?
Iszi
Hallo bodhi.zazen, danke für die Verbesserung meines Beitrags. :)
Donnerstag,
5
Danke für die Klarstellung. Bei der Antwort hier (ich habe den Link noch nicht überprüft) fehlen jedoch immer noch zwei Teile der Frage: Warum ist tracerouteein Superuser-Zugriff erforderlich (zumal es tatsächlich weniger als tracepathstandardmäßig zu tun scheint )? Und abgesehen von Szenarien, in denen Sie kein Superuser sind, warum sollten Sie sich für eines entscheiden?
Iszi
1

pingund tracerouteverwenden Sie das ICMP-Protokoll. Wie bei UDP und TCP ist dies über die normale Sockets-API möglich. Nur UDP- und TCP-Portnummern unter 1024 werden vor der Verwendung geschützt, außer durch root. ICMP steht allen Benutzern frei zur Verfügung.

Wenn Sie wirklich sehen möchten, wie Ping und Traceroute funktionieren, können Sie ein Beispiel für eine C-Code-Implementierung von CodeProject herunterladen .

Kurz gesagt, sie öffnen einfach einen ICMP-Socket und traceroute ändert die Inkremente der TTL mithilfe von setsockopt, bis das Ziel erreicht ist.

Quelle: Link

Ahmadgeo
quelle
Ebenfalls; tracepath verwendet UDP, für das - zusätzlich zu den UDP-Optionen in traceroute selbst - keine erhöhten Berechtigungen erforderlich sind.
Ahmadgeo