外部のDebianサーバーを入手しました。問題は、ポートがTCPポート22、80、443、またはUDPポート123と異なる場合、大学のキャンパスでは接続を外部に送信できないことです。手動でテストしました。 DebianサーバーすべてのUDPとTCPポートをリッスンしたいので、大学がファイアウォールを通過させたTCPとUDPポートを明確に把握できます。 Nmapはクライアント側でそれをテストするのに素晴らしいですが、サーバー側で何をすべきですか?
tcpdump は通常、Linuxディストリビューションに標準で付属しています。サーバーに表示されているすべてのパケットをログに記録します。
ノイズを削減するために、クライアントIP用のフィルターを使用して実行するように設定することをお勧めします
これには、ローカルマシンのiptablesで受け入れられないパケットが含まれていると思いますが、これをテストすることをお勧めします
例えば.
/usr/sbin/tcdump -i eth0 -c 3000000 -np Host client.example.com >tcp.log
次に、クライアントからnmapを実行します。
Sudo iptables -t nat -p tcp -I PREROUTING -m multiport --dports 1:65535 -j DNAT --to-destination :5555
ncat -lkp 5555 -vvv
今これをテストする良い方法はありませんが...
iptables
を使用して、すべてのポートを単一のポートに変換できると思います。次のようになります。
iptables -t nat -I PREROUTING -m multiport -sports 0:65535 -J DNAT --to-destination 127.0.0.1:1024
これにより、すべての着信ポートが1024にリダイレクトされます。その後、1024でサーバーを起動できます。
UDPまたはTCPを使用してraw sockets
で小さなプログラムを作成できれば、すべてのポートをリッスンでき、ヘッダーをフィルタリングしてポートを知ることができると思います。
python(Linux)| BinaryTides での生のソケットプログラミング