はじめに
Linuxシステムで作業しているときに、ネットワークの問題が発生したり、ファイアウォールを構成する必要がある場合があります。このような状況では、特定のポートが開いているかどうかを確認する必要があるかもしれませんか?
この記事では、Linuxシステムで開いているポートを特定するいくつかの方法の詳細について説明します。
このチュートリアルのすべての例は、Ubuntu20.04で実行されました。
オープンポートとは何ですか?
開いているポートは、外部からの着信パケットを受け入れるTCPまたはUDPネットワークポートです。
たとえば、SSHサーバーがLinuxシステムにインストールされている場合、ポート22でリッスンします。このポートがファイアウォールで開いている場合、リモートシステムのユーザーはシステムへのSSH接続を確立できます。ポート22は開いているポートであると言います。
アプリケーションが正しく実行できるために必要なポートのみを公開する必要があることを念頭に置いてください。セキュリティリスクを回避するために、他の不要なポートを閉じる必要があります。
nmapを使用して開いているポートを確認する
NmapはNetworkMapperの略です。これは、ネットワーク上のホストとサービスをスキャンするために使用される便利で強力なユーティリティです。
nmapは、ホストポートのスキャン機能の他に、MACアドレス、オペレーティングシステム、カーネルバージョンなども検出できます。
デフォルトでは、nmapはUbuntu20.04にプリインストールされていません。次のコマンドを実行してインストールできます:
$ sudo apt update
$ sudo apt install nmap
nmapが正常にインストールされていることを確認します:
$ nmap -version
出力:
次に、nmapを使用して、システムの開いているポートを確認します。コマンドを実行してみましょう:
$ sudo nmap -sT -p- 10.128.0.2
出力:
その中で:
-sT -p-は、nmapがすべてのTCPポートをスキャンすることを示します。
10.128.0.2は、ホストの内部IPアドレスです。
UDPポートをスキャンする場合は、-sUオプションを指定してnmapを実行します。
$ sudo nmap -sU -p- 10.128.0.2
出力:
netcatを使用して開いているポートを確認する
Netcatは、ネットワーク操作を実行する強力なコマンドラインツールです。ネットワーク間でデータを読み書きするためにTCPおよびUDPプロトコルを使用します。
Necatは、ネットワークポートのスキャンとリダイレクトにも使用できます。
IP10.128.0.2のUbuntu20.04マシンで20〜25の範囲の開いているポートを確認する場合は、次のコマンドを実行します。
$ netcat -z -v 10.128.0.2 20-50
出力:
その中で:
-zは、netcatが開いているポートのみをスキャンすることを示します
-vは詳細情報を端末に送信します
開いているポートのみを表示する場合は、次のコマンドを実行できます。
$ netcat -z -v 10.128.0.2 20-80 2>&1 | grep succeeded
出力:
UDPでポートをスキャンするには、次のように-uオプションを使用します。
$ netcat -z -v -u 10.128.0.2 20-80 2>&1 | grep succeeded
出力:
結論
このチュートリアルでは、Linuxシステムで開いているポートを確認するために使用できるいくつかの一般的なツールを紹介しました。
ご不明な点がございましたら、コメント欄でお知らせください。