48.2.8. リッスンしているポートの確認
ネットワークサービスを設定したら、システムのネットワークインターフェイスで実際にリッスンしているポートに注意することが重要です。開いているポートはすべて、侵入によるものです。
ネットワーク上でリッスンしているポートを一覧表示する基本的な方法は 2 つあります。信頼性が低いアプローチは、netstat -an や lsof -i などのコマンドを使用してネットワークスタックをクエリーすることです。この方法は、これらのプログラムはネットワークからマシンに接続されないため、信頼性は低くなりますが、システムで実行されているものを確認してください。このため、これらのアプリケーションは攻撃者が交換するためのターゲットを頻繁に使用します。クラッカーは、netstat と lsof を独自の修正バージョンに置き換えて、承認されていないネットワークポートをオープンした場合に、その追跡をカバーしようとします。
ネットワーク上でリッスンしているポートを確認するためのより信頼性の高い方法は、nmap などのポートスキャナーを使用することです。
以下のコマンドは、ネットワークから TCP 接続をリッスンするポートを決定します。
nmap -sT -O localhost
nmap -sT -O localhost
このコマンドの出力は、以下のようになります。
この出力は、
sunrpc
サービスが存在するため、システムが portmap を実行していることを示しています。ただし、ポート 834 には mystery サービスもあります。ポートが既知のサービスの公式リストに関連付けられているかどうかを確認するには、以下を入力します。
cat /etc/services | grep 834
cat /etc/services | grep 834
このコマンドは出力を返しません。これは、ポートが予約済み範囲(0 から 1023)にあり、root アクセスが開いているのに対し、既知のサービスに関連付けられていないことを示しています。
次に、netstat または lsof を使用してポートに関する情報を確認します。netstat を使用してポート 834 を確認するには、次のコマンドを使用します。
netstat -anp | grep 834
netstat -anp | grep 834
このコマンドは、以下の出力を返します。
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
netstat に開いているポートが存在するのは、クラッカーがハッキングシステムで誤ってポートを開くことは、このコマンドで認識できない可能性が高いためです。また、
[p]
オプションは、ポートを開いたサービスのプロセス ID (PID)を表示します。この場合、オープンポートは ypbind (NIS)に属します。これは、portmap サービスとともに処理される RPC サービスです。
lsof コマンドは、開いているポートをサービスにリンクできるため、netstat と同様の情報を表示します。
lsof -i | grep 834
lsof -i | grep 834
このコマンドからの出力の関連部分は以下のとおりです。
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
これらのツールは、マシンで実行しているサービスのステータスについて非常に多くのことを示しています。これらのツールは柔軟で、ネットワークサービスおよび設定に関する情報を提供します。詳細は、lsof、netstat、nmap、および
services
の man ページを参照してください。