Nmap標準スキャンでフィルター処理されたポートが他のユーザーに表示されないようにしたい(非特権)。次のポートを開いているとします。22、3306、995、およびファイアウォールは次のように構成されています。
-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p tcp -m tcp --dport 995 -j DROP
これはnmapスキャンの結果です:
[+] Nmap scan report for X.X.X.X
Host is up (0.040s latency).
Not shown: 90 closed ports
PORT STATE SERVICE
22/tcp filtered ssh
995/tcp filtered pop3s
3306/tcp filtered mysql
サーバーがSYNに対してRSTで応答しなかったため、これらのポートはフィルターされたものとして表示されます。この動作を変更する方法はありますか?例:iptablesファイアウォールがポートをブロックする場合、サイレントのまま(何も応答しない)ではなく、RSTをSYNに応答しますか?
DROPは使用しないでください。ボックスが稼働していることがわかっている場合は、「フィルター済み」と簡単に識別できます。代わりに、以下を使用してRSTを送信できます。 (リッスンしているサービスがあるかのように、それはあなたからの接続を受け付けません)
-A INPUT -p tcp -m tcp --dport 22 -j REJECT --reject-with tcp-reset
または、次のコードを使用して、ポートが閉じているように見せます。 (それを聞いているサービスがないかのように)
-A INPUT -p tcp -m tcp --dport 22 -j REJECT
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset
あなたが望むことをしているはずです(RSTで返信してください)。