Каковы существенные различия между tracepath и traceroute?
Недавно я прочитал небольшую статью о HowToGeek, в которой я немного почесал голову. У меня довольно мало опыта работы с Linux, так что извините, если это начальный уровень:
"Команда tracepath похожа на traceroute, но она не требует привилегий root".
Как traceroute и tracepath выполняют сходную функцию по-разному?
Что делает traceroute, для чего требуются права суперпользователя, а чего нет?
Существуют ли сценарии, в которых лучше использовать tracepath, а не traceroute, или наоборот?
4 ответа
Как traceroute и tracepath выполняют сходную функцию по-разному?
Обе программы по существу делают одно: отправляют и получают определенные IP-пакеты.
Для этого вы можете использовать обычный API сокетов или манипулировать необработанными пакетами из интерфейса. API сокетов не требует привилегий суперпользователя, поскольку он достаточно безопасен. Существуют механизмы, встроенные для предотвращения доступа одной программы к IP-пакетам, созданным другой программой.
Tracepath использует API сокетов для всей своей функциональности. Traceroute манипулирует необработанными пакетами для некоторых своих функций.
Что делает traceroute, для чего требуются права суперпользователя, а чего нет?
Он манипулирует необработанными пакетами.
Чтобы манипулировать необработанными пакетами, вам нужны привилегии суперпользователя, потому что, делая это, вы обходите механизмы безопасности API сокетов. Вы получаете доступ к сообщениям всех других процессов и пользователей, использующих этот интерфейс. Подумайте, что мог бы сделать вирус, если бы мог манипулировать необработанными пакетами.
Существуют ли сценарии, в которых лучше использовать tracepath, а не traceroute, или наоборот?
Одна из расширенных команд, доступных в Traceroute, - это возможность запуска сетевой трассировки с использованием протокола IPv4 или IPv6. Для зонда также можно выбирать между форматами данных ICMP, TCP или UDP. Traceroute может выбрать конкретные исходные маршруты для зонда и выбрать порт для отправки. Он может устанавливать пределы минимального и максимального TTL для приема от исходящего зонда. Кроме того, Traceroute может показывать время ожидания для ответных эхо-запросов, а также устанавливать, сколько пакетов отправляется в каждом тесте и сколько тестов для отправки. Некоторые из этих команд могут не поддерживаться сетевым оборудованием вдоль пути, которое может завершить зонд до того, как он достигнет своего конечного пункта назначения.
Ты можешь использовать traceroute
для расширенной сетевой трассировки вы можете выбирать между протоколами IPv4 и Ipv6, вы также можете выбирать между форматами данных ICMP, TCP или UDP для зонда.
Так traceroute
имеет более продвинутые варианты, чем tracepath
который использует UDP-пакеты для трассировки.
Теперь о привилегиях суперпользователя:
ты можешь использовать traceroute
с обычным пользователем и суперпользователем, который зависит от опции, которую вы хотите использовать, вот пример:
Здесь мы используем UDP- пакеты, которым не нужны привилегии суперпользователя
Здесь мы используем эхо-пакеты ICMP, которым нужны привилегии.
С помощью ICMP- пакетов вы можете совершить DDOS-атаку.
Чтобы узнать о возможностях ICMP Traceroute Man Page
Смотреть traceroute
варианты введите в терминале man traceroute
ICMP нужны привилегии суперпользователя, чтобы гарантировать, что только администраторы могут использовать некоторые из его опций, потому что он может быть использован для проверки смерти и сбора информации о конкретной сети, привилегия здесь даст суперпользователю возможность изменять опции, используя ICMP пакеты.
То, что вы можете увидеть, когда вы пытаетесь пинговать так, как веб-сайты www.microsoft.com
ваш пинг не будет работать даже в сети, и это потому, что маршрутизаторы Microsoft блокируют ICMP_requests .
Поэтому linux защищает систему от непривилегированного пользователя, поэтому они не могут использовать эти команды для атаки.
Я думаю, что вы должны прочитать это http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html
Из приведенной выше ссылки:
TracePath
Tracepath отслеживает путь к назначенному сетевому адресу, сообщая о "времени жизни" или задержке TTL и максимальных единицах передачи (MTU) по пути. Эта команда может быть запущена любым пользователем, имеющим доступ к командной строке.
Основы Traceroute
Traceroute по сути такой же, как Tracepath, за исключением того, что по умолчанию он будет давать только значение TTL. Если вам нужны дополнительные данные, вы должны запросить эти переменные в командной строке. Кроме того, для трассировки маршрута требуется наличие прав суперпользователя для запуска команды на компьютере с Linux, а некоторые расширенные запросы данных могут поддерживаться не всеми маршрутизаторами по пути. В среде Windows любой пользователь, имеющий доступ к командной строке, может запустить Traceroute.
ping
а также traceroute
используйте протокол ICMP. Как и UDP и TCP, это доступно через обычный API сокетов. Только номера портов UDP и TCP менее 1024 защищены от использования, кроме как root. ICMP свободно доступен для всех пользователей.
Если вы действительно хотите увидеть, как работают ping и traceroute, вы можете загрузить пример реализации кода C для них из CodeProject.
Короче говоря, они просто открывают сокет ICMP, и traceroute изменяет приращения TTL, используя setsockopt, пока цель не будет достигнута.
Источник: Ссылка