Jakie są znaczące różnice między tracepath a traceroute?

58

Niedawno przeczytałem trochę artykułu na temat HowToGeek, w którym trochę podrapałem się po głowie. Mam dość małe doświadczenie z Linuksem, więc wybacz mi, jeśli jest to poziom podstawowy:

„Polecenie tracepath jest podobne do polecenia traceroute, ale nie wymaga uprawnień administratora.”

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

W jaki sposób traceroute i tracepath pełnią podobną funkcję w różny sposób?

Co robi traceroute, który wymaga uprawnień roota, a ścieżka tracepout nie?

Czy istnieją scenariusze, w których należy preferować ścieżkę śledzenia zamiast traceroute lub odwrotnie?

Iszi
źródło

Odpowiedzi:

57

W jaki sposób traceroute i tracepath pełnią podobną funkcję w różny sposób?

Oba programy zasadniczo wykonują jedną rzecz: wysyłają i odbierają określone pakiety IP.

W tym celu można użyć zwykłego interfejsu API gniazd lub manipulować pakietami raw z interfejsu. Interfejs API gniazd nie wymaga uprawnień administratora, ponieważ jest dość bezpieczny. Istnieją wbudowane mechanizmy zapobiegające dostępowi jednego programu do pakietów IP utworzonych przez inny program.

Tracepath używa interfejsu API gniazd dla całej swojej funkcjonalności. Traceroute manipuluje pakietami raw pod kątem niektórych funkcji.

Co robi traceroute, który wymaga uprawnień roota, a ścieżka tracepout nie?

Manipuluje pakietami raw.

Aby manipulować pakietami surowymi, potrzebujesz uprawnień roota, ponieważ robiąc to, omijasz mechanizmy bezpieczeństwa interfejsu API gniazd. Uzyskujesz dostęp do komunikacji wszystkich innych procesów i użytkowników korzystających z tego interfejsu. Pomyśl tylko, co mógłby zrobić wirus, gdyby mógł manipulować pakietami raw.

Czy istnieją scenariusze, w których należy preferować ścieżkę śledzenia zamiast traceroute lub odwrotnie?

Jedną z zaawansowanych komend dostępnych w Traceroute jest możliwość uruchomienia śledzenia sieci przy użyciu protokołu IPv4 lub IPv6. Możliwe jest również wybranie między sondami formatów danych ICMP, TCP lub UDP. Traceroute może wybrać określone trasy źródła dla sondy i wybrać port, z którego ma zostać wysłany. Może ustawić limity minimalnego i maksymalnego TTL do akceptowania z sondy wychodzącej. Ponadto Traceroute może pokazywać czas oczekiwania na pingi odpowiedzi, a także ustawiać liczbę pakietów wysyłanych w każdej sondzie i liczbę sond do wysłania. Niektóre z tych poleceń mogą nie być obsługiwane przez sprzęt sieciowy na ścieżce, który może zakończyć sondę, zanim dotrze ona do miejsca docelowego.

źródła: 1 2 3

Galgalesh
źródło
1
Wreszcie odpowiedź z uzasadnionym problemem dotyczącym bezpieczeństwa, który wpływa na system lokalny. Dzięki!
Iszi
10

Możesz używać traceroutedo zaawansowanego śledzenia sieci, możesz wybierać między protokołami IPv4 i Ipv6, możesz także wybierać między formatami danych ICMP, TCP lub UDP dla sondy.

tracerouteMa więc bardziej zaawansowane opcje, niż tracepathwykorzystuje do śledzenia pakiety UDP.

Teraz o uprawnieniach administratora :

możesz używać traceroutezarówno z normalnym użytkownikiem, jak i superużytkownikiem, który zależy od opcji, której chcesz użyć, oto przykład:

wprowadź opis zdjęcia tutaj

Tutaj używamy pakietów UDP, które nie wymagają uprawnień administratora

wprowadź opis zdjęcia tutaj

Tutaj używamy pakietów echa ICMP, które wymagają uprawnień.

Za pomocą pakietów ICMP możesz wykonać atak DDOS.

Aby dowiedzieć się o opcjach ICMP Strona podręcznika Traceroute

Aby wyświetlić tracerouteopcje, wpisz terminalman traceroute

ICMP potrzebuje uprawnień superużytkownika, aby zapewnić, że tylko administratorzy mogą korzystać z niektórych jego opcji, ponieważ można go użyć do pingowania śmierci i zbierania informacji o określonej sieci, tutaj przywilej da superużytkownikowi możliwość zmiany opcji za pomocą ICMP pakiety

Że możesz to zobaczyć, gdy próbujesz pingować tak strony internetowe www.microsoft.com, twój ping zakończy się niepowodzeniem nawet w trybie online, a to dlatego, że routery Microsoft blokują żądania ICMP.

Tak więc linux chroni system przed nieuprzywilejowanym użytkownikiem, więc nie mogą używać tych poleceń do atakowania.

nux
źródło
3
Zazwyczaj ograniczenia w stosunku do nieuprzywilejowanych użytkowników są stosowane w celu ochrony systemu przed atakiem - a nie przed użyciem go jako wektora do atakowania innych systemów. Nie ma to dla mnie sensu - czy znasz jakieś dokumenty, które to potwierdzają?
Iszi
3

myślę, że musisz przeczytać ten http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html

Z powyższego linku:

TracePath

Tracepath śledzi ścieżkę do wyznaczonego adresu sieciowego, zgłaszając po drodze „czas do życia” lub opóźnienie TTL i maksymalne jednostki transmisji (MTU). To polecenie może być uruchomione przez dowolnego użytkownika z dostępem do wiersza polecenia.


Podstawy Traceroute

Traceroute jest zasadniczo taki sam jak Tracepath, z tą różnicą, że domyślnie podaje tylko wartość TTL. Jeśli chcesz dodatkowych danych, musisz zażądać tych zmiennych w wierszu poleceń. Ponadto traceroute wymaga dostępu administratora do uruchomienia komendy na Linux-ie, a niektóre zaawansowane żądania danych mogą nie być obsługiwane przez wszystkie routery na ścieżce. W środowisku Windows każdy użytkownik mający dostęp do wiersza poleceń może uruchomić Traceroute.

rɑːdʒɑ
źródło
Dziękuję za link, ale czy mógłbyś zamieścić w odpowiedzi trochę rzeczywistych treści?
Iszi
Cześć bodhi.zazen, dziękuję za ulepszenie mojego postu. :)
rɑːdʒɑ
5
Dziękuję za wyjaśnienie. Jednak odpowiedź tutaj (nie dostał się do przeglądu jeszcze link) jest nadal brakuje dwóch części pytania: Dlaczego nie traceroutewymagają dostępu administratora (zwłaszcza, że rzeczywiście wydaje się nie mniej niż tracepathdomyślnie)? A oprócz scenariuszach, w których przebywa nie superużytkownikiem, dlaczego należy wybrać jeden nad drugim?
Iszi
1

pingi tracerouteużyj protokołu ICMP. Podobnie jak UDP i TCP jest to dostępne poprzez normalne API gniazd. Tylko numery portów UDP i TCP mniejsze niż 1024 są chronione przed użyciem, inne niż przez root. ICMP jest dostępny bezpłatnie dla wszystkich użytkowników.

Jeśli naprawdę chcesz zobaczyć, jak działają ping i traceroute, możesz pobrać dla nich przykładową implementację kodu C z CodeProject .

Krótko mówiąc, po prostu otwierają gniazdo ICMP, a traceroute zmienia przyrosty TTL za pomocą setsockopt, aż do osiągnięcia celu.

Źródło: Link

Ahmadgeo
źródło
Również; tracepath używa UDP, który - oprócz opcji UDP w samym traceroute - nie wymaga podwyższonych uprawnień.
Ahmadgeo,