- 2018年7月27日金曜日
- 未分類
サーバの設定やファイアーウォールに関するチュートリアルを読んでいると、しばしばこの形式のIPアドレスに出てくることがあります。
最初の部分は見慣れたものですが、コロン(:)の後の部分は見慣れないかもしれません。 この数字(8080)はネットワークポートを表しています。
IPアドレスは、ネットワーク(多くはインターネット)上のインターフェイスを表す一意の数字の羅列です。 IP アドレスを使用すると、ネットワークはデータのパケットを、サーバーやルーター、あるいは携帯電話などの特定のデバイスのネットワーク インターフェースにルーティングできます。
これらのデバイスでは、ネットワークからデータを受信したり他のデバイスにデータを送信することに興味を持つプログラムがたくさん実行されています。 しかし、IP アドレスは、データがどのプログラム向けであるかについて、受信デバイスには何も伝えません。
TCPまたはUDP接続で送信されるすべてのデータチャンク(HTTP(Web)、SSH、FTP、DNS、および他のほとんどのおなじみのプロトコルを含む)には、送信元ポート番号と送信先ポート番号が存在します。 これらは、サービスを提供するプロセスと、関連する宛先ポートを持つデータパケットを関連付けるソフトウェアの構造です。
プロセスは、サーバ上で実行されているソフトウェアの一部です。 Web サーバーはプロセスであり、SSH サーバー、FTP サーバー、および DNS サーバーもそうです。
サーバーのオペレーティングシステムは、データが正しいプロセスによって受信されるようにするためにポートを使用し、しばしばその目的のためにマップされたメモリのチャンクにデータを配信します。 プロセスは特定のポートにバインドされ、- TCP 接続の場合 – 各ポートにバインドできるのは 1 つのプロセスだけである。
ポートは 0 から 65535 までの数字で表され、16 ビットの符号なし整数に収まる最大値である。 これらの番号のいくつかは、特定の種類のサービスに関連している。 0から1024までのポートはWell-knownポートと呼ばれ、従来から最も一般的な種類のネットワークサービスに関連付けられている。 Webサーバーは80番、SSHサーバーは22番など。
1024から49151までは登録ポートです。 1024から49151までのポートは登録ポートで、組織が自社のソフトウェアで使用するためにICANNに登録することができます。 49151以上のポートは、任意の目的で使用できるプライベートポートです。
CentOSサーバーで次のコマンドを実行すると、ポートとそれに対応するサービスの一覧を見ることができます。
less /etc/services
ポートの仕組みを理解することは、さまざまな状況において役に立ちます。 例えば、多くのブルートフォースボットは、ポート 22 を介して SSH サーバをターゲットにしている。 サーバが何千もの不正なログイン要求に対処する必要がないように、SSH を別のポートに関連付けたいと思うかもしれない。 etc/ssh/sshd_config” の “Port” 設定を編集することで、SSH ポートをプライベートポート (49151 以上) のいずれかに変更することができます。 ブルートフォースボットに発見されなくなります。 SSH ポートを変更した場合、変更した内容を覚えているかどうか確認してください。
ポートは、ファイアウォールの設定や開発サーバーの実行にも便利です。