Quali sono le differenze significative tra tracepath e traceroute?


58

Di recente ho letto un articolo su HowToGeek che mi fa grattare un po 'la testa. Ho comunque poca esperienza con Linux, quindi perdonami se questo è entry-level:

"Il comando tracepath è simile a traceroute, ma non richiede i privilegi di root."

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

In che modo traceroute e tracepath svolgono diversamente una funzione simile?

Cosa fa traceroute, che richiede i privilegi di root, che tracepath non fa?

Ci sono scenari in cui si dovrebbe preferire tracepath a traceroute o viceversa?

Risposte:


57

In che modo traceroute e tracepath svolgono diversamente una funzione simile?

Entrambi i programmi essenzialmente fanno una cosa: inviare e ricevere determinati pacchetti IP.

A tale scopo, è possibile utilizzare l'API socket normale oppure manipolare i pacchetti non elaborati dall'interfaccia. L'API socket non richiede i privilegi di root, perché è abbastanza sicura. Esistono meccanismi integrati per impedire a un programma di accedere ai pacchetti IP creati da un altro programma.

Tracepath utilizza l'API socket per tutte le sue funzionalità. Traceroute manipola i pacchetti grezzi per alcune delle sue funzionalità.

Cosa fa traceroute, che richiede i privilegi di root, che tracepath non fa?

Manipola i pacchetti grezzi.

Per manipolare i pacchetti non elaborati, sono necessari i privilegi di root poiché, in questo modo, si ignorano i meccanismi di sicurezza dell'API socket. È possibile accedere alle comunicazioni di tutti gli altri processi e utenti utilizzando tale interfaccia. Pensa solo a cosa potrebbe fare un virus se fosse in grado di manipolare pacchetti grezzi.

Ci sono scenari in cui si dovrebbe preferire tracepath a traceroute o viceversa?

Un comando avanzato disponibile in Traceroute è la possibilità di eseguire una traccia di rete utilizzando il protocollo IPv4 o IPv6. È anche possibile scegliere tra i formati di dati ICMP, TCP o UDP per un probe. Traceroute può scegliere instradamenti di origine specifici per il probe e scegliere da quale porta inviare. Può impostare limiti sul TTL minimo e massimo da accettare da una sonda in uscita. Inoltre, Traceroute può mostrare il tempo di attesa per i ping di risposta, nonché impostare il numero di pacchetti inviati in ciascun probe e il numero di probe da inviare. Alcuni di questi comandi potrebbero non essere supportati dall'hardware di rete lungo il percorso, che potrebbe terminare il probe prima che raggiunga la destinazione di destinazione.

fonti: 1 2 3


1
Infine, una risposta con un legittimo problema di sicurezza che interessa il sistema locale. Grazie!
Iszi,

10

È possibile utilizzare tracerouteper l'analisi di rete avanzata, è possibile scegliere tra i protocolli IPv4 e Ipv6, è inoltre possibile scegliere tra i formati di dati ICMP, TCP o UDP per un probe.

Quindi tracerouteha opzioni più avanzate rispetto alle tracepathquali utilizza i pacchetti UDP per la traccia.

Ora sui privilegi di superutente :

puoi utilizzare traceroutesia un utente normale che un superutente che dipende dall'opzione che desideri utilizzare, ecco un esempio:

inserisci qui la descrizione dell'immagine

Qui stiamo usando i pacchetti UDP che non richiedono privilegi di superutente

inserisci qui la descrizione dell'immagine

Qui stiamo usando i pacchetti di eco ICMP che richiedono privilegi.

Con i pacchetti ICMP puoi effettuare attacchi DDOS.

Per saperne di più sulle opzioni ICMP Pagina man di Traceroute

Per visualizzare le tracerouteopzioni digitare nel terminaleman traceroute

L'ICMP necessita di privilegi di superutente, per garantire che solo gli amministratori possano utilizzare alcune delle sue opzioni, poiché può essere utilizzato per effettuare il ping della morte e la raccolta di informazioni su una rete specifica, il privilegio qui darà al superutente la possibilità di modificare le opzioni utilizzando ICMP pacchetti.

Che puoi vederlo, quando provi a eseguire il ping di siti Web simili www.microsoft.com, il tuo ping fallirà anche online, e questo perché i router Microsoft bloccano le richieste ICMP.

Quindi Linux protegge il sistema da utenti non privilegiati, quindi non possono usare questi comandi per attaccare.


3
In genere, le restrizioni contro gli utenti non privilegiati vengono utilizzate per proteggere il sistema dagli attacchi , non dall'utilizzo come vettore per attaccare altri sistemi. Questo non ha molto senso per me - conosci qualche documentazione che lo sostenga?
Iszi,

3

penso che devi leggere questo http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html

Dal link sopra:

tracepath

Tracepath traccia un percorso verso un indirizzo di rete designato, riportando lungo il percorso il "tempo di vita" o il ritardo TTL e le unità di trasmissione massime (MTU). Questo comando può essere eseguito da qualsiasi altro utente con accesso al prompt della riga di comando.


Nozioni di base di Traceroute

Traceroute è essenzialmente lo stesso di Tracepath tranne che per impostazione predefinita, fornirà solo il valore TTL. Se si desidera ulteriori dati, è necessario richiedere tali variabili sulla riga di comando. Inoltre, traceroute richiede l'accesso da superutente per eseguire il comando su un box Linux e alcune richieste di dati avanzate potrebbero non essere supportate da tutti i router lungo il percorso. In un ambiente Windows, qualsiasi utente con accesso alla riga di comando può eseguire Traceroute.


Grazie per il link, ma potresti inserire alcuni contenuti reali nella tua risposta?
Iszi,

Ciao bodhi.zazen, grazie per aver migliorato il mio post. :)
rɑːdʒɑ

5
Grazie per il chiarimento. Tuttavia, la risposta qui (non hanno ottenuto di rivedere il legame ancora) manca ancora due parti della questione: perché non tracerouterichiede l'accesso superutente (soprattutto dal momento che sembra in realtà lo fa meno di quanto tracepathdi default)? E, a parte gli scenari in cui sei non un superuser, perché si dovrebbe scegliere uno sopra l'altro?
Iszi,

1

pinge tracerouteutilizzare il protocollo ICMP. Come UDP e TCP, questo è accessibile tramite la normale API socket. Solo i numeri di porta UDP e TCP inferiori a 1024 sono protetti dall'uso, tranne che da root. ICMP è disponibile gratuitamente per tutti gli utenti.

Se vuoi davvero vedere come funzionano ping e traceroute puoi scaricare un esempio di implementazione del codice C da CodeProject .

In breve, aprono semplicemente un socket ICMP e traceroute modifica gli incrementi del TTL usando setsockopt fino a raggiungere l'obiettivo.

Fonte: Link


Anche; tracepath usa UDP che, oltre alle opzioni UDP nello stesso traceroute, non richiede privilegi elevati.
Ahmadgeo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.