tracepathとtracerouteの大きな違いは何ですか?


58

最近、HowToGeekの記事を少し読んで、頭を少し傷つけました。Linuxの経験はかなり少ないので、これがエントリーレベルの場合はご容赦ください。

「tracepathコマンドはtracerouteに似ていますが、root権限を必要としません。」

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

tracerouteとtracepathはどのように似たような機能を実行しますか?

root権限を必要とするtracerouteは何をしますか?

tracerouteよりもtracepathを好む、またはその逆のシナリオがありますか?

回答:


57

tracerouteとtracepathはどのように似たような機能を実行しますか?

どちらのプログラムも基本的に1つのことを行います。特定のIPパケットを送受信します。

通常のソケットAPIを使用してこれを行うか、インターフェースから生のパケットを操作できます。ソケットAPIは、かなり安全であるため、ルート特権を必要としません。あるプログラムが別のプログラムが作成したIPパケットにアクセスするのを防ぐためのメカニズムが組み込まれています。

Tracepathは、すべての機能にソケットAPIを使用します。Tracerouteは、一部の機能のためにrawパッケージを操作します。

root権限を必要とするtracerouteは何をしますか?

生のパッケージを操作します。

生のパケットを操作するには、root権限が必要です。これを行うと、ソケットAPIのセキュリティメカニズムがバイパスされるためです。そのインターフェイスを使用して、他のすべてのプロセスとユーザーの通信にアクセスできます。生のパッケージを操作できる場合、ウイルスが何ができるかを考えてください。

tracerouteよりもtracepathを好む、またはその逆のシナリオがありますか?

Tracerouteで使用できる高度なコマンドの1つは、IPv4またはIPv6プロトコルを使用してネットワークトレースを実行する機能です。プローブのICMP、TCP、またはUDPデータ形式を選択することもできます。Tracerouteは、プローブの特定のソースルーティングを選択し、送信元のポートを選択できます。アウトバウンドプローブから受け入れる最小および最大TTLに制限を設定できます。さらに、Tracerouteは、応答pingの待機時間を表示し、各プローブで送信するパケットの数と送信するプローブの数を設定できます。これらのコマンドの一部は、パスに沿ったネットワークハードウェアによってサポートされていない場合があり、ターゲットの宛先に到達する前にプローブを終了する可能性があります。

ソース: 1 2 3


1
最後に、ローカルシステムに影響を与える正当なセキュリティ上の懸念がある回答。ありがとう!
イッツィー14年

10

traceroute高度なネットワークトレースに使用でき、IPv4プロトコルとIpv6プロトコルのいずれかを選択できます。また、プローブのICMP、TCP、またはUDPデータ形式を選択できます。

したがって、トレースにUDPパケットを使用tracerouteするよりも高度なオプションがtracepathあります。

次に、スーパーユーザー権限について :

traceroute通常のユーザーと、使用するオプションに依存するスーパーユーザーの両方で使用できます。以下に例を示します。

ここに画像の説明を入力してください

ここでは、スーパーユーザー権限を必要としないUDPパケットを使用しています

ここに画像の説明を入力してください

ここでは、特権が必要なICMPエコーパケットを使用しています

ICMPパケットにより、DDOS攻撃を行うことができます。

ICMPオプションについて知るにはTracerouteのマニュアルページ

tracerouteターミナルでオプションタイプを表示するにはman traceroute

ICMPにはスーパーユーザー権限が必要です。管理者だけがそのオプションの一部を使用できるようにするには、特定のネットワークに関する情報を収集して死のpingを行うために使用できるため、ここでの特権はスーパーユーザーがICMPを使用してオプションを変更できるようにしますパケット。

あなたがそれを見ることができるようにwww.microsoft.com、ウェブサイトのようなpingをしようとすると、あなたのpingはオンラインでも失敗します、そしてそれはMicrosoftのルーターがICMP_requestsをブロックするからです。

したがって、Linuxは特権のないユーザーからシステムを保護するため、このコマンドを使用して攻撃することはできません。


3
通常、権限のないユーザーに対する制限は、システムが攻撃されないように保護するために使用されます。他のシステムを攻撃するためのベクトルとして使用されることはありません。これは私にはあまり意味がありません-これを裏付けるドキュメントを知っていますか?
イッツィ14年

3

このhttp://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.htmlを読む必要があると思います

上記のリンクから:

TracePath

Tracepathは、指定されたネットワークアドレスへのパスをトレースし、「存続可能時間」またはTTLラグと最大伝送単位(MTU)を途中で報告します。このコマンドは、コマンドラインプロンプトにアクセスできる他のユーザーが実行できます。


Tracerouteの基本

Tracerouteは、デフォルトでTTL値のみを提供することを除いて、Tracepathと基本的に同じです。追加のデータが必要な場合は、コマンドラインでこれらの変数を要求する必要があります。また、tracerouteは、Linuxボックスでコマンドを実行するためにスーパーユーザーアクセスを必要とし、一部の高度なデータ要求は、パスに沿ったすべてのルーターでサポートされない場合があります。Windows環境では、コマンドラインにアクセスできるすべてのユーザーがTracerouteを実行できます。


リンクをお寄せいただきありがとうございますが、実際のコンテンツを回答に入れていただけますか?
イッツィ

こんにちはbodhi.zazen、私の投稿を改善してくれてありがとう。:)
rɑːdʒɑ

5
説明をありがとう。:しかし、ここでの答えはまだ質問の2つの部分が欠落している(まだリンクを見直すもらっていない) のはなぜtraceroute(それは実際にはそれがないようですので、特にスーパーユーザーのアクセスを必要と少ないよりも、tracepathデフォルトでは)?そして、あなたがスーパーユーザーではないシナリオは別として、なぜあなたは一方を他方よりも選ばなければならないのですか?
イッツィ

1

pingtracerouteICMPプロトコルを使用します。UDPやTCPと同様に、これは通常のソケットAPIを介してアクセスできます。ルート以外の使用から保護されているのは、1024未満のUDPおよびTCPポート番号のみです。ICMPはすべてのユーザーが自由に利用できます。

pingとtracerouteがどのように機能するかを本当に見たい場合は、CodeProjectからCコードの実装例をダウンロードできます。

つまり、ICMPソケットを簡単に開き、setsockoptを使用してターゲットに到達するまでtracerouteがTTLの増分を変更します。

ソース:リンク


また; tracepathはUDPを使用します。これは、traceroute自体のUDPオプションに加えて、昇格した特権を必要としません。
アーマドジオ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.