ポート番号の役割
ポートがホスト上の適切なサービスへトラフィックを振り分ける仕組みを学びます。
「ポート番号の役割」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
1台のホストで複数のサービス
1台のデバイスで、Webサーバー、メールサーバー、ファイル共有など、複数のネットワークサービスを同時に実行することはよくあります。ポート番号を使うと、それぞれに別の入口を割り当てることで、1つのIPアドレス上で多数のサービスをホストできます。
IPアドレスはパケットを正しいホストへ届け、ポート番号はそのホスト上の正しいアプリケーションへ届けます。
ソケット:IPアドレスとポート
IPアドレスとポート番号を組み合わせると、接続の一意なエンドポイントであるソケットになります。たとえば、192.168.1.10:443は、そのホスト上のHTTPS用ソケットです。
接続は送信元と宛先という2つのソケットの組で識別されます。これにより、ホストは何千もの同時通信を互いに区別できます。
192.168.1.10:443 <- IP : port = socketポート番号の範囲
ポート番号は0~65535の範囲の16ビット値です。したがって、プロトコルごとに65,536個のポートを利用できます(TCPとUDPには、それぞれ独立した全範囲があります)。
この広い範囲により、ホストが同時に処理する多数の接続に対して、ポートが不足することを防げます。
ウェルノウンポート
0~1023のポートはウェルノウンポートで、一般的な標準サービス用に予約されています。HTTPは80、HTTPSは443、SSHは22を使用します。
これらの割り当てはIANA(Internet Assigned Numbers Authority)が管理しているため、クライアントは通常、指定されたサービスの場所を常に把握できます。
登録ポート
1024~49151のポートは登録ポートで、申請に応じて特定のアプリケーションに割り当てられます。たとえば、MySQLには3306、RDP(Remote Desktop Protocol)には3389が使われます。
ウェルノウンポートほど厳格に管理されてはいませんが、広く利用されるアプリケーション同士の衝突を避けるのに役立ちます。
ダイナミックポートとエフェメラルポート
49152~65535のポートはダイナミックポートまたはエフェメラルポートです。オペレーティングシステムが接続のクライアント側に一時的に割り当てます。
ブラウザーがポート443のWebサーバーに接続すると、コンピューターは送信元としてランダムな高位のエフェメラルポートを使用し、接続が終了すると解放します。
送信元ポートと宛先ポート
すべての接続には2つのポートがあります。宛先ポートは、接続先のサービス(HTTPSの443など)を識別します。送信元ポートは、その通信でクライアントが使用するエフェメラルポートです。
この組み合わせにより、同じサービスへの多数の接続をホストが区別できます。接続ごとに異なる送信元ポートを使用するためです。
デフォルトポートが重要な理由
デフォルトポートがあれば、クライアントは番号を指定せずに接続できます。Webアドレスを入力すると、暗黙的にポート80または443が使用されます。標準以外のポートでサービスを実行する場合、クライアントにはその番号を明示的に伝える必要があります。
管理者が「隠すことによるセキュリティ」による軽微な対策としてデフォルトを変更することもありますが、その場合はファイアウォールとルールも合わせて更新する必要があります。
ファイアウォールルールでのポート
ファイアウォールは主にポート番号によってトラフィックを許可またはブロックします。TCP 443を許可するルールにより、HTTPSを通過させながら、ほかのサービスをブロックできます。
使用していないポートを閉じると、ホストの攻撃対象領域を減らせます。そのため、ポートの理解は接続性とセキュリティ設定の両方に不可欠です。
リスニング中のポートとオープンポート
接続を受け入れる準備ができたサービスは、そのポートでリスニングしているといいます。このとき、そのポートはオープンであると見なされます。クローズドポートでは、待機しているサービスはありません。
攻撃者はオープンポートをスキャンして、攻撃対象となるサービスを探します。そのため、技術者は開いているポートを監査し、不要なポートを閉じます。
ポートで全体をつなぐ
ポート番号はIPの上位にあるアドレス指定の層で、データを正しいアプリケーションへ振り分けます。これにより、1台のホストで多数のサービスを多重化できます。
ポートの概念が明確になったので、次のレッスンで扱う日常的なプロトコルの具体的なポート番号を学ぶ準備ができました。
クイックチェック
ポートの範囲を思い出してください。
まとめ
ポート番号の役割を学びました。
- ポートにより、1つのIPホストで多数のサービスを提供できます。IPアドレスとポートの組み合わせがソケットです。
- 範囲は0~65535(16ビット)で、トランスポートプロトコルごとに存在します。
- ウェルノウン:0~1023、登録:1024~49151、ダイナミック:49152~65535
- 宛先ポートはサービスを示し、送信元ポートはクライアントのエフェメラルポートです。
- ファイアウォールは主にポートによってトラフィックを許可またはブロックします。
よくある質問
「ポート番号の役割」レッスンは無料ですか?
はい。「ポート番号の役割」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「ポート番号の役割」で何を学びますか?
ポートがホスト上の適切なサービスへトラフィックを振り分ける仕組みを学びます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ポート番号の役割」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。