最近、HowToGeekの記事を少し読んで、頭を少し傷つけました。Linuxの経験はかなり少ないので、これがエントリーレベルの場合はご容赦ください。
「tracepathコマンドはtracerouteに似ていますが、root権限を必要としません。」
tracerouteとtracepathはどのように似たような機能を実行しますか?
root権限を必要とするtracerouteは何をしますか?
tracerouteよりもtracepathを好む、またはその逆のシナリオがありますか?
最近、HowToGeekの記事を少し読んで、頭を少し傷つけました。Linuxの経験はかなり少ないので、これがエントリーレベルの場合はご容赦ください。
「tracepathコマンドはtracerouteに似ていますが、root権限を必要としません。」
tracerouteとtracepathはどのように似たような機能を実行しますか?
root権限を必要とするtracerouteは何をしますか?
tracerouteよりもtracepathを好む、またはその逆のシナリオがありますか?
回答:
どちらのプログラムも基本的に1つのことを行います。特定のIPパケットを送受信します。
通常のソケットAPIを使用してこれを行うか、インターフェースから生のパケットを操作できます。ソケットAPIは、かなり安全であるため、ルート特権を必要としません。あるプログラムが別のプログラムが作成したIPパケットにアクセスするのを防ぐためのメカニズムが組み込まれています。
Tracepathは、すべての機能にソケットAPIを使用します。Tracerouteは、一部の機能のためにrawパッケージを操作します。
生のパッケージを操作します。
生のパケットを操作するには、root権限が必要です。これを行うと、ソケットAPIのセキュリティメカニズムがバイパスされるためです。そのインターフェイスを使用して、他のすべてのプロセスとユーザーの通信にアクセスできます。生のパッケージを操作できる場合、ウイルスが何ができるかを考えてください。
Tracerouteで使用できる高度なコマンドの1つは、IPv4またはIPv6プロトコルを使用してネットワークトレースを実行する機能です。プローブのICMP、TCP、またはUDPデータ形式を選択することもできます。Tracerouteは、プローブの特定のソースルーティングを選択し、送信元のポートを選択できます。アウトバウンドプローブから受け入れる最小および最大TTLに制限を設定できます。さらに、Tracerouteは、応答pingの待機時間を表示し、各プローブで送信するパケットの数と送信するプローブの数を設定できます。これらのコマンドの一部は、パスに沿ったネットワークハードウェアによってサポートされていない場合があり、ターゲットの宛先に到達する前にプローブを終了する可能性があります。
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は特権のないユーザーからシステムを保護するため、このコマンドを使用して攻撃することはできません。
このhttp://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.htmlを読む必要があると思います
上記のリンクから:
TracePath
Tracepathは、指定されたネットワークアドレスへのパスをトレースし、「存続可能時間」またはTTLラグと最大伝送単位(MTU)を途中で報告します。このコマンドは、コマンドラインプロンプトにアクセスできる他のユーザーが実行できます。
Tracerouteの基本
Tracerouteは、デフォルトでTTL値のみを提供することを除いて、Tracepathと基本的に同じです。追加のデータが必要な場合は、コマンドラインでこれらの変数を要求する必要があります。また、tracerouteは、Linuxボックスでコマンドを実行するためにスーパーユーザーアクセスを必要とし、一部の高度なデータ要求は、パスに沿ったすべてのルーターでサポートされない場合があります。Windows環境では、コマンドラインにアクセスできるすべてのユーザーがTracerouteを実行できます。
traceroute
(それは実際にはそれがないようですので、特にスーパーユーザーのアクセスを必要と少ないよりも、tracepath
デフォルトでは)?そして、あなたがスーパーユーザーではないシナリオは別として、なぜあなたは一方を他方よりも選ばなければならないのですか?
ping
traceroute
ICMPプロトコルを使用します。UDPやTCPと同様に、これは通常のソケットAPIを介してアクセスできます。ルート以外の使用から保護されているのは、1024未満のUDPおよびTCPポート番号のみです。ICMPはすべてのユーザーが自由に利用できます。
pingとtracerouteがどのように機能するかを本当に見たい場合は、CodeProjectからCコードの実装例をダウンロードできます。
つまり、ICMPソケットを簡単に開き、setsockoptを使用してターゲットに到達するまでtracerouteがTTLの増分を変更します。
ソース:リンク