いくつかのポートがnmapによって報告され、他のポートはフィルタリングされないのはなぜですか?


38

私は、iptablesを使用して非常に単純なファイアウォールを備えたサーバーをスキャンしています。デフォルトではRELATEDESTABLISHEDパケットとパケットのほかにすべてがドロップされます。NEW許可されるパケットのタイプは、ポート22および80上のTCPパケットのみです(これはそのサーバー上に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でリッスンしているが、そのポートはファイアウォールによってドロップされていることに注意してください)


他のホストをスキャンしても同じ結果が得られますか?
クリーク14年

@Creek:ああ、slashdot.orgで試してみて、80443を開いたが、25 / smtpもフィルターされた。しかし、あなたは私の同じマシンを自宅のマシンからではなく、私が所有する別のサーバーからnmapしようとするアイデアをくれました:3つのフィルタリングされたポートを取得しませんが、53 / domain / closed443 / https / closedを取得しますおよび953 / rndc / closed。(私の専用サーバーはどちらもフランスOVHでホストされています)。
セドリックマーティン14年

1
本当に何nmapをしているかを知りたい場合は、SYNスキャン(-sS)およびを使用して、ルート特権を使用してスキャンする必要があり--packet-traceます。また、数分かかり、manページを読んでください。そこにどんな宝石があるのか​​驚かれることでしょう
クリーク

また、一時的にそれらのポートを開き、パケットがそれらに到達するかどうかを確認します。
マークハード14年

回答:


25

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

標準スキャン(非特権ユーザーの場合はTCPスキャン、スーパーユーザーの場合はHalf-Openスキャン-sS)はTCPプロトコルに依存します。(3-way hanshakeと名付けられました)

  • クライアント(ユーザー)は、サーバーがSYN / ACKを返信した場合、SYNを発行します。これは、ポートが開いていることを意味します

  • サーバーがRSTに応答する場合、SYNを発行します。これは、ポートが近いことを意味します。

  • サーバーが応答しない場合、またはICMPエラーで応答する場合、SYNを発行します。これは、ポートがフィルターされることを意味します。おそらくIDS /ステートフルファイアウォールがリクエストをブロックします)

ポートの実際のステータスを把握するには、次のことができます。

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

作成者のフョードルによって書かれた優れた「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アイドルスキャンにのみ使用されます


では、ポート22のフィルタリングを解除するにはどうすればよいですか?Googleドメインを使用しているとします
...-IgorGanapolsky

「フィルター解除」?ファイアウォール上の22に向かうトラフィックは、したがって、それがフィルタリングされることはありませんインターセプトさてあなたは...あなたはその後、nmapのプローブに対する回答として、「オープン」または「クローズ」になるだろうしていない
フロリアンBidabe

何をスキャンしていますか?
フロリアンビダベ

私はこのコマンドを使用しています:sudo nmap -oG--T4 -A -p22 -v pi.eazyigz.com | grep ssh
IgorGanapolsky

1
「-T4」は不要です。すでに「-A」で指定されています...プローブに関しては、sudo nmapはSynスキャンが使用されることを意味します(-sS)。「-A」は、「-T4」+「-sV」+「-O」の短縮バージョンです。サービス検出(-sV)がSSHサーバーのプロービングに失敗した場合、ポートは閉じられている可能性があります(sshがリッスンしていない)。または誤設定ネットワーク機器)
フロリアンBidabe

10

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

ISP、ルーター、ネットワーク管理者、それらの間の何か、またはあなた自身がそれらをフィルタリングしているからです。これらのポートにはかなり悪い歴史があります。1863は、Microsoftインスタントメッセージングプロトコル(別名MSNおよびフレンド)が使用するポートであり、特定のルールを設定した(またはしない)可能性があります。あなたのISPが犯人であるように見えるSMTPの1つと私は彼らに何が起こるかわからないので、FTPは私が完全にひどく驚かされています。


1
説明してくれてありがとう!つまり、「フィルタリング」とは、基本的にはiptablesREJECTと同等のもの(ISP、ルーターなど)があることを意味しますか?そして、ISP /ルーター、またはそれがよりクリーンであるためドロップする代わりに拒否するものは何ですか?ポート25に関しては、たとえばslashdot.orgでもフィルタリングされます(ホーム接続からnmapするときですが、専用サーバーからnmapするときではありません)。
セドリックマーティン14年

6
@CedricMartin、あなたはそれをまったく逆に持っています。「フィルター済み」はパケットがドロップされることを意味し(応答なし)、「クローズ」はパケットが拒否されることを意味します(ICMP「ポート到達不能」応答が送信されます)。
マーク14年

@マーク:その後、元の質問が逆になった場合、私のサーバーでは、iptablesを使用し、ポート22と80以外のすべてを削除しています。
セドリックマーティン14年

@CedricMartinは質問を編集し、iptablesルールを追加します。
Braiam 14年

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.