Port-number-Eyecatch

広告 ネットワークのルール

ポート番号とは?初心者も理解できる実用的な使い方を図解で解説

ポート番号とは下記に示す

  • TCPプロトコル(セッションの確立)
  • UDPプロトコル(速度や利便性の確立)

といった各プロトコルで使われる識別子のことを指します。

あひるん
あひるん

プロトコルで使われる識別子...もう少し分かりやすくできれば図解で説明してくれ

ポート番号について、身近な例で分かりやすく図解で解説します。

ポート番号とは?初心者も理解できる実用的な使い方を図解でポート番号は電話番号や郵便番号のようなもの

port-number-titleimage
ポートナンバータイトル

ポート番号を身近なモノで例えると

  • 各所へ通信するために割当てられた電話番号や郵便番号

といった想像が近しいです。

ううこ
ううこ

ポート番号って電話番号みたいなものなの?

ポート番号の役割がなぜ電話番号や郵便番号に例えられるのか

TCPUDP_header-image.png
宛先ポート番号を見つけて経路を通るTCP/UDPヘッダー

ポート番号の役割は、

  • 特定のアドレス(住所)を識別し
  • 許可された経路でデータを送受信する

といった仕組みでネットワーク上で動作します。

ポート番号の役割を端的に言えば、

  • 番号を指定することで
  • 任意のアプリケーションへアクセスできる

という動作です。

portnumber-appli-image
アプリケーションへアクセスするイメージ

これは、

  • 番号を指定することで
  • 任意の相手へ連絡する

といった、まさに電話番号の操作イメージと近しいんですよね。

あひるん
あひるん

たしかに電話だと、任意の相手番号にかけるよな

ということは、ポート番号って決め打ちされてるってこと?

ううこ
ううこ

ポート番号は大きく3つに区別されている

portnumber-3-image
ポート番号は大きく3種に分かれる

ポート番号は、TCP/UDPヘッダーの最初の16ビット(2オクテット)の情報です。

16ビットは0〜65535までの番号を表し以下3つのポート番号に分類されています

  • Well-known(ウェルノウンポート番号)
  • Registered(登録済みポート番号)
  • Dynamic/Private(ダイナミック/プライベートポート番号)

3つの範囲に分類されたポート番号は、それぞれの用途が割当てられています。

範囲ポート番号の範囲用途
1. ウェルノウンポート番号0-1023インターネットプロトコルで使用される主なアプリケーションの標準的なポート番号
2. 登録済みポート番号1024-49151既存のアプリケーションが補助的に使っているポート番号
3. ダイナミック/プライベートポート番号49152-65535個人や企業が独自のアプリ・サービスのために自由に使うことができるポート番号
ポート番号の内訳
ううこ
ううこ

ポート番号と言っても、範囲で用途分かれてるんだな。でも番号の範囲が広すぎない

大きく3つに構成が分かれているポート番号ですが、もちろん番号ごとに通信できるプロトコルサービスも決まっています

以下に一覧を示します。

ウェルノウンポートのポート番号で利用されるプロコトル・サービス

Well-known-image.png
ウェルノウンポート番号

ウェルノウンポートのポート番号で利用されるプロトコルサービスは以下のとおりです。

登録済みポート番号のポート番号で利用されるプロコトル・サービス

Registered-image.png
登録済みポート番号

登録済みポートのポート番号で利用されるプロトコルサービスは以下のとおりです。

ダイナミック/プライベートポート番号にて利用されるプロコトル・サービス

Dynamic_Private-image
ダイナミック/プライベートポート番号

ダイナミック/プライベートポート番号の場合、個人や企業で任意で使われる番号です。

そのため決まったプロコトル・サービスはありません

ポート番号の範囲プロトコルサービス
49152-65535TCP/UDPプライベート/ダイナミックポート(アプリケーション固有のポート)
ダイナミック/プライベートポート番号の対象プロコトルサービス一覧

ポート番号とは?初心者も理解できる実用的な使い方を図解でポート番号の使い方とよく使われるポート番号

PortNumber-Howto-image.png
ポート番号の使い方

ポート番号の使い方やよく使われるポート番号について説明します。

ポート番号の使い方

ポート番号443を使ってHTTP通信の疎通確認を行ってみましょう。

  • Web検索窓にhttps://google.com:443を入力してEnter。
  • GoogleのTOPページが開けば疎通確認ができています。

成功すれば以下のようにGoogleページが開くはず。

google-toppage

通信エラーが開くのであれば、一度インターネット通信状況を確認してから再度ポート番号の実行をトライしてみてください。

ポート番号を入力してアプリにアクセスすることは稀

人間が直接ポート番号を入力して通信することはまれです。

理由は、アプリケーションがポート番号を自動的に取得・通信しているから

ネットワーク管理者やシステム管理者でなければ、ポート番号を無理に意識して操作することはないでしょう。

じゃあポート番号って要らないじゃん

ううこ
ううこ

ポート番号は必要ないのか

ポート番号は必要ないのか、結論からいうとNO!ポート番号は絶対必要です。

ポート番号がなければ、複数のアプリケーションが同じネットワーク内を共有する場合、

  • どのアプリケーションが
  • どの通信を受信すべきか

といったことが識別できず、混乱が生じる可能性があるためです。

またポート番号は、ファイアウォールやルーターなどのネットワークセキュリティデバイスによって、不正アクセスや攻撃を検出・ブロックするためにも使用されます

あひるん
あひるん

ポート番号はネットワーク内のアプリをスムーズに起動・実行させるために必要なものなんだな

よく使われるポート番号について

PortNumber-bater-image.png
よく使われるポート番号を解説

よく使われるポート番号は以下のとおりです。

ポート番号用途
80Webサーバーのデフォルトのポート番号(HTTP)
443HTTPS(Webサーバー)
25SMTP(電子メール送信)
110POP3(電子メール受信)
143IMAP(電子メール受信)
22SSH(リモートマシンにアクセス)
21FTP(ファイル転送)
53DNS(ドメイン名解決)
3389RDP(リモートデスクトップ接続)
よく使われるポート番号一覧

仕事で使っているアプリケーションに関連するポート番号が、やはり一番よく使われていますね。

ポート番号とは?初心者も理解できる実用的な使い方を図解でポート番号を使った通信の例

ポート番号は、実際には以下のようなデータイメージです。

port-number-date
ポート番号データ信号イメージ

上図では、HTTP通信でWebブラウザを表示するデータ内訳が分かります。

このときの通信状態は以下のとおりです。

  • TCPポート番号80を使用してHTTPプロトコルを通じ
  • Webサーバーにリクエストを送信
  • Webサーバーは、TCPポート番号80を介してHTTPレスポンスを返す

ポート番号を通じて応答をしている、といったイメージですね。

ポート番号とは?初心者も理解できる実用的な使い方を図解でポート番号のセキュリティについて

PortNumber-attack-image.png
ポート番号のセキュリティ

ただし、攻撃されやすいポート番号もあります。一覧にまとめました。

ポート番号プロトコル用途危険度
21FTPファイル転送
22SSHセキュアシェル
23Telnetリモートログイン
25SMTPメール送信
80HTTPWebページ閲覧
139, 445SMBファイル共有
攻撃されやすいポート番号一覧

FTPやリモートログイン、メール送信やHTTP通信などごくごく一般的に使われるアプリケーションですね。

上記アプリケーションは特に外部とやりとりを行う都合上、狙われやすくデータ抜取りや情報漏えいに繋がるリスクがあります

データをアップロードするアプリケーションが狙われやすくなってます。

ポート番号のセキュリティ対策ってあるの?

PortNumber-gard-image
ポート番号のセキュリティ対策

とはいってもIANAといった団体で管理されているポート番号のため、対象がウェルノウンポートの場合は任意で番号変更できません

そこで、具体的なセキュリティ対策をポート番号ごとにまとめました。

ポート番号プロトコル用途具体的なセキュリティ対策
21FTPファイル転送暗号化された通信を行う。IPアドレスを制限する。
22SSHセキュアシェル暗号化された通信を行う。パスワードやアクセス権限を強化する。
23Telnetリモートログイン暗号化された通信を行う。パスワードやアクセス権限を強化する。IPアドレスを制限する。
25SMTPメール送信送信元アドレスの認証や送信先アドレスの検証を実施する。
80HTTPWebページ閲覧Webサーバーのセキュリティ設定を強化する。Webページの改ざんやディレクトリトラバーサル攻撃を防止する。
139, 445SMBファイル共有暗号化された通信を行う。アクセス権限を制限する。ファイアウォールを設置して、不正なアクセスをブロックする。
ポート番号ごとのセキュリティ対策一覧

以上のことからFTPやメールアプリなどは、

  • かんたんにアクセス状態できる状態にしない
  • かならずデータ通信は暗号化しておく

といった対策を講じておくと良いでしょう。

ポート番号とは?初心者も理解できる実用的な使い方を図解でまとめ. ポート番号の基本を理解しよう

ポート番号は、プログラムが通信するための扉として割当てられる番号といった比較的重要なポジションを持っていることが分かりましたね。

以下に本件の概要をまとめました。

特徴説明
ポート番号ネットワーク通信で使用される通信の窓口のこと
異なるプログラムは異なるポート番号を使用ポート番号は、プログラムが通信する際に使用する扉の番号
範囲内ポート番号は、0から65535までの範囲内で割り当てられる
予約済みポート一部のポートは、予約済みで特定のプロトコルで使用される
使用方法特定のプログラムが使用するポート番号を調べたり、ネットワーク上でポート番号が開いているかを確認する
確認方法「netstat」コマンドやポートスキャンツールを使用する
セキュリティ対策ポート番号を使った攻撃手法が存在し、適切なセキュリティ対策が必要
ポート番号についてまとめ一覧

ポート番号を使った攻撃手法も多く存在するため、各自で適切なセキュリティ対策を実施していきましょう

-ネットワークのルール