ネットワークサービス設定の後、どのポートがシステムのネットワークインターフェースをリッスンしているか注意を払う必要があります。オープンポートは侵入を意味します。
ネットワークをリッスンするポートを一覧にする基本的方法は2つあります。信頼性の低い方法としては、 netstat -an や lsof -i などのコマンドを入力し、ネットワークスタックをクエリする方法があります。プログラムがネットワークからマシーンに接続せず、何がシステム上で実行されているかを確認する方法のため、信頼性は低いと言えます。そのため、アプリケーションの置換を試みる攻撃者のいいターゲットとなってしまいます。クラッカーは不当なネットワークポートをオープンした場合、 netstat と lsof を自分の編集バージョンと入れ換えて、その侵入経路を隠そうとします。
ネットワークをリッスンするポートを確認するより信頼性の高い方法として 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)
このようなツールを使えばマシンで実行されているサービスの状態をかなり明らかにすることができます。また、ツールは柔軟性に富み、ネットワークサービスや設定に関する豊富な情報を提供してくれます。是非 lsof、 netstat、 nmap、 services の man ページを参照して下さい。