自社管理外のサーバの状況を調べるときに、先輩から教えてもらったのでまとめます。
WEBサーバについて調べる必要があったので、そちらを想定しています。
何にしても「・・・と推測される」という情報にとどまるので、情報を得ておくということが大事かもしれません。
- DNSの確認
- ネットワークの確認
- httpヘッダーの確認(WEBサーバの種類等)
DNSの確認
与えられたFQDN(仮にwww.example.co.jpとして)から調べていきます。
digコマンドで、
- ネームサーバはどこか
- IPはどこか
- 逆引き設定はどうなっているか
を確認できます。
ネームサーバはどこか
$ dig NS example.co.jp
IPはどこか
設定によってAレコードではなくCNAMEが返ってくることもあります。こちらでIPがわかります。
$ dig A www.example.co.jp
逆引きを調べる。
前記のAレコードの応答で 0.0.0.0 が返ってきたとして、以下のように調べ物をします。
$ dig -x 0.0.0.0
ネットワークの確認
Aレコードで調べたものから http://whois.nic.ad.jp/cgi-bin/whois_gw このURLのJPNIC whoisを使用してIPを調べます。
こちらで
- IPの割り当て状況
- IPのレンジがどのように割り当てられているか
- 共用サーバか専用サーバか 等の推測がもしかしたらできる
がわかります。
HTTPヘッダーの確認
WEBサーバに何を使用しているか等を確認できます。
(通常apacheだと使用しているサーバを隠す設定をしているのででないかもしれません。)
wgetを利用する
$ wget -S --spider www.example.co.jp
結果(IPとFQDNを変更しています。)
Spider mode enabled. Check if remote file exists.
--2015-06-16 10:25:35-- http://www.example.co.jp/
Resolving www.example.co.jp (www.example.co.jp)... 0.0.0.0
Connecting to www.example.co.jp (www.example.co.jp)|0.0.0.0|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Tue, 16 Jun 2015 01:25:35 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16 Phusion_Passenger/5.0.6
Last-Modified: Sun, 06 Apr 2014 13:01:21 GMT
ETag: "8de-4f65f58eb8a40"
Accept-Ranges: bytes
Content-Length: 2270
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Length: 2270 (2.2K) [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.
curl を使用する
$ curl --head www.example.co.jp
結果(IPとFQDNを変更しています。)
HTTP/1.1 200 OK
Date: Tue, 16 Jun 2015 01:29:44 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16 Phusion_Passenger/5.0.6
Last-Modified: Sun, 06 Apr 2014 13:01:21 GMT
ETag: "aaa-aaaaaaaaaaa"
Accept-Ranges: bytes
Content-Length: 2270
Content-Type: text/html; charset=UTF-8
また直接IPでアクセスしてみることで、WEBサーバがネームベースバーチャルか、IPベースかの推測も立てられます。それによってSSLの対応等も変わることがあるので確認すると良いとのことです。
まとめ
上記で情報が出ていれば
- どんなサーバか
- どんなネットワークか
に推測をすることが出来ます。
先輩曰く「ちなみにこれくらいの情報は都度、見てました。単なる興味、という面もありますが、現状を把握するのもエンジニアとして必要(というか当たり前)だと思ってる。」とのことです。
以上、メモでした。
追記1
sample.co.jpが実際にあるとのことで表記をexample.co.jpに変更しました。@bsdmadさんありがとうございます。