ポート番号(Port Number)

ポート番号(Port Number)とは、コンピュータがインターネットやネットワーク通信を行う際、IPアドレスで特定された機器の中で「どのプログラム(サービス)と通信するか」を指定するための扉の番号です。

0から65535までの数値が使われ、IPアドレスとセットで(例:192.168.1.1:80 のようにコロンで繋いで)表記されることがよくあります。

IPアドレスとの違い(役割)

現実世界における郵便や訪問に例えると、IPアドレスとポート番号の関係がよく分かります。

ネットワーク上の要素 役割 現実世界に例えると
IPアドレス 通信相手となる「機器(サーバーやPC)」を特定する。 建物の住所(〇〇ビル)
ポート番号 その機器の中で動いている「どのプログラム」宛てかを特定する。 部屋番号・担当窓口(〇〇号室・受付)

1つのサーバー(建物)の中では、Webサイトを表示するプログラム、メールを送受信するプログラム、データベースのプログラムなどが同時に動いています。通信が届いた際、どのプログラムに処理を渡すべきかを判断するためにポート番号が使われます。

ポート番号の3つの区分

ポート番号は0〜65535までの範囲があり、使われ方によって大きく3つのグループに分けられています。番号の範囲ごとに役割が異なります。

区分 番号の範囲 用途
ウェルノウンポート 0〜1023 HTTPやメールなど、代表的なサービスにあらかじめ割り当てられた番号。
登録済みポート 1024〜49151 特定のソフトやサービス向けに登録・予約された番号。
動的・プライベートポート 49152〜65535 その都度一時的に自動で割り当てられる番号。

ウェルノウンポート(0〜1023)は、世界共通で用途が厳密に決められています。以下は、システム開発やインフラ構築の現場で特によく目にする代表的なポート番号です。

登録済みポート(1024〜49151)は、特定のアプリケーションやサービスのために、番号を管理する団体(IANA)へ登録・予約される範囲です。たとえばMySQLの3306番やPostgreSQLの5432番などが代表例で、ウェルノウンポートほど厳密ではないものの、慣習的に決まった番号が使われます。

動的・プライベートポート(49152〜65535)は、特定の用途に固定されていない自由な範囲です。パソコンがサーバーへアクセスする際、自分側の一時的な受け口として、この範囲から空いている番号が自動的に割り当てられます。通信が終われば解放され、次の通信で再び使われます。「エフェメラルポート(一時的なポート)」とも呼ばれます。

代表的なポート番号

主要なウェルノウンポート(0〜1023)

番号 名称 分類 内容
20・21 FTP ファイル転送・遠隔操作 ファイル転送。20がデータ、21が制御
22 SSH ファイル転送・遠隔操作 暗号化された遠隔操作。SFTPも使用
23 Telnet ファイル転送・遠隔操作 暗号化されない遠隔操作。現在は非推奨
25 SMTP メール メールの送信・サーバー間の転送
53 DNS 名前解決・時刻・機器管理 ドメイン名とIPアドレスの変換
67・68 DHCP 名前解決・時刻・機器管理 IPアドレスの自動割り当て
80 HTTP ウェブ 暗号化されていないウェブ通信
88 Kerberos 名前解決・時刻・機器管理 Active Directoryなどで使われる認証プロトコル
110 POP3 メール メールの受信(端末へ取り込む方式)
123 NTP 名前解決・時刻・機器管理 機器の時刻合わせ
135 RPC ファイル転送・遠隔操作 Windowsのプロセス間通信の窓口。DCOMなどで使用
143 IMAP メール メールの受信(サーバー上で管理する方式)
161・162 SNMP 名前解決・時刻・機器管理 ネットワーク機器の監視
389 LDAP 名前解決・時刻・機器管理 利用者情報の管理・認証
443 HTTPS ウェブ 暗号化されたウェブ通信
445 SMB ファイル転送・遠隔操作 Windowsのファイル共有
464 Kerberos 名前解決・時刻・機器管理 パスワード変更など、認証にまつわる補助的な通信
465 SMTPS メール 暗号化されたメール送信
514 Syslog 名前解決・時刻・機器管理 動作記録の収集
587 SMTP メール 利用者がメールを送信する際に使う番号
631 IPP 名前解決・時刻・機器管理 ネットワーク経由の印刷
636 LDAPS 名前解決・時刻・機器管理 暗号化されたLDAP
993 IMAPS メール 暗号化されたIMAP
995 POP3S メール 暗号化されたPOP3

主要な登録済みポート(1024〜49151)

番号 名称 分類 内容
1433 Microsoft SQL Server データベース Microsoft SQL Serverの既定のポート
1521 Oracle Database データベース Oracle Databaseの既定のポート
3306 MySQL・MariaDB データベース MySQL・MariaDBの既定のポート
3389 RDP ファイル転送・遠隔操作 Windowsのリモートデスクトップ
5432 PostgreSQL データベース PostgreSQLの既定のポート
5900 VNC ファイル転送・遠隔操作 画面を共有して遠隔操作する仕組み
6379 Redis データベース Redisの既定のポート
8080 HTTP代替 ウェブ 開発中や検証用のウェブサーバー
27017 MongoDB データベース MongoDBの既定のポート

暗号化されたものは別の番号が使われる

一覧を見て分かるとおり、同じ用途でも暗号化に対応した通信には別の番号が割り当てられています。80番と443番、110番と995番といった対応がそれにあたります。設定を確認する際は、暗号化を使う設定になっているか、番号とあわせて見ておくと確実です。

TCPとUDPは別々に管理される

ポート番号は、TCPとUDPという二つの通信方式それぞれに、同じ番号が別々に用意されています。たとえば53番はDNSで使われますが、通常の問い合わせはUDP、大きな応答や領域の転送ではTCPというように、場面によって使い分けられています。

外部に開けてはいけない番号がある

とくに注意が必要なのが、Windowsのファイル共有に使う445番と、暗号化されないTelnetの23番です。これらがインターネット側から届く状態になっていると、侵入や情報の抜き取りの入口になります。社内でのみ使う番号は、外から届かないよう遮断しておくことが基本です。

標準以外の番号を使うこともある

攻撃を試みる側は、まず標準の番号を狙って探索します。そのためSSHの22番を別の番号に変えて運用する例もあります。ただし番号を変えただけでは根本的な守りにはならないため、認証の強化とあわせて行う必要があります。

システム開発における重要キーワード

インフラ構築やセキュリティ設定の現場で、ポート番号に関連して頻出する用語です。

  • ファイアウォール(Firewall) / セキュリティグループ
    外部からの不正アクセスを防ぐための「門番」システムです。「Webサイト用の80番と443番だけは誰でも通して良いが、遠隔操作用の22番は社内のIPアドレスからしか通さない」といったように、ポート番号単位で通信の許可・遮断(ポートの開放 / 閉鎖)を設定します。
  • Listen(リッスン:待ち受け)
    サーバー上のプログラムが「いつでも通信を受け付けられるように、指定されたポート番号を開いて耳を澄ませている状態」のことです。「Webサーバーが80番ポートでListenしている」のように表現します。
  • ポートフォワーディング(Port Forwarding)
    ルーターやサーバーに届いた特定のポート宛ての通信を、別の機器や別のポート番号へ自動的に転送する仕組みです。Docker(コンテナ技術)やローカル開発環境の構築時によく利用されます。

コメント

タイトルとURLをコピーしました