Quelles sont les différences significatives entre tracepath et traceroute?

58

J'ai récemment lu un article sur HowToGeek qui m'a fait me gratter un peu la tête. Cependant, j'ai assez peu d'expérience avec Linux, alors pardonnez-moi s'il s'agit d'une entrée de gamme:

"La commande tracepath est similaire à traceroute, mais elle ne nécessite pas de privilèges root."

http://www.howtogeek.com/108511/how-to-work-with-the-network-from-the-linux-terminal-11-commands-you-need-tknow-/

Comment traceroute et tracepath remplissent-ils une fonction similaire, différemment?

Que fait traceroute, qui requiert des privilèges root, que tracepath n’a pas?

Existe-t-il des scénarios dans lesquels on devrait préférer tracepath à traceroute, ou inversement?

Iszi
la source

Réponses:

57

Comment traceroute et tracepath remplissent-ils une fonction similaire, différemment?

Les deux programmes font essentiellement une chose: envoyer et recevoir certains paquets IP.

Pour ce faire, vous pouvez utiliser l’API de sockets normale ou manipuler les paquets bruts à partir de l’interface. L'API de sockets ne nécessite pas de privilèges root, car elle est relativement sécurisée. Il existe des mécanismes intégrés pour empêcher un programme d'accéder aux paquets IP créés par un autre programme.

Tracepath utilise l'API Sockets pour toutes ses fonctionnalités. Traceroute manipule des packages bruts pour certaines de ses fonctionnalités.

Que fait traceroute, qui requiert des privilèges root, que tracepath n’a pas?

Il manipule des paquets bruts.

Pour manipuler des paquets bruts, vous avez besoin des privilèges root car vous éviterez ainsi les mécanismes de sécurité de l'API de socket. Vous avez accès aux communications de tous les autres processus et utilisateurs utilisant cette interface. Il suffit de penser à ce qu’un virus pourrait faire s’il pouvait manipuler des paquets bruts.

Existe-t-il des scénarios dans lesquels on devrait préférer tracepath à traceroute, ou inversement?

Une commande avancée disponible dans Traceroute est la possibilité d'exécuter une trace réseau en utilisant le protocole IPv4 ou IPv6. Il est également possible de choisir entre les formats de données ICMP, TCP ou UDP pour une sonde. Traceroute peut choisir des routages source spécifiques pour la sonde et choisir le port à envoyer. Il peut définir des limites de durée de vie minimale et maximale à accepter à partir d'une analyse sortante. En outre, Traceroute peut afficher le temps d'attente pour les pings de réponse, ainsi que définir le nombre de paquets envoyés dans chaque sonde et le nombre de sondes à envoyer. Certaines de ces commandes peuvent ne pas être prises en charge par le matériel réseau le long du chemin, ce qui pourrait mettre fin à la sonde avant qu'elle atteigne sa destination cible.

sources: 1 2 3

Galgalesh
la source
1
Enfin, une réponse avec un problème de sécurité légitime qui affecte le système local. Merci!
Iszi
10

Vous pouvez utiliser traceroutepour le traçage réseau avancé, vous pouvez choisir entre les protocoles IPv4 et Ipv6, vous pouvez également choisir entre les formats de données ICMP, TCP ou UDP pour une sonde.

Donc traceroutea plus d'options avancées que celle tracepathqui utilise les paquets UDP pour le traçage.

Passons maintenant aux privilèges de superutilisateur :

vous pouvez utiliser tracerouteà la fois un utilisateur normal et un superutilisateur qui dépend de l' option que vous souhaitez utiliser, voici un exemple:

entrez la description de l'image ici

Ici, nous utilisons des paquets UDP qui ne nécessitent pas de privilèges de superutilisateur

entrez la description de l'image ici

Nous utilisons ici des paquets d'écho ICMP qui nécessitent des privilèges.

Par paquets ICMP, vous pouvez lancer une attaque DDOS.

Pour en savoir plus sur les options ICMP Page de manuel Traceroute

Pour afficher les tracerouteoptions, tapez dans le terminalman traceroute

ICMP a besoin des privilèges de super utilisateur pour garantir que seuls les administrateurs peuvent utiliser certaines de ses options, car il peut être utilisé pour effectuer un ping of death et collecter des informations sur un réseau spécifique. Ce privilège permet au super utilisateur de modifier les options à l'aide d'ICMP. paquets.

Que vous puissiez le voir, lorsque vous essayez d’ www.microsoft.comenvoyer une requête ping à des sites Web similaires , votre commande ping échouera même si elle est en ligne, et ce, parce que les routeurs de Microsoft bloquent ICMP_requests.

Donc, Linux protège le système des utilisateurs non privilégiés, ils ne peuvent donc pas utiliser ces commandes pour attaquer.

nux
la source
3
En règle générale, les restrictions visant les utilisateurs non privilégiés servent à protéger le système contre les attaques, et non à servir de vecteur pour attaquer d'autres systèmes. Cela n'a pas vraiment de sens pour moi - connaissez-vous une documentation qui le sauvegarde?
Iszi
3

Je pense que vous devez lire ceci http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html

À partir du lien ci-dessus:

TracePath

Tracepath trace un chemin d'accès à une adresse réseau désignée, en indiquant le «temps de vie» ou le temps de retard TTL et le nombre maximal d'unités de transmission (MTU). Cette commande peut être exécutée par tout autre utilisateur ayant accès à l'invite de ligne de commande.


Bases de la Traceroute

Traceroute est essentiellement identique à Tracepath, sauf que par défaut, il ne donnera que la valeur TTL. Si vous souhaitez des données supplémentaires, vous devez demander ces variables sur la ligne de commande. De plus, traceroute nécessite un accès superutilisateur pour exécuter la commande sur une machine Linux. Certaines requêtes de données avancées peuvent ne pas être prises en charge par tous les routeurs situés sur le chemin. Dans un environnement Windows, tout utilisateur ayant accès à la ligne de commande peut exécuter Traceroute.

rɑːdʒɑ
la source
Merci pour le lien, mais pourriez-vous mettre un contenu réel dans votre réponse?
Iszi
Bonjour bodhi.zazen, merci d'avoir amélioré mon post. :)
vendredi
5
Merci pour la clarification. Cependant, il manque encore deux parties à la question ( pourquoi ne traceroutepas avoir accès au lien), pourquoi demander un accès superutilisateur (d’autant plus qu’il semble qu’il en fait moins que tracepathpar défaut)? Et, mis à part les scénarios dans lesquels vous n'êtes pas un superutilisateur, pourquoi devriez-vous choisir l'un plutôt que l'autre?
Iszi
1

pinget tracerouteutilisez le protocole ICMP. Comme UDP et TCP, il est accessible via l’API de sockets normale. Seuls les numéros de port UDP et TCP inférieurs à 1024 sont protégés contre une utilisation autre que la racine. ICMP est disponible gratuitement pour tous les utilisateurs.

Si vous voulez vraiment voir comment fonctionnent ping et traceroute, vous pouvez télécharger un exemple d'implémentation de code C à partir de CodeProject .

En bref, ils ouvrent simplement un socket ICMP et traceroute modifie les incréments de durée de vie à l'aide de setsockopt jusqu'à ce que la cible soit atteinte.

Source: lien

Ahmadgeo
la source
Aussi; tracepath utilise UDP qui, en plus des options UDP dans Traceroute, ne nécessite pas de privilèges élevés.
Ahmadgeo