私の学校には、ほとんどの発信ポートを制限するファイアウォールがあります。許可されるのはTCP/80
、TCP/443
、TCP/21
のみです。ファイアウォールで許可されているすべての発信ポートを見つける方法はありますか?
私の現在の考え:リモートサーバーですべてのTCPポートをnc
で開き、次にnmap
を使用してアクセス可能なポートをスキャンします。しかし、どうすればよいですか?リモートサーバーがありませんか?それとも、この種のテスト用にすべてのポートを開くパブリックサーバーがありますか?
私が学校の規則に違反しているのではないかと心配している人にとっては、それは大したことではないと思います。外部ホストでサービスを確立していて、学校のネットワークからアクセスできるようにしたいとします。このサービスに使用できるポートを知りたいと思います。私は何も壊していませんでした。私はそれをすることは100%合法であると信じています。
portquiz.net を使用できます。これは、正確に探している種類のサーバーです。たとえば、次のシェルスクリプトがその役割を果たします。
for x in `seq 1 65535`; do
echo -ne "$x "
curl "http://portquiz.net:$x" \
--connect-timeout 1 \
-o /dev/null \
-q >/dev/null 2>&1 \
&& echo 'open' \
|| echo 'closed'
done | tee ports.lst
これはかなり長い間実行されることに注意してください。したがって、焦りがちな場合は、GNU parallel
を使用してタスクを並列化できます。
また、portquiz
の一部のポートは(SSHとHTTPSのポートであることを覚えている限り)最後にブロックされているように見えますが、いくつかの特別な場合を除いて、残りのすべてのポートは開いている必要があります。
「無効な送信ポート」と「有効な送信ポートがサーバーからの応答がない」に対して異なる応答があるかどうかを確認できます。たとえば、ポート6667が無効であることがわかっている場合は、既知の6667ポートが開いているサーバーに接続したときに(telnetなどから)どのような応答が返されるかを確認します。これを、ファイアウォールで許可されているサーバー上の開いていないポートからの応答と比較してください。 2つを区別できる場合は、追加のサーバーは必要ありません。そうでなければ、あなたはそうします。
または、IT管理者に聞いてください。