開いているポートが外部スキャンによって検出されるのを防ぐには、nmap
ポートが閉じたように見えるようにするよりも、他のすべてのスキャンポートを開いたように見えるようにするのが簡単になります。
nmap
すべての外部スキャンポートが開いていることを確認するには、システムをどのように設定する必要がありますか?
たとえば、1000個のポートをスキャンすると、外部スキャナは実際に開いているポートに関係なく、1000個のポートをすべて開いたものとして扱います。
答え1
これを行うには、実際に着信データを処理する操作(リバースや削除など)に関係なく、これらのポートをリッスンするプログラムが必要です。
指定したすべてのポートでリッスンする非常に単純な「サーバー」としてnetcatを使用できますが、各ポートにはnetcatインスタンスが必要です。これは、2 ^ 16個の可能なすべてのポートをカバーしたい場合は非常に高価です。
netcat -lp <port> </dev/null >/dev/null 2>&1
これにより、指定されたトラフィックをリッスンするnetcatが開始さ<port>
れ、すべての着信トラフィックが破棄されますが、接続自体は終了しません。-z
すべての接続をすぐに終了するには、コマンドにフラグを追加します。より多くのオプションを見るか、調べnetcat --help
てくださいinfo netcat
。
可能な代替案は、カバーしたいすべてのポートを繰り返し、そのポートでリスニングソケットを開き、接続が入ったら必要に応じて実行する簡単なCプログラムです。なぜなら、私はソケットに慣れていないからです。今はプログラミングをしているので、より具体的な例やソースコードを知ることはできません。このソリューションに興味がある場合は、利用可能ないくつかの例がすでに提供されているセクション2などsocket
のbind
マニュアルlisten
ページを見てください。accept