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

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

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

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

ネットワークをリッスンするポートを確認するより信頼性の高い方法として 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 コマンドはサービスとオープンポートをリンクする機能があるため、同様の情報を netstat に表示します:

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 ページを参照して下さい。