みなさん、こんにちは!
ブリュの公式ブログ.netにお越しいただきまして、ありがとうございます。
このサイトでは、ITについて特化したサイトを運営しています。
このカテゴリでは、情報処理技術試験とITの基礎知識として、様々な技術についての紹介を行っています。
今回は、ネットワークで頻出のワードである「ポート番号」について紹介します。
ポート番号は、OSI基本参照モデルの第4層であるトランスポート層で活躍します。
“トランスポート層”と”ポート番号”について一言で説明するなら”ソフトウェアレベルでの認識”と言えるでしょう。
ネットワーク層までが構築したサーバ間の接続を前提とし、ソフトウェアレベルでの識別を行います。
パソコン一台でインターネットへの多重接続を可能にする”ポート”の機能は非常に便利なものがありますが、一方でポートスキャンなどによるサイバー攻撃の糸口にも発展してしまうため、日ごろから十分な注意が必要なものでもあります。
情報処理技術者試験のシラバスにおいては、基本情報技術者試験(Lv.2)、応用情報技術者試験(Lv.3)のほかに、高度情報処理技術者試験として、
- ネットワークスペシャリスト試験(Lv.4)
- 情報処理安全確保支援士試験(Lv.4)
- エンベデットシステムスペシャリスト試験(Lv.3)
- システム監査技術者試験(Lv.3)
- システムアーキテクト試験(Lv.3)
- ITサービスマネージャ試験(Lv.3)
で出題範囲となっています。
目次
OSI基本参照モデル
情報技術は様々な場所で階層化されています。
これは、各階層ごとに機能を分割し、階層間におけるインターフェースを共通のものとすることで、技術発展などにおいての新技術の導入の際の互換性を維持する目的で導入されています。
もちろん、ネットワークも例外ではありません。
ネットワークの階層化の具体的には、ISOで定められているOSI基本参照モデルをベースに構築が行われます。
上位層 | 第7層 | アプリケーション層 | アプリケーションソフトレベルの通信 |
第6層 | プレゼンテーション層 | データの表現形式の決定 | |
第5層 | セッション層 | 通信の目的に合わせた送受信管理 | |
下位層 | 第4層 | トランスポート層 | データ品質管理の設定とソフトウェア単位(ポート番号)での指定など |
第3層 | ネットワーク層 | 異なるネットワーク(ルーターを越える)通信を行う | |
第2層 | データリンク層 | 同じネットワーク内(ルータを越えない)での通信を行う | |
第1層 | 物理層 | LANケーブルなどの物理的に存在するもの |
上記の表でも示したように、ポート番号が利用されるのはトランスポート層です。
全体像としては、
- 物理層で通信媒体(LANケーブルか、無線LANかなど)を決定
- データリンク層でデフォルトゲートウェイ(外部ネットワークとの境界に存在するルータ)まで通信を行う
- ネットワーク層で世界のルータを経由し目的のサーバに接続を行う
- トランスポート層でポート番号を利用しソフトウェア単位での通信を行う
となります。
実際には、トランスポート層の上に、セッション層以上の上階層が”上乗せ”として機能することで、インターネットの通信ができることになります。
ポート番号はトランスポート層で活躍!
先述のようにポート番号はトランスポート層で活躍します。
OSI参照モデルでは、下位層までの機能を前提として上位層が動作します。
したがって、トランスポート層の動作ではネットワーク層までの機能を前提としており、言い換えるのであればサーバーとの接続はすでに行われているというのが前提で機能しています。
さて、ネットワーク層でサーバ接続が完了し、実際に通信を開始したとしましょう。
相手サーバにリクエストを送り、データがかえってきます。
このデータ、パソコンには届くのですが、そのままではいったい何に利用していたのかが分かりません。
このデータをどこで使うのか、
- Google Chromeで使うのか
- Firefoxで使うのか
- Edgeで使うのか
- Thunderbirdで使うのか
- FFFTPで使うのか
など。
こうした、どのソフトで使うデータなのかを見失わないようにするのが、トランスポート層であり、その識別子としてポート番号が利用されています。
身近に感じるポート番号
今では当たり前な機能となっているブラウザのタブ機能。
ブラウザで複数のウェブページを開き、タブとして管理しています。
実はこれも、トランスポート層とポート番号のタッグで実現できるもの。
ポート番号は、
- どのブラウザなのか→Edge or Google Chrome or Firefox or IE etc…
- どのタブなのか→YouTube or Google検索 or Yahoo!検索 etc…
を識別する情報を提供し、トランスポート層がそれを基に通信を行います。
ブラウザで複数のタブを開くことが、まさにポート番号の恩恵。
意外とポート番号は身近な存在なのです。
ウェルノウンポートとダイナミックポート
ウェルノウンポートとは
ポート番号は16ビットの情報であり、ソフトウェアを識別できれば問題ありません。
従って、厳密にいえば、0~65535の任意のポート番号が利用できます。
しかし、ウェブサーバーなど、多くの人が利用する場合、それぞれのサーバーが異なるポート番号を利用していたのでは、利便性に欠けます。
そこで、共通のポート番号として、ウェルノウンポートが規定されています。
これによって、世界で共通のポート番号とすることで、利便性を向上させています。
代表的なウェルノウンポートを紹介します。
アプリケーション | ポート番号 |
ftp-data | 20 |
ftp | 21 |
ssh | 22 |
telnet | 23 |
smtp | 25 |
DNS | 53 |
DHCP client | 67 |
DHCP server | 68 |
http | 80 |
kerberos | 88 |
pop3 | 110 |
ntp | 123 |
snmp | 161 |
IMAP | 143 |
LDAP | 389 |
https | 443 |
SMTPS | 465 |
LDAPS | 636 |
ftps-data | 989 |
ftps | 990 |
IMAPS | 993 |
POP3S | 995 |
ダイナミックポートとは
ダイナミックポートは、ウェルノウンポート以外のポート番号のことです。
ポート番号はローカルネットワーク内での重複が存在しなければ、基本的には任意に設定が可能です。
しかし、1023までは上記のウェルノウンポートが存在しているため、RFCによる規約上であれば1024以降の数字が割り振られることになっています。
なお、ダイナミックポートについては、OSが自動割り振ります。
基本的には空いている番号が利用されることになり、49152以降の数字が使われています。
ポートスキャンに注意
ポートは、開いている状態と閉じている状態があります。
ポートスキャンは、開いているポートを探るためのアクセスのことです。
ポートスキャンされることによって、開いているポートとその情報が漏れます。
例えば、
- 開いているポート番号
- 閉じているポート番号
- ファイアーウォールによってフィルタリングされるポート番号
- 稼働中のサービス
- バージョン情報
が該当します。
注意点が、これらの情報を取得されること自体が、何か被害があるわけではありません。
問題なのが、ポートスキャンで得られる情報はソフトウェアのバージョン情報なども含まれており、もしも脆弱性のあるバージョンを利用していれば、サイバー攻撃の糸口にもなります。
また、サーバ管理者のスキルを測ることもでき、攻撃可能なサーバであるかどうか、探られることになります。
万が一にも脆弱性を突かれた場合にはサイバー攻撃が成功します。
こうしたことから、ポートスキャン自体はあまり行ってほしくない行為です。
なお、こうしたサイバー攻撃は主にサーバで起こっており、個人ユーザーにとっては身近ではないかもしれません。
しかし、公衆無線LANなど、不特定多数のユーザーが同一回線を利用する場合には、他の利用者からのポートスキャンを受ける場合があります。
個人PCでは、しっかりとしたウイルスセキュリティソフトを導入し、安全に公衆無線LANを利用できる環境を整えておきましょう。
まとめ
ここまで、トランスポート層とポート番号について紹介をしてきました。
ポート番号などと聞くと、普段パソコンを利用していて身近には感じないかもしれません。
しかし、毎日利用しているブラウザも、実はポート番号があるからこそ、複数タブを開けたりするんですね。
また、インターネットへの多重接続を可能にするポート番号は非常に便利な機能ではありますが、一方でポートスキャンから漏れる情報による、サイバー攻撃の糸口にもなり得ます。
こうしたリスクは、公衆無線LANを利用する場合に危険であり、サイバー攻撃が身近に存在することの典型的な例であるといえます。
したがって、強力なウイルスセキュリティソフト(ノートンやカスペルスキーが有力候補)を導入するなど、しっかりとした対策を行っていくことが必要です。
以上、トランスポート層とポート番号について、参考になれば幸いです。