サーバー監視ツールを作ろう – 9日目「IPアドレス監視」

2019年6月6日

テクノロジー プログラミング 特集

前回までの内容でサーバーのヘルスチェック系で必要な情報は所得できるようになったんですが、ここから先は自分がサーバー運用をしていた時に「サーバー監視で、あったらいいな・・・」と考えていた機能をいくつか考えてみようと思います。 サーバーに必要な要素としてIPアドレスがありますが、IPアドレスの管理はサーバー管理者にとってなかなかめんどくさいモノです。 サーバー構築時にはネットワーク設定を行う時に必要で、ドメインを付与するときにはDNS登録するときにも必要になります。 今回作っている監視システムなどの場合は、そうした設定の完了した後になりますが、サーバーの不調を感じた時はpingを叩いたり、アクセス確認する際にも利用します。 最近では、DNSハッキングというセキュリティ攻撃もあり、DNS側をハックしてIPアドレスの向き先を変更して、改竄するよりも全く違うサーバーに向き先を変えてしまう恐ろしいフィッシング詐欺のようなやり方も増えてきているそうです。 とりあえず、管理しているサーバーのIPアドレスが今現在、どの値になっているかをロギングできたら、滅多に使わないですが、ハッキングした時の検知などに役立つという事で、サーバーのIPアドレスを簡単に監視できる方法を検討してみました。

IPアドレスの取得方法4パターン

ドメインから、WEBで公開されているサーバーのIPアドレスを取得したい場合に、下記の4パターンでIPアドレスを取得することができます。 (今回のやり方は、linuxサーバーからの実行を想定しています) $ ping wordpress.ideacompo.com -c 1 PING wordpress.ideacompo.com (157.65.28.118): 56 data bytes 64 bytes from 157.65.28.118: icmp_seq=0 ttl=55 time=10.500 ms --- wordpress.ideacompo.com ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 10.500/10.500/10.500/0.000 ms 基本中の基本「PING」コマンドですが、普通にpingを実行すると、止まれと命令するまで値を繰り返し取得してしまうので、-cオプションで1回のみの実行をしていします。 (windowsの場合は-nオプション) IPアドレスとttl、レスポンスタイムなどが取得できるので、遅延しているサーバーであれば、この時点で障害検知することも可能ですね。 $ host wordpress.ideacompo.com wordpress.ideacompo.com has address 157.65.28.118 あまり馴染みのない「host」コマンドですが、IPアドレスの取得や、DNSで持っているタイプ情報などが取得できます。 メールサーバーなどでの監視は有効ですね。 $ nslookup wordpress.ideacompo.com Server: 192.168.0.1 Address: 192.168.0.1#53 Non-authoritative answer: Name: wordpress.ideacompo.com Address: 157.65.28.118 nslookupは、ローカル情報も表示してくれて、結果表示の値が取りやすいようになっているので、監視コマンドには向いていますね。 ちなみに、3行目の#53というのは、コマンド実行の際のDNSサーバーまで表示してくれていて、発信元の監視をすることも可能です。 $ dig wordpress.ideacompo.com ; <<>> DiG 9.10.6 <<>> wordpress.ideacompo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18021 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;wordpress.ideacompo.com. IN A ;; ANSWER SECTION: wordpress.ideacompo.com. 2844 IN A 157.65.28.118 ;; Query time: 14 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Tue May 28 08:22:38 JST 2019 ;; MSG SIZE rcvd: 68 最後に、digコマンドですが、情報量の多さはピカイチです。 DNSレコードまで表示してくれるので、DNS改竄があると検知が早くできるコマンドですね。

GoogleのDNS検知ツール

https://toolbox.googleapps.com/apps/dig/ なんとGoogleが公開しているサービスでDNS情報を取得できるツールがありました。 ドメインを入力して実行するだけで、DNSのタイプ別の情報を表示してくれます。 URLを見て気がつく人もいると思いますが、これはdigコマンド情報なんですね。 API的にこのサービスをスクレイピングして簡単に情報取得することもできるかもしれませんね。 規約違反になるかもしれませんが・・・その点は自己責任でお願いします。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。