ダイナミック 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 はあれから問題なく動作しているのだが,新たな問題が出てきたのである。
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 は英語版なので,日本語版を使っている方は適宜読み替えを。「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 に申し込んだ)。
Master Archive Index
Total Entry Count: 1957