学校ネットワークの経路追跡とping

学校ネットワークの経路追跡とping

私たちの学校にはサーバーがあります。traceroute学校ネットワーク内のホストにコマンドを実行すると、そのホストにアクセスできます。例えば、

traceroute hostname.xxx.edu

traceroute to hostname.xxx.edu (xxx.xxx.xx.xx), 30 hops max, 40 byte packets
 1  reserved-xxx-2.xxx.edu (xxx.xxx.xxx.x)  0.858 ms  0.924 ms  0.980 ms
 2  hostname.xxx.edu (xxx.xxx.xx.xx)  0.446 ms !X  0.438 ms !X  0.423 ms !X

同様にping hostname.xxx.edu正常に実行されます。

しかし試してみると、

traceroute to www.google.com (64.233.160.99), 30 hops max, 40 byte packets
 1  reserved-xxx-2.xxx.edu (xxx.xxx.xxx.x)  34.605 ms  34.658 ms  34.711 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  *

だから試してみるとping www.google.com期待通りに失敗します。

質問

私が知っているのは、学校ネットワークのファイアウォールが私のサーバーが外部の世界と通信するのをブロックしていることです。そうですか?

しかし、このようなコマンドを実行すると、curl www.google.com完璧な出力が得られます。実際、私はこのサーバーでシェルスクリプトを使用してWebサイトから多くの情報を抽出しました。ファイアウォールが私のサーバーへの外部アクセスをブロックする場合、シェルスクリプトはどのように機能しますか?

答え1

はい、ファイアウォールが原因でTracerouteが成功しない可能性があります。障害の原因を理解するには、tracerouteマニュアルページを参照するのが最善です。

抜粋

このプログラムは小さなttl(Time to Live)でプローブパケットを開始し、ゲートウェイからICMP「タイムアウト」応答を受信して​​インターネットホストへのIPパケットの経路を追跡しようとします。

ttl 1でプローブを開始し、ICMP「ポート到達不能」(またはTCPリセット)が発生するまで1ずつインクリメントします.これは、「ホスト」に達するか最大値に達することを意味します(デフォルトは30ホップ)。 。

ttl設定(デフォルト)ごとに3つのプローブが送信され、各プローブのttl、ゲートウェイアドレス、および往復時間を示す行が印刷されます。リクエストに応じて住所に追加情報を追加できます。プローブ応答が別のゲートウェイから来る場合、各応答システムのアドレスが印刷されます。 5.0秒(デフォルト)以内に応答がない場合、検出器に「*」(アスタリスク)が印刷されます。

したがって、アスタリスクはタイムアウト(5.0秒以上)でパケットをルーティングするサーバーなので、デフォルトtracerouteで印刷されます*

障害を引き起こすもう1つの原因は、traceroute途中のサーバー/ルーターがICMP(またはping)パケットに応答しないように構成されている場合です。実際の宛先に送信されるすべてのパケットのTTL(Time To Live)を増やして各サーバーを誘導するTracerouteのトリックは、pingに応答しないと失敗します。

メモ:マニュアルページにもこれに関する警告がありますtraceroute

抜粋

現代のネットワーク環境では、ファイアウォールの広範な使用により、従来の経路追跡方法が必ずしも適用可能ではない。これらのファイアウォールは、「不可能」UDPポートだけでなくICMPエコーまでフィルタリングします。この問題を解決するために、いくつかの追加のパス追跡メソッド(tcpを含む)が実装されています。下記の利用可能なメソッドのリストをご覧ください。これらの方法は、ファイアウォールをバイパスするために特定のプロトコルと送信元/宛先ポートを使用しようとします(これは許可されたネットワークセッションタイプの開始と見なされます)。

したがって、構成方法に応じて、tracerouteICMP、UDP、またはTCPパケットを使用して、AポイントからBポイントへのパケットルーティングを処理するさまざまなシステムで応答を誘導できます。

tracerouteマニュアルページをもう一度参照して、次の3つのオプションを確認してください。

   -I, --icmp
          Use ICMP ECHO for probes

   -T, --tcp
          Use TCP SYN for probes

   -U, --udp
          Use UDP to particular destination port for tracerouting (instead 
          of increasing the port per each probe). Default port is 53 (dns).

もちろんもっとあります。参考利用可能な方法のリスト完全なリストをチェックしてください。

カールはどうですか?

企業や大学などの境界ファイアウォールでよく見られるように、ターゲットポート80(HTTP)と443(HTTPS)へのトラフィックのみが許可されています。それは完全に可能ですICMP ECHO_REQUESTパケットは大学ファイアウォールによって破棄されます。これは、大学ネットワーク外のサーバーにアクセスし始めたときにアスタリスクが表示される理由を示しています。

パケットはポート80を通過するため、これを利用して特定のポートtraceroute(この場合は80)でTCPを使用して必要なものを取得できます。

はい

$ sudo traceroute -T -p 80 www.google.com
traceroute to www.google.com (173.194.46.81), 30 hops max, 60 byte packets
 1  byers.bubba.net (192.168.1.6)  3.265 ms  3.236 ms  3.213 ms
 2  * * *
 3  24.93.10.17 (24.93.10.17)  21.359 ms  35.414 ms  48.045 ms
 4  rdc-72-230-153-79.wny.east.twcable.com (72.230.153.79)  48.064 ms  48.044 ms  54.523 ms
 5  rdc-72-230-153-243.wny.east.twcable.com (72.230.153.243)  70.067 ms  70.013 ms  73.312 ms
 6  be35.cr0.chi10.tbone.rr.com (107.14.19.104)  73.201 ms be45.cr0.chi10.tbone.rr.com (107.14.19.106)  62.289 ms be35.cr0.chi10.tbone.rr.com (107.14.19.104)  65.485 ms
 7  ae0.pr1.chi10.tbone.rr.com (107.14.17.192)  62.056 ms  48.685 ms ae1.pr1.chi10.tbone.rr.com (107.14.17.194)  32.193 ms
 8  * * *
 9  209.85.254.130 (209.85.254.130)  42.624 ms  45.159 ms  42.777 ms
10  * * *
11  ord08s11-in-f17.1e100.net (173.194.46.81)  48.036 ms  42.543 ms  44.751 ms

答え2

私が知っているのは、学校ネットワークのファイアウォールが私のサーバーが外部の世界と通信するのをブロックしていることです。そうですか?

いいえ、ほとんどすべてのトラフィックをブロックしているようですが、少なくとも許可しますTCP port 80。 Linuxではtracerouteデフォルトで使用されているため、出力はこれらのトラフィックがファイアウォールによってブロックされているようです。UDPpingICMP

ファイアウォールが私のサーバーへの外部アクセスをブロックする場合、シェルスクリプトはどのように機能しますか?

上記のように、ファイアウォールは少なくとも結果が得られている間(DNSが機能するように)curl www.gooogle.com許可していると確信しています。以下を使用して簡単な確認でこれを主張できます。TCP port 80UDP port 53tracerouteTCP

traceroute -T -p 80 www.google.com

私の結果は次のとおりです。

$ sudo traceroute -T -p 80 www.google.com
[sudo] password for cuonglm: 
traceroute to www.google.com (74.125.128.103), 30 hops max, 60 byte packets
 1  172.16.50.253 (172.16.50.253)  0.133 ms  0.133 ms *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  XXX.XXX (Y.Y.Y.Y)  13.954 ms XXX.XXX (Y.Y.Y.Y)  14.198 ms X.X.X.X (123.29.10.110)  14.140 ms
 9  unknown.telstraglobal.net (134.159.208.165)  85.353 ms  85.349 ms  85.338 ms
10  i-0-2-0-3.hkth-core01.bi.telstraglobal.net (202.84.153.234)  85.780 ms  85.765 ms  85.748 ms
11  i-0-0-0-3.hkth12.bi.telstraglobal.net (202.84.153.182)  85.723 ms i-0-0-0-1.hkth12.bi.telstraglobal.net (202.84.153.150)  86.731 ms i-0-0-0-2.hkth12.bi.telstraglobal.net (202.84.153.178)  85.305 ms
12  72.14.221.126 (72.14.221.126)  51.635 ms  51.535 ms  51.177 ms
13  209.85.241.58 (209.85.241.58)  51.137 ms  51.372 ms  51.086 ms
14  209.85.253.71 (209.85.253.71)  51.601 ms 209.85.253.69 (209.85.253.69)  52.172 ms  51.888 ms
15  * * *
16  hg-in-f103.1e100.net (74.125.128.103)  51.639 ms  52.632 ms  51.670 ms

学ぶ価値がある教訓

ファイアウォール(または同様のセキュリティデバイス)のルールを設定するとき、黄金率はすべて拒否、特定のコンテンツを許可

答え3

学校のファイアウォールは、TCP / 80(WebトラフィックのデフォルトIPポート)以外のポートからのほとんどのアウトバウンドトラフィックをブロックできます。

特にPingと(ほとんどの場合)経路追跡送信ICMP ECHO_REQUEST パケット多くの企業や学校では、ファイアウォールの背後にあるネットワークデバイスに関する情報を見つけるためにICMPトラフィックを使用できるため、ファイアウォールを介してすべてのICMPトラフィックをブロックします。

関連情報