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

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

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

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

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

nmap -sT -O localhost

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

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-09-24 13:49 EDT
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT      STATE SERVICE
22/tcp    open  ssh
25/tcp    open  smtp
111/tcp   open  rpcbind
113/tcp   open  auth
631/tcp   open  ipp
834/tcp   open  unknown
2601/tcp  open  zebra
32774/tcp open  sometimes-rpc11
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
Uptime 12.857 days (since Sat Sep 11 17:16:20 2004)
 
Nmap run completed -- 1 IP address (1 host up) scanned in 5.190 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 ページを参考してみて下さい。