web-dev-qa-db-ja.com

nmapによって報告されたポートとそうでないポートがあるのはなぜですか?

iptablesを使用して、非常にシンプルなファイアウォールが必要なサーバーをスキャンしています。デフォルトでは、RELATEDおよびESTABLISHEDパケット以外のすべてがドロップされます。許可されるNEWパケットのタイプは、TCPポート22および80のパケット)だけです(そのサーバーにはHTTPSがありません)。

最初の2048ポートでのnmapの結果は、予想どおり22と80を開いています。ただし、いくつかのポートは「フィルタリング済み」として表示されます。

私の質問は、なぜポート21、25、および1863が「フィルター済み」として表示され、他の2043ポートがフィルター付きとして表示されないのですか?

22と80だけが「オープン」であると思っていました。

21、25、および1863が「フィルター済み」として表示されるのが正常な場合、他のすべてのポートも「フィルター済み」として表示されないのはなぜですか?

次にnmapの出力を示します。

# nmap -PN 94.xx.yy.zz -p1-2048

Starting Nmap 6.00 ( http://nmap.org ) at 2014-06-12 ...
Nmap scan report for ksXXXXXX.kimsufi.com (94.xx.yy.zz)
Host is up (0.0023s latency).
Not shown: 2043 closed ports
PORT     STATE    SERVICE
21/tcp   filtered ftp
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
1863/tcp filtered msnp

2043閉じたポートがある理由は本当にわかりません。

Not shown: 2043 closed ports

2046閉じたポートではありません。

サーバーで起動されたlsofは次のとおりです。

# lsof -i -n
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
named    3789 bind   20u  IPv4     7802       TCP 127.0.0.1:domain (LISTEN)
named    3789 bind   21u  IPv4     7803       TCP 127.0.0.1:953 (LISTEN)
named    3789 bind  512u  IPv4     7801       UDP 127.0.0.1:domain 
sshd     3804 root    3u  IPv4     7830       TCP *:ssh (LISTEN)
sshd     5408 root    3r  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
sshd     5411    b    3u  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
Java    16589    t   42u  IPv4 88842753       TCP *:http-alt (LISTEN)
Java    16589    t   50u  IPv4 88842759       TCP *:8009 (LISTEN)
Java    16589    t   51u  IPv4 88842762       TCP 127.0.0.1:8005 (LISTEN)

(Java/Tomcatはポート8009でリッスンしているが、そのポートはファイアウォールによって削除されることに注意してください)

40
Cedric Martin

nmapの「フィルターされたポート」ステートメントは、スキャン方法によって異なります。

標準スキャン(権限のないユーザーの場合はTCPスキャン、スーパーユーザーの場合はハーフオープンスキャン-sS)はTCPプロトコルに依存しています。 (3ウェイハンシェイクという名前)

  • サーバーがSYN/ACKを返信すると、クライアント(あなた)がSYNを発行します。これは、ポートがopenであることを意味します!

  • サーバーがRSTと応答した場合、SYNを発行します。これは、ポートがcloseであることを意味します!

  • サーバーが応答しない場合、またはICMPエラーで応答する場合は、SYNを発行します。これは、ポートがfilteredであることを意味します。 IDS /ステートフルファイアウォールがリクエストをブロックしている可能性があります)

ポートの実際のステータスを把握するには、次の方法があります。

  • -sV、または-Aオプション(バージョン検出、それこのポートのステータスを確認するのに役立ちます。
  • -tcp-flags SYN、FINを使用して、fwをバイパスしてみてください。
  • 他のスキャンタイプを使用する( http://nmap.org/book/man-port-scanning-techniques.html

作成者のFyodorが書いた優れた「Nmap Network Discovery」の本は、これを非常によく説明しています。引用する

filtered:Nmapは、パケットフィルタリングによってプローブがポートに到達できないため、ポートが開いているかどうかを判断できません。フィルタリングは、専用のファイアウォールデバイス、ルータールール、またはホストベースのファイアウォールソフトウェアから行うことができます。これらのポートは情報がほとんどないため、攻撃者を苛立たせます。タイプ3コード13(宛先に到達できない:通信が管理上禁止されている)などのICMPエラーメッセージで応答する場合がありますが、応答せずにプローブを単にドロップするフィルターのほうがはるかに一般的です。これにより、フィルタリングではなくネットワークの輻輳が原因でプローブがドロップされた場合に備えて、Nmapは強制的に数回再試行します。この種のフィルタリングはスキャンを劇的に遅くします。

open | filtered:Nmapは、ポートが開いているかフィルタリングされているかを判別できない場合、ポートをこの状態にします。これは、開いているポートが応答しないスキャンタイプで発生します。応答の欠如は、パケットフィルターがプローブまたはプローブが引き出した応答をドロップしたことも意味します。そのため、Nmapは、ポートが開いているか、フィルタリングされているかを確実に把握できません。 UDP、IPプロトコル、FIN、NULL、およびXmasスキャンは、この方法でポートを分類します。

closed | filtered:この状態は、Nmapがポートが閉じているかフィルタリングされているかを判断できない場合に使用されます。これは、セクション5.10「TCPアイドルスキャン(-sl)」で説明されているIP IDアイドルスキャンにのみ使用されます。

28
Florian Bidabe

ポート21、25、および1863が「フィルター済み」として表示され、他の2043ポートがフィルター済みとして表示されないのはなぜですか?

ISPでは、ルーター、ネットワーク管理者、それらの間のすべて、または自分自身がそれらをフィルタリングしているからです。これらのポートにはかなり悪い履歴があります。1863は、Microsoftインスタントメッセージングプロトコル(別名MSNおよび友人)が使用するポートで、特定のルールを設定した(または設定していない)と思います。 SMTPはあなたのISPが犯人であるように思われます、そして私はそれらに何が起こり得るのか全くわからないので、FTPは私を完全に驚かせました。

10
Braiam

デフォルトでは、Nmapは各プロトコル(tcp、udp)の最も一般的な1,000個のポートのみをスキャンします。ポートがそれ以外の場合、ポートはスキャンされないため、レポートされません。ただし、-pオプションを使用して、スキャンするポートを指定できます。