MyBook LiveというNASでWEBサイトをホストしてみた。実践編その1

Mybooklive、サーバー化の第一歩

というわけで、Western Ditigalの廉価版のNAS Mybook LiveをWebサーバー化する方法を
書いておく。
まずはSSHによるターミナルアクセスを アクティブにする。
MybookLiveではGUIの隠れコマンドになっている。
まず、MybookLiveにログインした状態で、WEBブラウザーの”192.168.1.25/UI”などとなっているアドレスバー上のアドレスを”192.168.1.25/UI/ssh” というように”ssh”を追加することで、sshのコントロールパネルが開く。 ここでsshにチェックマークを入れるだけで完了。
他のMybook製品に比べるとかなり手順が簡単になっているらしい。
これでセキュアシェルのログインができるようになったわけで、UbuntuなどのLinux機からのアクセスはターミナルからsudo ssh root@192.168.1.25 などとやるだけでよいのだが、 Windowsからの接続はPuttyというユーティリティプログラムが必要。
上のリンクからPutty.exe.をダウンロードして実行する ホストネームまたはIPアドレスを入力してSSHを指定してOpenするとリモートログインのコマンド画面になる。root ログインでデフォルトのパスワードはwelc0meになっている(英語のオーではなくゼロであることに注目)
ちなみにこれはMybook liveのデフォルト値なので、外部アクセスを許すつもりなら、パスワードは変更しておいたほうがよい。”Unixコマンド:passwd”
ハックサイトではナノというエディターを使うことを推奨している。このエディタはnano filename で起動できるが、同じユーザーネームとパスワード、そしてport 22指定で、sftp接続もできるので、 Filezillaからsftpで接続し、ファイルのエディットはFilezillaのView/Edit機能を使ってWindows環境で行うこともできる。
オプショナル:
いつもrootで接続するのも気持ちわるいので他のユーザー名を追加しておく
useradd user1 -p user1password
しかしこのままではuser1はsshからアクセスすることはできない。/etc/ssh/sshd_config の中にあるAllowUsers directive にuser1を追加する
AllowUsers= root
これを
AllowUsers= root user1
と変更し、ファイルを読み込ませるために以下を実行
/etc/init.d/ssh reload
ところで
sshのデフォルト設定ではパスワード無しのログインはできないようになっているので(sshd.conf中で設定されている)パスワードを空白に指定するとアクセス不能になる。 まさかと思ったがネットの記事を見るとRoot権限のパスワードの設定を空白にしてしまう人もいるらしいので ご注意を。 しっかし root で侵入されて cd / ; rm * とでもやられることをかんがえないのだろうか?
次にはPHPを実装したWEBサーバーは簡単に構築できる、というか、すでに実装されている。 その証拠にIPアドレスを入力してあげるとhttp://mybookliveaddress/UI というアドレスに自動的に飛んでログイン画面になるわけでしょう? これってWebサービスですよ。
FileZilla で、中身をのぞいてみると /var/wwwというところにWEB用のページがおかれていることがわかるので、ここにソフトリンクをはってしまえばよいことになる。
ln -s shares/Public/WWW /var/www/myweb
上の例ではPublic Share にWWWというフォルダーをつくり、これをホームページとしてサーブしてもらう感じ。
他の手段としては フランスのどなたかが、FeaturePackというユーティリティを作ってくれている。
これだとmybooklive:8080 が通常のWEBサイトに、 さらにhttps://mybooklive がメディアサーバーとしてセットアップされるようになっている。
そのうちに説明をポストするけど、いつになるかわからないので、英語に自信のある方は自分でやってみてください。

また、どちらもMySQLデータベースは実装されていないので、WordPress などMySqlサーバーが必要なCMS等を運用する場合には aptitude、あるいはapt-getを使って追加してあげる必要がある。  これもそのうち説明します。(まだ2日しか動かしていないのではっきり作動しているという保障がないので)

MyBook LiveというNASでWEBサイトをホストしてみた。イントロ

行き当たりばったりに生活しているというのはおそろしいもので、 まず最初は突然我が家のPCのメインOSとなっているWindows Vista を Windows 7にアップグレードしようとおもったのが発端だった。

ハードディスクの中身を見てみると500ギガバイトの残りが100ギガバイトを切っている。アップグレードする前にバックアップしようと思ったのだがバックアップするスペースがない。

大半はごみデータだというのはわかっているのだが、全部見ていって整理する自信がなかったので、バックアップ用のハードディスクを購入することにした。

NetWorkに接続できるハードディスクで安いものをと探したらBestBuyで Western DigitalのMybook Liveというのがセールになっていたので買って来た。 ちなみにこのようなデバイスをNAS(Network Attached Storage)と言うようだ。

1テラバイトで130ドルだった。 電源を接続するとブートアップし、IPアドレスを通してブラウザベースのユーザーインターフェースで中身を色々設定できる。ネットワークにハードディスクがぶら下がってビデオとか写真のデータを入れておけば、家庭内のパソコンからアクセスできる。 便利である。 MioNetというサービスを使えば、外部からも接続が可能らしい。

インターネットで情報を見ていたら、このデバイス、実はDebianLinuxで作動している、ということがわかった。 ちなみにCPUは800MhzのパワーPC,メモリーは256MB. さらに裏技でターミナルモードでLinuxにリモートログインができる、ということもわかった。  Western DigitalではMyBookシリーズを色々だしているようだが、これをLinuxのコンピューターとして使ってしまおうというユーザーが情報を交換しあっているサイトがあるのを見つけた。

 

で,試している途中ではUIがつかえなくなりそうになったりとか色々てこずった部分もあったが、結果的にどうなったかというと、このサイトの情報を参考にしながら、WEBサーバーを構築し、その中でPHPとMySQLも動かすことができるようになった。 もちろん従来のNASとしての機能もしっかり動作している。

ただし、一旦改造したものに対し、ファームウエアアップデートをうっかりおこなうと、せっかく設定したLinuxのイメージの部分を全部書き直すことになるそうで、 そうすると、ハックした部分はすべてまっさらになってしまい、もとの木阿弥。そうなった場合のリストアの手段も考えておかなくてはならない。

これだけで、内部でテスト用のLinuxべーす、Apache WEBサーバーとして使える。

次にこのウェブサーバーを外部からアクセスする事もできるようにするためにはドメインネームを確保しなければならないが、ドメインネームというのは固定したIPアドレスに割り当てられるものだとばかり思っていた。 我が家のインターネット環境はプロバイダによって割り当てられるIPアドレスがダイナミックアドレスになっていて、ケーブルモデムをリセットしたりした場合に同じアドレスに落ち着くという保障はどこにもない。 これは、どちらかといえば普通の環境だと思う。 ちなみに我が家はComcastという米国大手のケーブルサービスを使っている。

世の中良くしたもので、このようなユーザーのためにDDNS(DynamicDomainService)というのがある。 常にIPアドレスを監視していて、変更があったらすぐにドメインのアドレスに反映される。 自分はTZOという有料のサービス(年間30ドル)を使ったがDynDNSとか、NO-IPとか無料のサービスもあるようである。 自分が使っているシスコの無線ラウターには最初からDDNSをサポートする機能がついていて、これを使ってTZOの設定を行うとusername.linksysnet.comというようなドメインネームで外部から自宅のルーターまでたどり着くことができる。 ルーターのWEB専用のポートをMyBookLiveにフォワードするように設定しておくと、 外部からMyBookLiveのWebサーバーに接続される。

というわけでHostService無し、専用のサーバーPCを自宅で常に電源ONしておく必要もない、という状態で、Webサイトの運営ができるようになった。データ量が大きいサイトには使えないかもしれないが、ひっそりと使うサイトはこれで十分かも。

Today’s quote of the day

Never make your home in a place. Make a home for yourself inside your own head. You’ll find what you need to furnish it – memory, friends you can trust, love of learning, and other such things. That way it will go with you wherever you journey. ~Tad Williams

running hmailserver inside comcast.net, relaying to smtp.comcast.net

Ok,

Ingredient:

Home computer “A”  working as a server

linksys router that comes with ddns setup firmware for tzo.com

htmailserver running on the home computer “A”.

port forward set up for the linksys router port 25 (for smtp) and port 143 (for imap), pointing to computer “A”‘s ip address.

set up the linksys router with Tzo.com (or dyndns.com) so that “mydomain.linksysnet.com” is now recognized from the outside world, pointing to computer “A”

Using htmailserver administrator, configure imap account.  this is straightforward. For the sake of clarity, let’s say I have created “mydomain.linksysnet.com” domain in the administrator program, then I add an account “john@mydomain.linksysnet.com” I also set up a password for this account, lets say “*htpassword*” is my password

‘attach’ existing external e-mail accounts to the “john@mydomain.linksysnet.com.”  In that way, all my e-mail accounts will be collected by this imap server.

receiving mail part is done.  this was straight forward.

The reason for this post is to document what had been done for email sending part.  this turns out to be a trciky part. There are a lot of posts about comcast smtp server relaying for hmailserver.   To make a long story short, the relaying of mail to smtp.comcast.net does work. here is how.

htmailserver side  : Settings->Prootcol->SMTP in “Delivery of e-mail” tab,

localhost name =”smtp.mydomain.linksysnet.com”

SMTP relayer : Remote Host name =”smtp.comcast.net”  Remote TCP/IP port =”25″

Server Requires Authentification=”Checked”  Username : your comcast mail address, ie “johnsmith@comcast.net” (Since you are a comcast customer, you do have one, don’t you?)

Password=password for johnsmith@comcast.net”

Use SSL =Unchecked

That’s all for htMailserver side.

Now I want to use my e-mail client (such as Thunderbird) to connect to htmailserver from other computer “B”. Since I setup the imap server, all  emails will be stored in the server (computer A) and not in the local folder (of computer B).  This is good because I wanted to access mails from multiple PCs.

Assuming Thunderbird as mail client,

mail protocol is imap.  server name for recieving mail is imap.mydomain.linksysnet.com.  Port is 143. Thunderbird should automatically configre this for you, if the hmailserver is properly set up and running (amazing)

For e-mail sender, the servername is smtp.myname.linksysnet.com.   you use plain password to send an email and the username is “john@mydomain.linksysnet.com”, password you are going to use is “*htpassword*”  and port you are going to use is 25

That’s all there is to it.  with this setup, I can send e-mail from ‘john@mydomain.linksysnet.com” to any e-mail addresses.

Its thrilling to see my email is now sent from “john@mydomain.linksysnet.com” rather than “johnsmith@comcast.net” tzo let you use your own domain name rather than linksysnet.com subdomain (for fee) so it is possible to have e-mail address such as john@smiths.info.