TCP ポート通信を実際にフィルタリングしているものを確認する方法はありますか?

TCP ポート通信を実際にフィルタリングしているものを確認する方法はありますか?
nmap -p 7000-7020 10.1.1.1

フィルタリングされたポートをすべて出力します

Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-04 12:18 EET
Nmap scan report for 10.1.1.1
Host is up (0.00091s latency).
PORT     STATE    SERVICE
7000/tcp filtered afs3-fileserver
7001/tcp filtered afs3-callback
7002/tcp filtered afs3-prserver
7003/tcp filtered afs3-vlserver
7004/tcp filtered afs3-kaserver
7005/tcp filtered afs3-volser
7006/tcp filtered afs3-errors
7007/tcp filtered afs3-bos
7008/tcp filtered afs3-update
7009/tcp filtered afs3-rmtsys
7010/tcp filtered ups-onlinet
7011/tcp filtered unknown
7012/tcp filtered unknown
7013/tcp filtered unknown
7014/tcp filtered unknown
7015/tcp filtered unknown
7016/tcp filtered unknown
7017/tcp filtered unknown
7018/tcp filtered unknown
7019/tcp filtered unknown
7020/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 2.78 seconds

これらのポートをフィルタリングしているものが正確に何であるかを確認する方法はありますか?

答え1

これは、nmapのドキュメントでfiltered状態について述べられていることです

フィルタリング パケット フィルタリングによってプローブがポートに到達できないため、Nmap はポートが開いているかどうかを判断できません。フィルタリングは、専用のファイアウォール デバイス、ルーター ルール、またはホストベースのファイアウォール ソフトウェアによるものである可能性があります...

フィルタリングを実行しているものを確認する唯一の方法は、ユーザーとリモート ターゲットの間にどのような「マシン」が存在するかを知ることです。

これは、特別な TCP パケットを使用して、ユーザーとターゲット間のホストを判別しようとするルート トレース ユーティリティを使用して実現できます。この場合、コマンドは次のようになります。

traceroute 10.1.1.1

自分とターゲットの間にあるマシンがわかったら、それぞれの構成を調査して、フィルタリングが行われているかどうか、また行われている場合はどのように行われているかを確認します。

答え2

Nmap は、フィルタリングの原因に関する詳細情報を取得するいくつかの方法を提供します。

  • この--reasonオプションでは、「フィルタリングされた」ポート状態の原因となった応答の種類が表示されます。これは、「応答なし」や「管理者による禁止」などである可能性があります。
  • 応答パケットの TTL は、ポートの要素reason_ttlの属性として XML 出力に報告されますstate。フィルタリングされたポートの TTL がオープン ポートの TTL と異なる場合 (通常はそれより大きい)、TTL の差はターゲットとフィルタリング デバイス間のネットワーク距離です。ICMP パケットと TCP パケットに異なる初期 TTL を使用するターゲットや、TTL 情報を偽造または上書きするフィルタリング デバイスなどの例外があります。
  • この--traceroute機能は、トラフィックをフィルタリングしている可能性のあるルート上のホップに関する情報を表示します。場合によっては、ホップの 1 つに対する逆 DNS 名が「firewall1.example.com」のようになることもあります。
  • firewalkNSE スクリプトは、パケットがブロックされている場所を見つけるために、ルート上のさまざまなホップでタイムアウトする初期 TTL を持つパケットを送信します。これは、前の 2 つの手法を組み合わせたようなもので、通常は非常にうまく機能します。

現在リリースされていない開発バージョンの Nmap では、オプション付きの通常のテキスト出力で応答パケットの TTL も報告されます-v --reason。ただし、現時点では、この情報を取得するには XML 出力を使用する必要があります。

追加編集:Nmap 6.49BETA1-v --reasonは、またはを使用してテキスト出力で応答パケットの TTL を表示する最初のリリースであり-vv、2015 年 6 月にリリースされました。

答え3

短い答え - いいえ、それを見る方法はありません。

より長い答え:

から:https://nmap.org/book/man-port-scanning-basics.html

「フィルタリングされた Nmap は、パケット フィルタリングによってプローブがポートに到達できないため、ポートが開いているかどうかを判断できません。フィルタリングは、専用のファイアウォール デバイス、ルーター ルール、またはホストベースのファイアウォール ソフトウェアによって行われる可能性があります。これらのポートは、ほとんど情報を提供しないため、攻撃者を困惑させます。タイプ 3 コード 13 (宛先に到達できません: 通信が管理上禁止されています) などの ICMP エラー メッセージで応答する場合もありますが、応答せずにプローブをドロップするだけのフィルタの方がはるかに一般的です。これにより、フィルタリングではなくネットワークの輻輳によってプローブがドロップされた場合に備えて、Nmap は複数回再試行する必要があります。これにより、スキャンの速度が大幅に低下します。」

traceroute などのツールを使用してネットワーク トポロジを検出してみることもできます。いつものポートは、ホスト自体 (つまり、IP テーブル)、ターゲット ネットワーク エッジ ルータ、ターゲット ネットワーク コア ルータ、またはラック上部の L3 スイッチでフィルタリングされます。

ターゲット ホストと同じサブネット内にある場合、ファイアウォールはほぼ確実にターゲット マシン上にあります。

答え4

フィルタリングされたポートの 1 つに対する tcptrace の結果と、開いているポート (または標準の traceroute) に対する tcptrace の結果を比較してみてください。tcptrace が同じである場合、宛先マシンにポートをフィルタリングする何かがあることを意味します。

更新: tcptraceroute を意味していましたが、エイリアスを設定しました。

関連情報