すべてのポート(UDPとTCP)をリッスンする方法、またはDebianですべて開いているように見えるようにする方法

すべてのポート(UDPとTCP)をリッスンする方法、またはDebianですべて開いているように見えるようにする方法

外部 Debian サーバーがあります。問題は、大学のキャンパスでは、ポートがTCPポート22、80、443、またはUDPポート123と異なる場合、外部への接続を許可しないことです。手動でテストしました。私のDebianサーバーからすべてのUDPとTCPポートをリッスンして、私たちの大学がファイアウォールを介して許可するTCPとUDPポートを明確に把握したいと思います。 Nmapはクライアント側でこれをテストするのに適していますが、サーバー側ではどうすればよいですか?

答え1

TCPダンプ通常、Linuxディストリビューションには標準で提供されています。サーバーに表示されるすべてのパケットを記録します。

  • ノイズを減らすために、クライアントのIPフィルタで実行するように設定できます。

  • これには、ローカルシステムのiptablesが許可しないパケットが含まれていると思います。ただし、これをテストしてみることもできます。

例えば

/usr/sbin/tcpdump -i eth0 -c 3000000 -np host client.example.com >tcp.log

次に、クライアントでnmapを実行します。

答え2

sudo iptables -t nat -p tcp -I PREROUTING -m multiport --dports 1:65535 -j DNAT --to-destination :5555

ncat -lkp 5555 -vvv

答え3

今はこれをテストする良い方法はありませんが...

iptables各ポートを単一のポートに変換できると思います。次のようになります。

iptables -t nat -I PREROUTING -m multiport -sports 0:65535 -J DNAT --to-destination 127.0.0.1:1024

これにより、すべての着信ポートが1024にリダイレクトされます。その後、1024でサーバーを起動できます。

答え4

私の考えでは、UDPまたはTCPを使用して小さなプログラムを作成し、すべてのポートraw socketsでリッスンし、ヘッダーをフィルタリングしてポートを知ることができます。

Pythonのrawソケットプログラミング(Linux)|

関連情報