コンピューター ネットワーク内のポートについて簡単に説明し、さらに Linux で開いているすべてのポートをリストする方法について説明します。
ポートは、コンピュータ ネットワーキングおよびソフトウェア用語における論理エンティティとして定義できます。
これは、特定のプロセスまたはアプリケーションを識別するための通信エンドポイントとして機能します。 Linux オペレーティング システム 。ポートとは、 16 ビット (0 ~ 65535) さまざまなエンド システム上で 1 つのアプリケーションを他のアプリケーションと区別する番号。
最も有名な 2 つのインターネット トランスポート プロトコル、 ユーザー データグラム プロトコル (UDP) そして 伝送制御プロトコル (TCP) および他のプロトコルでは、多くの通信セッションにポート番号が適用されます (宛先および送信元の IP アドレスと組み合わせた宛先および送信元のポート番号)。
次のようなプロトコル、ポート、IP アドレスの組み合わせ TCP/UDP と呼ばれます ソケット。 すべてのサービスが特定のソケットを持つ必要があります。
港のカテゴリー
ポートの種類が豊富であるため、これらのポートは使いやすいように 3 つのカテゴリに分類されています。すべてのカテゴリは、ポート値の範囲としてラベル付けされています。
0-1023: これらのポートは、 よく知られている そして電話した 'システム' ポート。これらは、広範なネットワーク サービスを提供するシステムのプロセス用に予約されています。プロセスには、任意のプロセスとバインドするためのスーパーユーザーの権限が必要です。 「よく知られている」 ポート。
1024-49151: これらのポートは、 '登録済み' そして、 'ユーザー' ポート。それらは経由で指定されます イアナ ユニークなサービスに。プロセスは、要求に応じて認証を受ける場合があります。ほとんどのシステムの場合、これらのポートを使用するためにスーパーユーザーの特権は必要ありません。
49152-65535: これらのポートは、 '動的' そして、 'プライベート' ポート。には登録できません イアナ。 これらのタイプのポートは、カスタマイズされたプライベート サービスに使用できるように開かれており、一時ポート (として知られています) として割り当てられることもあります。 短命な ポートは IP によって自動的に適用されます)。
Linux で開いているポートを確認する方法はたくさんあります。デフォルトでは、アプリケーションがポートを適用していない限り、ポートは閉じられます。ポートが開いている場合は、プロセスまたはサービスにポートを割り当てる必要があります。
オープンポートリスト
どのポートが開いているかではなく、どのポートが使用中かを知る方が簡単です。したがって、以下のセクションでは、現在使用されているすべてのポートをリストする方法を提供します。
Linux には、このタスク用のツールがいくつかあります。ほとんどが利用可能です 内蔵 Linux ディストリビューションでは。
現在どのポートが開いているかを知ることは、多くのシナリオで役立つ可能性があります。保証されたアプリケーションの専用ポートを決定することができます。開いたポートは、ネットワーク内への強力な侵入を示す可能性があります。
メソッドは以下で使用されます Ubuntu 20.04 LTS これらについては以下で説明します。
/etc/services ファイルを使用して開いているポートとプロトコルを一覧表示する
ファイル、つまり、 /etc/サービス (現在) 実行中のサービスに関する詳細が含まれています。大きなファイルです。
$cat /etc/services | less
netstat で開いているポートをリストする
の ネット統計 このツールは、ルーティング テーブル、TCP、およびいくつかのネットワーク インターフェイスのネットワーク接続を表示するユーティリティとして説明できます。また、ネットワーク プロトコルの統計も容易になります。 netstat ツールを使用すると、システムの開いているポートをすべてリストできます。
以下のコマンドを実行できます。
$ netstat -atu
上記のコマンドで使用した各フラグの内訳を簡単に説明しましょう。
1. a: このフラグは、各ソケットを表示するように netstat に通知します。
2.t: このフラグは、TCP ポートをリストするように netstat に通知します。
3. で: このフラグは、UDP ポートをリストするように netstat に通知します。
の ネット統計 コマンドには、以下に示す別のバリエーションがあります。
npmクリアキャッシュ
$ netstat -lntu
上記のコマンドには 2 つのフラグが新しく追加されており、これについては次のように説明します。
1. l: このフラグは、リッスンしているソケットのみを出力するように netstat に通知します。
2.n: このフラグは、netstat にポート番号を表示するよう通知します。
フラグを使用できます。つまり、 「-p」 任意のポートを使用しているプロセス PID を表示します。
$ netstat -lntup
開いているポートをローカルで確認する
netstat コマンドは、ネットワーク接続を監視するために、すべてのコンピュータのオペレーティング システムで使用できます。次のコマンドは netstat を適用して、TCP プロトコルを使用する各リスニング ポートを表示します。
netstat -lt
上記のコマンドに存在するフラグを簡単に定義してみましょう。
1. -l: リスニングポートのリストが表示されます。
2. -t: TCPプロトコルを指定します。
結果は、プロトコル、人間に優しい、送受信されたパケット、ポート状態、リモートおよびローカル IP アドレスを表示する列に整然と並べられています。
TCP プロトコルを UDP プロトコルに変更すると、出力には開いているポートのみが表示されます。 TCPプロトコルに矛盾するため、結果は状態を記述せずに表示されます。
netstat -lu
プロトコルの説明を無視して、オプション --listen または -l のみを適用して、プロトコルを自由にリッスンしている各ポートの詳細を取得できます。
netstat --listen
上記のオプションでは、Unix、UDP、および TCP ソケット プロトコルの詳細が表示されます。
上記のすべての例は、認証された接続を使用せずにリスニング ポート経由で詳細を出力する方法を示しています。以下のコマンドは、リスニング ポートと許可された接続を表示する方法を示しています。
netstat -vatn
どこ:
1. -in: 冗長性を表現するために使用されます。
2. -a: アクティブな接続が表示されます。
3. -t: TCP接続を表示します。
4. -n: ポート(数値)を表示します。
システム内で疑わしいプロセスを認識し、それに関連するポートを確認したいとします。プロセスに関連する開いているファイルを一覧表示するために使用される lsof コマンドを使用できます。
lsof -i 4 -a -p
どこ、
1. -i: インターネットと連携するファイルをリストします。 6 オプションが存在します IPv6、 そしてその 4 オプションは印刷のみを指示します IPv4。
2. -a: 結果を次のように指示します あなたは与えました。
3. -p: 確認したいプロセスの PID 番号を指定します。
開いているポートを ss でリストする
の ss ツールは、ソケットを調査するためのユーティリティとして指定できます。このツールの使用方法は、 ネット統計 指示。
以下のコマンドを実行して、開いているポートを一覧表示できます。
$ ss -lntu
上記のフラグは、 ネット統計 指示。 ssツールで記述されている機能も全く同じです。
C の階乗
1. l: このフラグは、リッスンしているソケットを表示するように ss に通知します。
2.n: このフラグは、サービス名を結論付けようとしないように ss に通知します。
3.t: このフラグは、表示 TCP ソケットを ss に通知します。
4. で: このフラグは、UDP ソケットを表示するように ss に通知します。
lsof で開いているポートを一覧表示する
lsof コマンドは、開いているファイルをリストするために使用できます。ただし、開いているポートを表示するためにも使用できます。
次のコマンドを実行できます。
$ lsof -i
特定のプロトコル (UDP、TCP など) のオープン ポートを取得するには、 '-私' フラグを指定すると、次のコマンドを実行できます。
$ lsof -i
nmapで開いているポートをリストする
nmap コマンドは、ポート/セキュリティのスキャンとネットワーク探索に強力なコマンドとして定義できます。システム内で開いている各ポートをレポートすることもできます。
次のコマンドを実行すると、開いている TCP ポートを一覧表示できます。
$ sudo nmap -sT -p- localhost
上で説明したように、このコマンドには 2 つのセクションがあります。
1. -sT: nmap ツールにスキャンを通知します。 TCP ポート。
2. -p-: これは、nmap ツールに次の間隔でスキャンするように通知します。 65535 ポート。 nmap ツールがスキャンします 1000 使用しない場合はデフォルトでポートのみ。
UDP の開いているポートをリストする必要がある場合は、次のコマンドを実行できます。
$ sudo nmap -sU -p- localhost
次のコマンドを実行して、UDP ポートと TCP ポートの両方を取得することもできます。
$ sudo nmap -n -PN -sT -sU -p- localhost
netcat で開いているポートをリストする
netcat ツールは、UDP および TCP プロトコル上の多くのネットワーク接続を介してデータを読み書きするためのコマンド ライン ユーティリティとして説明できます。また、開いているポートをリストするために使用することもできます。このツールは、特定のポートまたはさまざまなポート上でテストを実装できます。
以下の netcat コマンドは、ポートをスキャンするために使用されます。 1-1000。 デフォルトでは、TCP プロトコル上でスキャンが実装されます。
$ nc -z -v localhost 1-1000
また、特定のポートのリスト全体に拡張することもできます。
$ nc -z -v localhost 1-65535
これらのフラグを簡単に説明しましょう。
1. から: これは、データを転送せずに、開いているポートのみをスキャンするように netcat コマンドに通知します。
2. で: これは、netcat コマンドを冗長モードで実行するように通知します。
grep を使用して、用語に対して結果をフィルタリングできます。 「成功した」 このリストから開いているポートのみを取得します。
$ nc -z -v 127.0.0.1 20-80 | grep succeeded
UDP プロトコル上でスキャンを実装したい場合は、.含めることができます '-で' フラグ。
$ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded