¿Cuáles son las diferencias significativas entre tracepath y traceroute?

58

Recientemente leí un poco de un artículo sobre HowToGeek que me hace rascarme un poco la cabeza. Sin embargo, tengo bastante poca experiencia con Linux, así que perdóname si esto es de nivel básico:

"El comando tracepath es similar a traceroute, pero no requiere privilegios de root".

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

¿Cómo traceroute y tracepath realizan una función similar, diferente?

¿Qué hace traceroute, que requiere privilegios de root, que no hace tracepath?

¿Hay escenarios en los que uno debería preferir tracepath sobre traceroute, o viceversa?

Iszi
fuente

Respuestas:

57

¿Cómo traceroute y tracepath realizan una función similar, diferente?

Ambos programas esencialmente hacen una cosa: enviar y recibir ciertos paquetes IP.

Puede usar la API de sockets normales para hacer esto, o puede manipular los paquetes sin procesar desde la interfaz. La API de sockets no requiere privilegios de root, porque es bastante segura. Hay mecanismos incorporados para evitar que un programa acceda a los paquetes IP que otro programa realizó.

Tracepath utiliza la API de sockets para toda su funcionalidad. Traceroute manipula paquetes en bruto para algunas de sus funciones.

¿Qué hace traceroute, que requiere privilegios de root, que no hace tracepath?

Manipula paquetes en bruto.

Para manipular paquetes sin formato, necesita privilegios de root porque al hacerlo, omite los mecanismos de seguridad de la API de sockets. Obtiene acceso a las comunicaciones de todos los demás procesos y usuarios que utilizan esa interfaz. Solo piense en lo que podría hacer un virus si pudiera manipular paquetes sin procesar.

¿Hay escenarios en los que uno debería preferir tracepath sobre traceroute, o viceversa?

Un comando avanzado disponible en Traceroute es la capacidad de ejecutar un rastreo de red utilizando el protocolo IPv4 o IPv6. También es posible elegir entre formatos de datos ICMP, TCP o UDP para una sonda. Traceroute puede elegir rutas de origen específicas para la sonda y elegir desde qué puerto enviar. Puede establecer límites en el TTL mínimo y máximo para aceptar desde una sonda de salida. Además, Traceroute puede mostrar el tiempo de espera para los pings de respuesta, así como establecer cuántos paquetes se envían en cada sonda y cuántas sondas para enviar. Es posible que algunos de estos comandos no sean compatibles con el hardware de red a lo largo de la ruta, lo que podría terminar la sonda antes de que llegue a su destino.

fuentes: 1 2 3

Galgalesa
fuente
1
Finalmente, una respuesta con una preocupación de seguridad legítima que afecta al sistema local. ¡Gracias!
Iszi
10

Puede usarlo traceroutepara el rastreo de red avanzado, puede elegir entre los protocolos IPv4 e Ipv6, también puede elegir entre los formatos de datos ICMP, TCP o UDP para una sonda.

Por lo tanto, traceroutetiene opciones más avanzadas que las tracepathque usan paquetes UDP para el seguimiento.

Ahora sobre los privilegios de superusuario :

puede usar traceroutetanto con un usuario normal como con un superusuario que depende de la opción que desee usar, aquí hay un ejemplo:

ingrese la descripción de la imagen aquí

Aquí estamos usando paquetes UDP que no necesitan privilegios de superusuario

ingrese la descripción de la imagen aquí

Aquí estamos usando paquetes de eco ICMP que necesitan privilegios.

Mediante paquetes ICMP puedes hacer un ataque DDOS.

Para conocer las opciones de ICMP Página del manual de Traceroute

Para ver las tracerouteopciones, escriba en la terminalman traceroute

ICMP necesita privilegios de superusuario, para garantizar que solo los administradores puedan usar algunas de sus opciones, ya que se puede usar para hacer ping de muerte y recopilar información sobre una red específica, el privilegio aquí le dará al superusuario la capacidad de cambiar opciones usando ICMP paquetes

Que puede verlo, cuando intenta hacer ping a sitios web como www.microsoft.com, su ping fallará incluso en línea, y eso porque los enrutadores de Microsoft bloquean las solicitudes ICMP_request.

Entonces, Linux protege el sistema de usuarios no privilegiados, por lo que no pueden usar estos comandos para atacar.

nux
fuente
3
Por lo general, las restricciones contra usuarios no privilegiados se utilizan para proteger el sistema de ser atacado , no de ser utilizado como un vector para atacar otros sistemas. Esto no tiene mucho sentido para mí: ¿conoce alguna documentación que respalde esto?
Iszi
3

Creo que tienes que leer esto http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html

Desde el enlace de arriba:

TracePath

Tracepath rastrea una ruta a una dirección de red designada, informando sobre el "tiempo de vida" o el retraso TTL y las unidades de transmisión máxima (MTU) en el camino. Este comando puede ser ejecutado por cualquier otro usuario con acceso a la línea de comandos.


Conceptos básicos de Traceroute

Traceroute es esencialmente lo mismo que Tracepath, excepto que, de forma predeterminada, solo dará el valor TTL. Si desea datos adicionales, debe solicitar esas variables en la línea de comando. Además, traceroute requiere acceso de superusuario para ejecutar el comando en un cuadro de Linux, y algunas solicitudes de datos avanzadas pueden no ser compatibles con todos los enrutadores a lo largo de la ruta. En un entorno Windows, cualquier usuario con acceso a la línea de comando puede ejecutar Traceroute.

rɑːdʒɑ
fuente
Gracias por el enlace, pero ¿podría poner algo de contenido real en su respuesta?
Iszi
Hola bodhi.zazen, gracias por mejorar mi publicación. :)
rɑːdʒɑ
55
Gracias por la aclaración. Sin embargo, la respuesta aquí (no haber llegado a revisar el enlace aún) que aún falta dos partes de la pregunta: ¿Por qué no tracerouterequiere acceso de superusuario (especialmente ya que en realidad parece que lo hace menos que tracepathpor defecto)? Y, aparte de escenarios en los que estás no un superusuario, ¿por qué debería elegir uno sobre el otro?
Iszi
1

pingy tracerouteusar el protocolo ICMP. Al igual que UDP y TCP, esto es accesible a través de la API de sockets normales. Solo los números de puerto UDP y TCP inferiores a 1024 están protegidos contra el uso, excepto por root. ICMP está disponible gratuitamente para todos los usuarios.

Si realmente desea ver cómo funcionan los ping y traceroute, puede descargar una implementación de código C de ejemplo para ellos desde CodeProject .

En resumen, simplemente abren un socket ICMP y traceroute altera los incrementos del TTL usando setsockopt hasta que se alcanza el objetivo.

Fuente: Enlace

Ahmadgeo
fuente
También; tracepath usa UDP que, además de las opciones UDP en traceroute, no requiere privilegios elevados.
Ahmadgeo