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

58

Recentemente, li um artigo no HowToGeek que me coçou um pouco a cabeça. Porém, eu tenho bastante pouca experiência com o Linux, então me perdoe se este é de nível básico:

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

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

Como o traceroute e o tracepath executam uma função semelhante de maneira diferente?

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 caminho do traçado ao traceroute ou vice-versa?

Iszi
fonte

Respostas:

57

Como o traceroute e o tracepath executam uma função semelhante de maneira diferente?

Ambos os programas fazem essencialmente uma coisa: enviar e receber determinados pacotes IP.

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

O Tracepath usa a API de soquetes para todas as suas funcionalidades. 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 porque, ao fazer isso, ignora os mecanismos de segurança da API de soquetes. Você obtém acesso às comunicações de todos os outros processos e usuários usando essa interface. Pense no que um vírus poderia fazer se ele pudesse manipular pacotes brutos.

Existem cenários em que se deve preferir o caminho do traçado ao traceroute ou vice-versa?

Um comando avançado disponível no Traceroute é a capacidade de executar um rastreamento de rede usando o protocolo IPv4 ou IPv6. Também é possível escolher entre os formatos de dados ICMP, TCP ou UDP para uma análise. O Traceroute pode escolher roteamentos de origem específicos para o probe e escolher de qual porta enviar. Ele pode definir limites no TTL mínimo e máximo para aceitar de uma análise de saída. Além disso, o Traceroute pode mostrar o tempo de espera dos pings de resposta, além de definir quantos pacotes são enviados em cada análise e quantas análises devem ser enviadas. Alguns desses comandos podem não ser suportados pelo hardware de rede ao longo do caminho, que pode encerrar o probe antes de atingir seu destino.

fontes: 1 2 3

Galgalesh
fonte
11
Finalmente, uma resposta com uma preocupação legítima de segurança que afeta o sistema local. Obrigado!
Iszi
10

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

Portanto, traceroutetem opções mais avançadas do que as tracepathque usam pacotes UDP para rastreamento.

Agora, sobre os privilégios de superusuário :

você pode usar traceroutecom um usuário normal e um superusuário que depende da opção que deseja usar, eis um exemplo:

insira a descrição da imagem aqui

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

insira a descrição da imagem aqui

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

Por pacotes ICMP, você pode fazer um ataque DDOS.

Para aprender sobre as opções do ICMP Página do Traceroute

Para visualizar as tracerouteopções, digite o terminalman 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 da morte e coletar informações sobre uma rede específica, o privilégio aqui dará ao superusuário a capacidade de alterar opções usando o ICMP pacotes.

Você pode vê-lo, ao tentar www.microsoft.comexecutar o ping em sites como o seu, o ping falhará até online, e isso porque os roteadores da Microsoft bloqueiam ICMP_requests.

Portanto, o linux protege o sistema de usuários não privilegiados, para que eles não possam usar esses comandos para atacar.

nux
fonte
3
Normalmente, restrições contra usuários não privilegiados são usadas para proteger o sistema contra ataques - e não como um vetor para atacar outros sistemas. Isso não faz muito sentido para mim - você conhece alguma documentação que apóie isso?
Iszi,
3

Eu acho que você tem que ler este http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html

No link acima:

TracePath

O Tracepath rastreia um caminho para um endereço de rede designado, relatando o "tempo de vida" ou o atraso TTL e as unidades máximas de transmissão (MTU) ao longo do caminho. Este comando pode ser executado por qualquer 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 fornecerá apenas o valor TTL. Se você deseja dados adicionais, solicite essas variáveis ​​na linha de comandos. Além disso, o traceroute requer acesso de superusuário para executar o comando em uma caixa 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.

rɑːdʒɑ
fonte
Obrigado pelo link, mas você poderia colocar algum conteúdo real em sua resposta?
213 Iszi
Oi bodhi.zazen, obrigado por melhorar meu post. :) #
21312
5
Obrigado pelo esclarecimento. No entanto, a resposta aqui (ainda não foi possível revisar o link) ainda está faltando duas partes da pergunta: Por que o tracerouteacesso de superusuário requer (especialmente porque parece realmente menor do que o tracepathpadrão)? E, além dos cenários em que você não é um superusuário, por que você deve escolher um sobre o outro?
Iszi
1

pinge tracerouteuse o protocolo ICMP. Como o UDP e o TCP, isso é acessível através da API de soquetes normais. Somente números de porta UDP e TCP menores que 1024 são protegidos contra uso, exceto pela raiz. O ICMP está disponível gratuitamente para todos os usuários.

Se você realmente deseja ver como o ping e o traceroute funcionam, você pode baixar um exemplo de implementação de código C para eles no CodeProject .

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

Fonte: Link

Ahmadgeo
fonte
Além disso; O tracepath usa UDP que, além das opções de UDP no próprio traceroute, não requer privilégios elevados.
Ahmadgeo 7/03/14