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でリッスンしているが、そのポートはファイアウォールによって削除されることに注意してください)
nmapの「フィルターされたポート」ステートメントは、スキャン方法によって異なります。
標準スキャン(権限のないユーザーの場合はTCPスキャン、スーパーユーザーの場合はハーフオープンスキャン-sS)はTCPプロトコルに依存しています。 (3ウェイハンシェイクという名前)
サーバーがSYN/ACKを返信すると、クライアント(あなた)がSYNを発行します。これは、ポートがopenであることを意味します!
サーバーがRSTと応答した場合、SYNを発行します。これは、ポートがcloseであることを意味します!
ポートの実際のステータスを把握するには、次の方法があります。
作成者の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アイドルスキャンにのみ使用されます。
ポート21、25、および1863が「フィルター済み」として表示され、他の2043ポートがフィルター済みとして表示されないのはなぜですか?
ISPでは、ルーター、ネットワーク管理者、それらの間のすべて、または自分自身がそれらをフィルタリングしているからです。これらのポートにはかなり悪い履歴があります。1863は、Microsoftインスタントメッセージングプロトコル(別名MSNおよび友人)が使用するポートで、特定のルールを設定した(または設定していない)と思います。 SMTPはあなたのISPが犯人であるように思われます、そして私はそれらに何が起こり得るのか全くわからないので、FTPは私を完全に驚かせました。
デフォルトでは、Nmapは各プロトコル(tcp、udp)の最も一般的な1,000個のポートのみをスキャンします。ポートがそれ以外の場合、ポートはスキャンされないため、レポートされません。ただし、-pオプションを使用して、スキャンするポートを指定できます。