5.8. リッスンするポートの確認

ネットワークサービス設定の後、どのポートがシステムのネットワークインターフェース をリッスンしているか注意を払う必要があります。 オープンポートは侵入を意味します。

ネットワークをリッスンするポートを確認する基本方法は2つあります。 信頼性の低い方法として、 netstat -an or lsof -iなどのコマンドを入力し、ネットワークスタックをクエリーする方法があります。 プログラムがネットワークからマシーンに接続せず、システム上で実行されているかを 確認する方法のため、信頼性は低いと言えます。 そのため、アプリケーションの置換を試みる攻撃者のいいターゲットとなってしまいます。 クラッカーが不当なネットワークポートをオープンした場合、侵入経路を隠そうとします。

ネットワークをリッスンするポートを確認する信頼性の高い方法として nmapなどのポートスキャナーを使用する方法があります。

コンソールから発信される次のコマンドによって ネットワークのTCP接続をリッスンしているポートを特定することができます。:

nmap -sT -O localhost

このコマンドの出力は次のようになります。

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1596 ports scanned but not shown below are in state: closed)
Port       State       Service
22/tcp     open        ssh
111/tcp    open        sunrpc
515/tcp    open        printer
834/tcp    open        unknown
6000/tcp   open        X11
Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)

Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

この出力を例としてみると、sunrpcが存在するため、 システムがportmapを実行している状態になっていますが、 未確認のサービスがポート834に存在しています 。このポートが既知サービスと関連があるか 調べるには次を入力して下さい。:

cat /etc/services | grep 834

このコマンドからの出力はありませんでした。 これはポートが指定された範囲(0から1023)にあり、オープンするのにルート接続を 必要とし、既知サービスとは関連がないことを示します。

次にnetstat又はlsofを使用し、 ポート情報を確認して下さい。 netstatでポート834を確認するには、 次のコマンドを使用して下さい。:

netstat -anp | grep 834

コマンドが次を出力しました。:

tcp   0    0 0.0.0.0:834    0.0.0.0:*   LISTEN   653/ypbind

侵入したシステムで内密にポートをオープンするクラッカーは、このコマンドに よって発見されないようにするため、 netstatのオープンポートの存在が再確認されたことになります。 また、[p]オプションによって、 ポートをオープンしたサービスのプロセスID (PID)が判明しました。 このケースでは、オープンポートはportmapサービスと併せて使用されるRPCサービス ypbind (NIS)に属しています。

lsofコマンドはサービスとオープンポートをリンクする機能があるため、 同様の情報を明らかにしました。:

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)

このようなツールを使えばマシンで実行されているサービスの状態を かなり明らかにすることができます。 また、ツールはフレキシブルで、ネットワークサービスや設定に関する豊富な情報 を提供してくれます。 是非lsofnetstatnmapservices のman ページを参考してみて下さい。