web-dev-qa-db-ja.com

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

外部のDebianサーバーを入手しました。問題は、ポートがTCPポート22、80、443、またはUDPポート123と異なる場合、大学のキャンパスでは接続を外部に送信できないことです。手動でテストしました。 DebianサーバーすべてのUDPとTCPポートをリッスンしたいので、大学がファイアウォールを通過させたTCPとUDPポートを明確に把握できます。 Nmapはクライアント側でそれをテストするのに素晴らしいですが、サーバー側で何をすべきですか?

6
Michael

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

  • ノイズを削減するために、クライアントIP用のフィルターを使用して実行するように設定することをお勧めします

  • これには、ローカルマシンのiptablesで受け入れられないパケットが含まれていると思いますが、これをテストすることをお勧めします

例えば.

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

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

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

ncat -lkp 5555 -vvv
2
Zibri

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

iptablesを使用して、すべてのポートを単一のポートに変換できると思います。次のようになります。

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

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

1
Shawn J. Goff

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

python(Linux)| BinaryTides での生のソケットプログラミング

0
edgarstack