Quais são as diferenças significativas entre tracepath e traceroute?

50

Eu li recentemente um artigo sobre HowToGeek que me faz coçar a cabeça um pouco. Eu tenho pouca experiência com o Linux, então me perdoe se isso é de nível de entrada:

  

"O comando tracepath é semelhante ao traceroute, mas não exige privilégios de root."

     

link

Como o traceroute e o tracepath executam uma função semelhante, diferentemente?

O que o traceroute faz, que requer privilégios de root, que o tracepath não faz?

Existem cenários em que se deve preferir o tracepath ao traceroute, ou vice-versa?

    
por Iszi 19.03.2012 / 15:23

4 respostas

48

Como o traceroute e o tracepath executam uma função semelhante, diferentemente?

Ambos os programas basicamente fazem uma coisa: enviar e receber certos pacotes IP.

Você pode usar a API normal de soquetes para fazer isso ou manipular os pacotes brutos da interface. A API sockets não requer privilégios de root, porque é bastante segura. Existem mecanismos embutidos para impedir que um programa acesse pacotes IP que outro programa fez.

O Tracepath usa a API sockets para toda a sua funcionalidade. O traceroute manipula pacotes brutos para algumas de suas funcionalidades.

O que o traceroute faz, que requer privilégios de root, que o tracepath não faz?

Ele manipula pacotes brutos.

Para manipular pacotes brutos, você precisa de privilégios de root, pois, ao fazer isso, você ignora os mecanismos de segurança da API de sockets. Você ganha acesso a comunicações de todos os outros processos e usuários que usam essa interface. Basta pensar sobre o que um vírus poderia fazer se pudesse manipular pacotes brutos.

Existem cenários em que se deve preferir o tracepath ao traceroute, ou vice-versa?

  

Um comando avançado disponível no Traceroute é a capacidade de executar   rastreamento de rede usando o protocolo IPv4 ou IPv6. Também é possível   escolha entre os formatos de dados ICMP, TCP ou UDP para uma análise. Traceroute   pode escolher roteiros de origem específicos para o probe e escolher qual porta   para enviar de. Pode definir limites no TTL mínimo e máximo para   aceitar de um probe de saída. Além disso, o Traceroute pode mostrar a   tempo de espera para pings de resposta, bem como definir quantos pacotes são enviados   em cada teste e quantas probes enviar. Alguns desses comandos podem   não suportado pelo hardware de rede ao longo do caminho, o que poderia   terminar a sonda antes que ela chegue ao seu destino.

sources: 1 2 3

    
por Galgalesh 09.03.2014 / 13:11
8

Você pode usar traceroute para rastreamento de rede avançado, pode escolher entre os protocolos IPv4 e Ipv6, você também pode escolher entre os formatos de dados ICMP, TCP ou UDP para uma análise.

Portanto, traceroute tem opções mais avançadas do que tracepath , que usa pacotes UDP para rastreio.

Agora, sobre privilégios de superusuário :

você pode usar traceroute com um usuário normal e um superusuário que depende da opção que deseja usar, aqui está um exemplo:

Aqui estamos usando pacotes UDP que não precisam de privilégios de superusuário

Aqui estamos usando pacotes de eco ICMP que precisam de privilégios.

Por pacotes ICMP você pode fazer um ataque DDOS.

Para saber mais sobre as opções de ICMP, Página Man do Traceroute

Para ver o tipo de opções traceroute no terminal man traceroute

O ICMP precisa de privilégios de superusuário, para garantir que apenas os administradores possam usar algumas de suas opções, porque ele pode ser usado para fazer ping de morte e coletar informações sobre uma rede específica, o privilégio aqui dará ao super usuário a capacidade de alterar opções usando pacotes ICMP.

Para que você possa ver isso, quando você tentar fazer ping em sites como www.microsoft.com , seu ping falhará até mesmo on-line, e isso porque os roteadores da Microsoft bloqueiam ICMP_requests.

Então o linux protege o sistema contra usuários não privilegiados, então eles não podem usar esses comandos para atacar.

    
por nux 04.03.2014 / 02:19
4

eu acho que você tem que ler isso link

Do link acima:

  

TracePath

     

O Tracepath traça um caminho para um endereço de rede designado, informando sobre o "tempo de vida" ou o atraso TTL e as unidades de transmissão máxima (MTU) ao longo do caminho. Este comando pode ser executado por qualquer outro usuário com acesso ao prompt da linha de comando.

  

Noções básicas de traceroute

     

O traceroute é essencialmente o mesmo que o Tracepath, exceto que, por padrão, ele somente fornecerá o valor do TTL. Se você deseja dados adicionais, você deve solicitar essas variáveis na linha de comando. Além disso, o traceroute requer acesso de superusuário para executar o comando em uma caixa do Linux, e algumas solicitações de dados avançadas podem não ser suportadas por todos os roteadores ao longo do caminho. Em um ambiente Windows, qualquer usuário com acesso à linha de comando pode executar o Traceroute.

    
por Ten-Coin 19.03.2012 / 15:32
1

ping e traceroute usam o protocolo ICMP. Como o UDP e o TCP, isso é acessível por meio da API normal de soquetes. Somente números de porta UDP e TCP menores que 1024 são protegidos do uso, diferente de root. O ICMP está disponível gratuitamente para todos os usuários.

Se você realmente quiser ver como o ping e o traceroute funcionam, você pode fazer o download de um exemplo de implementação do código C para eles em CodeProject .

Em suma, eles abrem um soquete ICMP e o traceroute altera os incrementos do TTL usando o setsockopt até que o destino seja atingido.

Fonte: Link

    
por Ahmadgeo 07.03.2014 / 16:15