【ネットワーク】ポートとは?そのリスクやその対策までを徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年3月)

✔このような方へ向けて書かれた記事となります

「ポートって何なのか知りたい」

「ポートにはどんなリスクや対策があるのだろうか?」

「代表的なポート番号やどんな風に使えるのか具体的に教えてほしい」

✔当記事を通じてお伝えすること

  • ポートとは?
  • ポートのリスクやセキュリティ対策
  • 代表的なポート番号

当記事では、ネットワークのポートについて、その基本からリスクや対策まで、丁寧に解説していきます。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

ポートについての基礎知識3選

まずはポートについての基礎知識を解説していきます。

基礎知識を理解したうえで、開発で役立つ応用を身につけましょう。

  • ポートとは?
  • ポートを使っている通信3選
  • 実は普段から使っているポート5選

ポートとは?

コンピューターの通信におけるポートとは、ネットワーク上でアプリケーションが通信する際の出入口のことです。

各アプリケーションには固有のポート番号があり、通信の際にこのポート番号を指定することで通信が行われます。例えば、ウェブブラウザがインターネットにアクセスする際にはポート番号 80 を使用します。ポート番号は 0 から 65535 までの範囲で指定されます。

ポートを使っている通信3選

ポートが使われている通信例をご紹介します。

身近な例により、どのように使われているかがイメージしやすくなるでしょう。

  • ウェブサイトへのアクセス:一般的にポート番号80番(SSLの場合は443番)
  • メールの送信: SMTPポートは25番または587番
  • ファイルの転送: FTPポート(20番または21番、22番)

PC上でおこなう通信は、どれもポートを通過してやり取りをおこなっているのです。

実は普段から使っているポート5選

ポートを使用しているアプリケーションについても見ていきましょう。

アプリケーションの設定などでうまくいかないときは、ポート制御によるものであることも多いです。

  • オンラインゲーム: 例)World of Warcraftはポート番号3724を使用
  • ビデオ通話: 例)SkypeやZoomは、通常、ポート番号80や443を使用
  • ファイル共有: 例)BitTorrentは、ポート番号6881を使用
  • VPN接続: 例)VPN接続は、通常、ポート番号1723を使用
  • リモートデスクトップ: 例)Windows Remote Desktopは、ポート番号3389を使用

これらのアプリケーションは、ポートを介して通信するため、ファイアウォールやポート制御などのセキュリティ対策が重要となります。

各アプリケーション内の設定により、通過するポートを変更できるものも多いです。

すでに使われているポート20選

ネットワーク上で使われていることが多いポート番号を見ていきましょう。

なぜすでに使われているものがあるかというと、頻繁に使われる通信でトラブルが起きないよう、ポート番号を統一しているから。

例えばWebアプリケーションの開発やゲームなど、任意のポート番号で通信したい場合でも、すでに使用されているポート番号は避ける必要があります。

ポート番号タイトル説明
20FTPデータFTPデータ転送に使用されるポート番号です。
21FTP制御FTP制御コネクションにより、クライアントはサーバーへのログイン・ファイル操作ができる
22SSHSSHリモートログインプロトコルや、SCP、SFTPのために使用されるポート番号です。
23TelnetTelnetプロトコルに使用されるポート番号です。
25SMTP電子メールを送信するための標準的なプロトコルであるSMTPのために使用される
53DNSDNSサービスで使用
80HTTPウェブページを提供するt前の標準的なプロトコルで使用
110POP3メールを受信するための標準的なプロトコルであるPOP3のために使用
119NNTPUsenetニュースグループにアクセスするためのNNTPのために使用
123NTPネットワークの時刻プロトコルに使用
143IMAPメールを受信するためのプロトコルであるIMAPのために使用
161SNMPネットワーク機器の監視と管理に使用されるSNMPのために使用
194IRCインターネット上でのリアルタイムチャットや情報交換をおこなうプロトコルで使用
443HTTPSSSL/TLSを使用するHTTPのセキュアバージョンであるHTTPSのために使用
465SMTPSSMTPのセキュアバージョンであるSMTPSのために使用
514Syslogログメッセージを収集するためのSyslogプロトコルに使用
587SMTPSMTPプロトコルを使用してメールを送信するための代替ポート番号
993IMAPSIMAPの暗号化バージョンであるIMAPSのために使用
995POP3SPOP3の暗号化バージョンであるPOP3Sのために使用
1080SOCKSSOCKSプロキシサーバに使用

ポートにおけるセキュリティリスク

ポートでおこなう通信でのセキュリティリスクを見ていきましょう。

対策を何もしていなければ、あなたのPCやサーバーも危険にさらされている可能性があります。

  • 不正アクセス
  • ハッキング攻撃
  • マルウェア感染
  • DDoS攻撃
  • スパム送信

不正アクセス

ポートの脆弱性が見つかると、不正アクセスされる可能性があります。

以下のような手口が存在するのです。

  • ポートスキャン
  • ペイロード注入

ポートを調査したり、ポートを利用するアプリケーションの脆弱性を見つけたりすることで、不正アクセスが可能になってしまいます。

ハッキング攻撃

ポートスキャンをおこなうことで、ハッキング攻撃も可能です。

ポートスキャンとは以下のような種類があり、どれもポートを調査する方法になります。

  • TCP SYNスキャン: TCP接続を確立するための3-wayハンドシェイクで、ポートが開いているかどうかを確認する
  • UDPスキャン: UDPパケットを送信して、ポートが開いているかどうかを確認する
  • NULLスキャン: TCPフラグビットをすべて0にして、ポートが開いているかどうかを確認する
  • FINスキャン: TCPフラグビットのFINビットを送信して、ポートが開いているかどうかを確認する
  • Xmas Treeスキャン: TCPフラグビットのFIN、PSH、URGビットをすべて1にして、ポートが開いているかどうかを確認する

マルウェア感染

ポートスキャンやペイロード注入により、マルウェア感染のリスクもあります。

ポートの脆弱性を疲れると、不正な情報が送信できてしまうからです。

  • SQLインジェクション: SQL文に不正なクエリを挿入して、データベースから情報を盗み出す
  • XSS: Webサイトに不正なスクリプトを挿入して、ユーザーの情報を盗み出す
  • OSコマンドインジェクション: OSのコマンドに不正なコマンドを挿入して、システムを乗っ取る

DDoS攻撃

大量のデータを送り付けるDDoS攻撃により、システムがダウンする可能性があります。

開いているポートが見つかれば、そこから不正なデータが送り付けられるのです。

大量なデータが送られる高尾で、システムは正常に稼働できなくなります。

スパム送信

スパムメールを送信するために、SMTPポート(25番)が悪用されることがあります。

SMTPサーバーに侵入し、偽名でスパムメールを送信する方法です。

SMTPサーバーを乗っ取ることで、サーバーに許可されたアドレスやポートを使用できます。

ポートに潜むリスクへの対策

こちらでは、ポートに潜むリスクに対して、打てる対策を見ていきましょう。

ットワークにおけるセキュリティリスクは、年々高まってきているのです。

  • ファイアウォールの導入
  • ポート制御の実施
  • SSL/TLSの仕様
  • ポートの変更

ファイアウォールの導入

ファイアウォールを導入することで、リスクを軽減できます。

なぜならファイアウォールは、不正なアクセスをブロックすることで、ポートを保護するからです。

ファイアウォールは、各OS内での設定はもちろん、以下のような機器を使うことで、ネットワークごと保護できます。

created by Rinker
ヤマハ(YAMAHA)
¥33,000 (2024/12/12 11:01:50時点 Amazon調べ-詳細)

ファイアウォールについての記事はこちら。

ポート制御の実施

ネットワークのセキュリティを強固にするために、ポート制御をおこないましょう。

ポート制御を実行すると、ポートにアクセスできるユーザーを制限できるのです。

具体的な方法としては以下のようなものがあります。

  • ポート番号の制御
  • IPアドレスの制御
  • プロトコルの制御

以下のようなデバイスで保護が可能です。

TZ205 トータルセキュリティ・アプライアンス【並行輸入】
SONICWALL

SSL/TLSの使用

SSLやTLSを使うことで、通信を保護できるようになります。

その理由は、SSL/TLSで、データの暗号化が可能となるからです。

具体的な方法は以下のとおり。

  • SSL/TLS証明書の取得: 信頼できる第三者機関(CA)からSSL/TLS証明書を取得
  • ウェブサーバーの設定: SSL/TLS証明書をウェブサーバーにインストールと設定
  • HTTPSの設定: プロトコルをHTTPSに変更
  • テスト: HTTPSを使用するウェブページが正しく動作するかどうかをテスト

ポートの変更

ポート番号をランダムに変更することで、攻撃者がポートを特定することを難しくすることができます。

利用するアプリケーションの設定で、開いているランダムなポート番号を割り当てるのです。

アプリケーションによっては使えなくなるものもありますので、影響ないかを確認の上、変更してください。

ポートスキャンの実施

定期的にポートスキャンを実施することで、ポートのセキュリティに問題がないかを確認することができます。

具体的なポートスキャンの方法は以下のとおり。

Windows

Windowsでは以下2つのどちらかで、ポートスキャンを実施できます。

①Nmap

ポートスキャンツールNmapは、Windows版が存在するオープンソースツールです。

Nmapでポートスキャンを実施します。

②PowerShell

PowerShellのTest-NetConnectionコマンドレットを使用して、ポートをスキャンすることもできます。例えば、以下のコマンドを実行することで、ポート番号80の状態を確認することが可能。

Test-NetConnection localhost -Port 80

macOS/Linux

macOSとLinuxでも以下の2通りが存在します。

Nmap

ポートスキャンツールのNmapを使用します。

macOS版やLinux版を使う方法です。

ターミナル

標準で搭載されているターミナルアプリで、ポートスキャンを実行できます。

例えば、以下のコマンドを実行することで、ポート番号80の状態を確認。

telnet localhost 80

まとめ:ポートを知って、ネットワークを健全に保とう

当記事の内容をまとめます。

  • ポートとは、ネットワークの出入口のこと
  • ポートを放ったらかすと、リスクがたくさん
  • ポートへのセキュリティを強化しよう

ポートとは、良く聞きますが、実際はよくわからない人も多いはず。

当記事を通じて、少しでも理解が深まっていれば幸いです。

Webアプリを開発したり、仕事で関わったりするならもちろん、自宅で大切なデータを保管している方などにも必要な知識といえるでしょう。

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