最近はhttpプロトコルでのアクセスが異様に多くて何でもかんでもhttp/httpsになってきているので接続の確認方法いろいろ紹介します。
やたらとプロキシ・サーバーがあったり妙なアクセス制限があったりFWの設定情報を開示してくれなかったり世の中いったいどうなってんでだというところではありますが、順を追えばわかったりしますので根気強くハックしましょう。
例えば以下のようなURLにアクセスできないとします。ステータスが403になってしまったなどです。
host.example.com
どういう理由かはわからないので、取り急ぎdigでIPアドレスを求めます。
$ dig host.example.com
xxxxx.com. 60 IN A 12.34.56.789
xxxxx.com. 60 IN A 12.34.56.780
こんな感じになっていたら、pingしてみます。
ping 12.34.56.789
ping 12.34.56.780
疎通してなかったらそれはそれで。pingを禁止しているサーバーもたくさんあるので、これは参考程度に。
ではどこで止まっているかtracerouteしてみます。
# traceroute 12.34.56.789
traceroute to 12.34.56.000 (12.34.56.000), 30 hops max, 60 byte packets
1 foo.example.com (12.34.56.1) 0.704 ms 0.641 ms 0.583 ms
2 bar.example.com (12.34.56.2) 0.878 ms 0.836 ms 6.363 ms
3 boo.example.com (12.34.56.3) 0.983 ms 0.942 ms 0.897 ms
....(省略)
15 puu.example.com (12.34.56.999) 3.635 ms 12.34.56.888 (12.34.56.888) 3.536 ms 12.34.56.777 (12.34.56.777) 3.469 ms
16 * * *
17 * * *
12.34.56.999で止まっている、という感じで調べます。
そしてIPアドレスを調べるサイトがたくさんあるので、そういうところでLocationを調べます。
Lookup IP Address Location
国内のどっかだったり、GOMだったりAWSだったりいろいろわかります。
とまっているところが実際にとまっているところなので、そこでIP制限されている可能性が高いです。
ダメ元でやってみる。
$ wget http://host.example.com/
当然何も取得できない。
curl http://host.example.com/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
</body></html>
当然とれない。
httpヘッダーを取得してみる。
$ curl --dump-header - http://host.example.com/
HTTP/1.1 403 Forbidden
Accept-Ranges: bytes
Cache-control: no-cache="set-cookie"
Content-Type: text/html
Date: Tue, 12 Dec 2017 15:23:03 GMT
ETag: "8d-5512397f9f7c0"
Last-Modified: Sun, 04 Jun 2017 14:56:39 GMT
Server: WebOTX_Web_Server
Set-Cookie: AWSELB=1FCD552C90F3EB40D3AE75B59F57C6AF9D958404D8130213FD7BE35CD1529F0ABA0F51E49AAA3A39052E9CCEA3D26933F712FA3FA8A2B1CB680C7613888942540C9462D9;PATH=/
Vary: Accept-Encoding,User-Agent
Content-Length: 141
Connection: keep-alive
ダメですね。
こうなったら全部はずしで。考えられるもの全部。
ここらを全部はずして最初からやってみる。