nmap でローカルマシンの脆弱性チェック

ポートスキャンは、対象のマシンと経路上のネットワークに負荷をかける。自分が管理していないマシンに対して実行した場合、不正アクセス禁止法などに触れる可能性がある。スキャンは、自分が管理するマシンに対してのみ実行する。

このページでは、自分が管理する Solaris マシンで、そのマシン自身に対して nmap を実行し、開いているポートを確認する手順をまとめる。

インストールと実行

nmap の最新の安定版は 7.991 である。ソースを取得し、ビルドしてインストールする。

cd /tmp
wget https://nmap.org/dist/nmap-7.991.tar.bz2
bzip2 -cd nmap-7.991.tar.bz2 | tar xvf -
cd nmap-7.991
./configure
make
su
make install
exit

自分のマシンに対してポートスキャンを実行する。1 番目のコマンドは既定のスキャン、2 番目のコマンドは TCP コネクトスキャンである。「-Pn」は、事前の到達確認を省略するオプションである。

nmap localhost
nmap -Pn -sT localhost

不要なサービスを止める

スキャンの結果、使っていないサービスのポートが開いている場合には、そのサービスを停止する。

Solaris 10、11 の場合

inetd 経由のサービスは SMF(サービス管理機能)で管理されている。次のサービスは、通常は使わないので停止する。

su
svcadm disable svc:/network/echo:stream
svcadm disable svc:/network/echo:dgram
svcadm disable svc:/network/discard:stream
svcadm disable svc:/network/discard:dgram
svcadm disable svc:/network/daytime:stream
svcadm disable svc:/network/daytime:dgram
svcadm disable svc:/network/chargen:stream
svcadm disable svc:/network/chargen:dgram
svcadm disable svc:/network/time:stream
svcadm disable svc:/network/time:dgram
exit

次のサービスは、必要が無ければ停止する。ftp は、そのマシンで ftp の要求を受け付ける場合に必要である。printer は、そのマシンにプリンタを接続して共有する場合に必要である。

su
svcadm disable svc:/network/ftp:default
svcadm disable svc:/application/print/rfc1179:default
exit

停止したことを確認する。

svcs -a | grep network

Solaris 9 以前の場合

/etc/inetd.conf の該当する行の先頭に「#」を付けてコメントアウトする。対象は、echo (7/tcp)、discard (9/tcp)、daytime (13/tcp)、chargen (19/tcp)、time (37/tcp) である。ftp (21/tcp) と printer (515/tcp) は、必要が無ければ同様にコメントアウトする。

編集後、inetd に設定を読み直させる。

su
pkill -HUP inetd
exit