印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Linux Dyn.com への自動ログインを Zabbix で

ダイナミック DNS の Dyn.com のサービスをフリーのまま続けるには,月に一度のログインが必要になった。Zabbix で自動ログインさせてみる。

■ ■ ■

はじめに

ダイナミック DNS のサービスを利用するのに,自宅の Linux サーバで ddclient を利用して IP アドレスの自動更新を行なっている (nlog(n): ddclient 3.8.1 の設定,さらに以前は nlog(n): ddclient 3.6.3 の設定)。利用しているダイナミック DNS のサービスは,当初は DynDNS だったが (nlog(n): ダイナミックDNSに登録),2011年8月に Dyndns.org は Dyn.com に統合され,サービスを提供するサイトの名前が変わっている (Welcome To The New Dyn.com! - Dyn)。

実は,これと同じことを書いたのは去年の今日である (nlog(n): ddclient 3.8.1 の設定)。IP アドレスを更新する ddclient はあれから問題なく動作しているのだが,新たな問題が出てきたのである。

Dyn.com からのメール

5月16日に,Dyn.com からメールが届いた。一部を抜粋したものが以下である。

SLA Update For Dyn Non-Paid Users

Starting now, if you would like to maintain your free Dyn account, you must log into your account once a month. Failure to do so will result in expiration and loss of your hostname. Note that using an update client will no longer suffice for this monthly login. You will still continue to get email alerts every 30 days if your email address is current.

ということで,「フリーアカウントで Dyn.com を使っているユーザは,月に一度ログインしなければならなくなった。ログインしなければ,使用中のホスト名は期限切れとなり,削除される。更新クライアントでのアップデートをしても,ログインしたことにはならない」だそうだ。それでもって「年額 $10 で Pro サービスにすれば月一ログインは不要」だって〜。

解決法は

ひと月に1度ログインすればいいのだし,きっとメールも届くだろうから,それほどの手間ではないようにも思えるが,メール見逃しの可能性もある。そんなことになれば大変である。このサイト自体が消えてしまうことになる。自動ログインできれば,私のようなうっかり者でもサイト消失を防げる。

自動ログインスクリプトは,wget, cURL などを使っても書けそうである。ここでは,試しに Zabbix の Web 監視機能を使ってみることにする。

動作環境

動作環境は Vine Linux 4.2, MySQL 5.0.27, PHP 5.2.9, Zabbix 2.0.1 である (nlog(n): Zabbix 2.0 のインストール)。

使用するのは Zabbix の Web 監視機能で,Zabbix 1.8 の日本語マニュアルが公開されている (9 WEB監視 [Zabbix])。Zabbix 2.0 でもこのまま使える。

Zabbix の設定

現在使用中の Zabbix は英語版なので,日本語版を使っている方は適宜読み替えを。「Web 監視」を使うには,「Host group の登録」→「Host の登録」→「Application の作成」→「Web Scenario の作成」の順で設定する必要がある。

ホストの登録

グループは既存のものを使ってもいいが,自宅外の監視なので「External」というグループを作ることにする。「Configuration」→「Host groups」画面で「Create host group」ボタンをクリックして作成する。

ホストの登録は,「Configuration」→「Host」の画面で,「Create host」ボタンをクリック。「Groups」には,上で登録した「External」を選択。「Agent interfaces」が必要かどうか分からないが,ひとまずは「DNS name: dyn.com」「Connect to: DNS」としておく。

この「Host」画面から「Applications」をクリックし,画面が遷移したら「Application」を作成する。「Host: Dyn.com」「Name: Sign in」としておく。このあたりはお好みで。

シナリオ作成のための事前調査

Scenario を登録する前に調査が必要である。ログインするサイトは https://account.dyn.com/entrance/ になっているので,まず,Web ブラウザでアクセスして HTML のソースを見て調べておく。ユーザ名の変数に「username」,パスワードの変数に「password」が使われていることが分かる。

シナリオの登録

そしていよいよ Web Scenario の登録である。「Configuration」→「Web」の画面で「Create scenario」をクリック。

Scenario タブ:

Application: Sign in
Name: Sign in
Authentication: None
Update interval (in sec): 3600 (確認後書き直す)
Agent: (お好きに)
Variables:
{username}=Dynユーザ名
{password}=Dynパスワード

Update interval にはログインする間隔を秒で指定する。あまりに短い時間にすると攻撃だとみなされて拒否設定されたりする可能性を考えると怖いので,最初は 3600 秒 (1時間) にしておいて,ログイン成功を確認したら 86400 秒 (1日),604800 秒 (1週間),1814400 秒 (4週間) などに書き換えるのがいいと思われる。

Steps タブ:

Name: Sign in
URL: https://account.dyn.com/entrance/
Post: username={username}&password={password}
Timeout: 15
Required string: Account Settings

「Required string」には,ログインが成功したときの画面にある文字列を指定する。マクロ {username},{password} は Scenario タブで設定された値が入力されてから Post される。

おわりに

Dyn.com に自動ログインするために Zabbix のシナリオを書いた。Dyn.com が仕様を変えてくると終わってしまうが,それまではこれで凌げそうだ。

2013年8月11日追記:
Dyn はこの方法のログインでは月に一度のログインとしては認識してくれなくなってしまいました。期限切れの5日前にメールが届くようになりました。

2014年5月5日追記:
Dyn 有料版に申し込みました (nlog(n): Dyn Remote Access に申し込んだ)。

Posted by n at 2013-05-29 23:15 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?