2013年7月26日金曜日

ダイナミック DNS を No-IP へ変更

我が家ではダイナミック DNS に、ずっと dyndns を使ってきました。かつてはウェブサーバーやメールサーバーを公開していました。現在は公開を中止していますが、電話交換ソフトウェアの asterisk のために、自己のグローバル IP アドレスを取得する目的でダイナミック DNS を使い続けてきました。

ところが使っていた dyndns の方針転換があったようで、基本的に有料化の方向へ向かってしまうそうです。現在無料で使っているものに関しては一ヶ月の間に更新すればアカウントは維持されるようなのですが、もう二度と無料のアカウントの取得は出来ないようです。

営業活動としてウェブサーバーやメールサーバーを公開しているのであれば、多少の経費負担は全く問題はないのですが、個人で使っている電話のために費用が発生するのは少々気が重たいものです。

そこでダイナミック DNS の乗り換えを検討しました。もちろん無料のものです。

どうも No-IP ( http://www.noip.com ) が良さそうです。そこで早速 No-IP のアカウントを取得してきました。手続き方法はここではあえて記述しませんが、取得方法を解説したブログがいくつか発見できます。

で、大切なことは、どのようにして No-IP のダイナミック DNS の IP アドレス情報を更新するかということです。

一応 No-IP 謹製の linux 用ソフトウェアはダウンロード可能となっています。しかし我が家では多くの linux マシンが稼働していますが、asterisk などが収容されて常時電源の入っているサーバーのシステムは FreeBSD なのです。そこで現在 dyndns の IP アドレス情報の更新で使用している ddclient を使用して更新する方向で検討しました。

/usr/local/etc/ddclient.conf.sample として設定ファイルの雛形があるのですが No-IP 用の設定が見当たりませんでした。そこでネット上で情報を検索すると No-IP で設定する事例を紹介しているブログをいくつか発見しました。これらの参考にして ddclient の設定ファイル ddclient.conf を編集しました。以下は私の FreeBSD のサーバーの事例です。

/usr/local/etc/ddclient.conf の記述例
daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
ssl=yes
use=web
login=[user-name]
password=[user-password]
server=dynupdate.no-ip.com, \
protocol=noip \
[user-domain].no-ip.biz

注意:「\」は同一行として記述するものを改行表示するときに使用するものです。

設定ファイルを変更したところで ddclient を再起動させました。
# /usr/local/etc/rc.d/ddclient restart

すると ddclient は動作を開始したもののエラーを吐き出しました。どうも以前から発生していたもののようです。

 Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER together with SSL_ca_file|SSL_ca_path for verification.
 If you really don't want to verify the certificate and keep the connection open to Man-In-The-Middle attacks please set SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
  at /usr/local/sbin/ddclient line 1860.

このエラーもネット上を検索してみるといろいろと「Man-In-The-Middle attacks」対策として同様のエラーが発生しているようです。このまま放置してもよいのですが、気になるので簡単に対策を行っておきました。

対策は perl で記述された ddclient の一部を修正するものです。上記のエラーメッセージにもありますようにエラーは /usr/local/sbin/ddclient の 1860 行目にあります。この 1860行目から始まる処理に SSL_VERIFY_NONE モードとなるように設定を追加しました。

$sd = IO::Socket::SSL->new( <−−(問題の1860行目)
PeerAddr => $peer,
PeerPort => $port,
Proto => 'tcp',
MultiHomed => 1,
Timeout => opt('timeout'),
SSL_verify_mode => 0, <−−(追加行です)
);

これでエラー表示はなくなりました。この対策は次のブログを参考にさせていただきました。どうもありがとうございます。
参考URL
システム管理メモ FreeBSD: Dropbox-api とSSL_verify_mode
http://www.lifewithunix.jp/notes/2012/12/06/dropbox-api-ssl_verify_mode/

この状態で No-IP と ddclient の動作状況をしばらく観察してみたいと思っています。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。