¿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
Puede usarlo
traceroute
para 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,
traceroute
tiene opciones más avanzadas que lastracepath
que usan paquetes UDP para el seguimiento.Ahora sobre los privilegios de superusuario :
puede usar
traceroute
tanto con un usuario normal como con un superusuario que depende de la opción que desee usar, aquí hay un ejemplo:Aquí estamos usando paquetes UDP que no necesitan privilegios de superusuario
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
traceroute
opciones, 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.
fuente
Creo que tienes que leer esto http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html
Desde el enlace de arriba:
fuente
traceroute
requiere acceso de superusuario (especialmente ya que en realidad parece que lo hace menos quetracepath
por defecto)? Y, aparte de escenarios en los que estás no un superusuario, ¿por qué debería elegir uno sobre el otro?ping
ytraceroute
usar 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
fuente