PLANEXのNAS「MZK-NAS02」のWeb管理画面へログインできない件

PLANEXが昔売ってたNAS製品に「MZK-NAS02」というのがあったそうな。
NASが何かという話はここでは割愛する。


ハードディスクを自分で調達して導入するという変わったタイプのNAS
製品本体は安価だし、ハードディスクが壊れたときはNASメーカー純正品といわず
自分で好きなのを交換して直せるということから、コスパのいいNAS、だと思っていた。
それにJACK IN THE BOXなんていう中二病なネームもついていてカッチョイイです(?)


最初に(多分)専用のNAS検出ツールを使って、内蔵フラッシュROMからシステムデータを
装着したHDDに書きこんだ後、IPアドレスを設定し
NASに割り当てたIPアドレスをブラウザで叩くとウェブの設定画面が出てくる。
ルータなどのネットワーク機器でよく見かける設定画面ってやつだ。


NASの設定変更やシャットダウン処理、などはすべてこの画面から行う。
最初にRAIDやユーザIDの設定などを一通り済ませた後は、使う分には普通にファイルサーバとして
利用できたので、この画面のことなどすっかり忘れて使っていたのだが

ある日突然ログインできなくなった

ある日、NASを別の場所に動かさないといけない用事ができ、シャットダウンする必要に迫られた。
背面の電源スイッチオフでは、PCで言う電源長押しシャットダウンとなってしまい
これが原因で壊れては目も当てられないので、先ほどのウェブ画面にログインしてシャットダウンボタンを押す手順が必要だ。



ウェブ画面で管理者IDとパスワードを入力してもログインできない。


Loginボタンを押すと、一瞬だけ「ユーザ: root has just logged in...」と表示されて、またログイン画面に戻ってしまう。

・・・??


ルートでログインしていますよ〜ってことだよな?
でも、各設定画面は参照しかできないし、肝心のシャットダウン画面に入ると
「再起動やシャットダウンを行うにはrootでログインする必要があります。」と言われてしまう。

ブラウザがだめなのか?NASのシステムがぶっこわれたのか?

と考えて、Firefoxを使っていたのをInternet Explorerに変えてみたが同様。
設定した当時はInternet Explorer 7だったか?と思い、IE6が入っているマシンからアクセスしてみても同様。


ちなみに、パスワードが間違っていた場合の表示は「Username and Password do not Match!!!」となっているので
入力しているパスワードは合っているみたいだ。なのにどうして。


NASに付属のCDをなんとか探しだして、ハードディスクを再度フォーマットして
システム再インストールのようなことをしてみたりもしたが一向に改善されず。
(ちなみにすでに忘れてしまったが、NAS付属のCD-ROMはシステムの再インストールには必要なかった気がした)


実はこの製品、海外メーカーのSMC Networksというところが作っているSMCNAS02 TigerStore SOHO NAS Storage Serverとかいう
製品のOEM品らしいということがわかり、SMCNAS02のファームウェアを壊す覚悟で入れてみるか・・・?



と思っていたが、ひょんなことでログイン出来ない原因が判明。

結論から言うと、システムの欠陥

いろいろ調べてみた結果、結論から言うと、システムに欠陥があった。
2000年問題じゃないけど、ある日付を超えると管理画面にログインできなくなってしまう、という欠陥。


対処方法は、アクセスするPCのシステムクロックを2010年11月10日以前に戻して
Internet ExplorerFirefoxでアクセスするとちゃんと表示される。


少なくともGoogle Chromeはバックグラウンドで動き続けているせいか
システムクロックを直した直後にログイン試行してもだめだった。
一度シャットダウンしてもういっぺん立ち上げ直せばうまくいくのかもしれないが
システムクロックを過去にいじっているような状態で再起動なんてしたら
ファイルのタイムスタンプがぐっちゃぐちゃになってクライアントPCがポックリいっちゃうかもしれないので
やめておこう。

なんで時計が2010年だとログインできるの?

Firefoxのアドオン"Live HTTP Headers"でNASにログインする際のHTTPヘッダを見てみたらわかったのだが
ログイン後にNASから送られてくるCookieの有効期限がこの日付になっているからである。

まずは、ログインを行おうとしているときのHTTP要求は以下のとおりである。
正直どうでもいいので見なくてもいい。

POST /Login HTTP/1.1
Host: 192.168.1.2
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://192.168.1.2/
Content-Type: application/x-www-form-urlencoded
Content-Length: 35
login=root&pass=&login_button=Login

そしてNASから帰ってくるHTTPレスポンスヘッダは以下のとおり。
こちらが問題。

HTTP/1.0 200 OK
Content-Length: 2882
Content-Type: text/html
Expires: Fri, 04 Nov 1900 13:25:03 GMT
Cache-Control: max-age=0, no-store, no-cache, must-revalidate
Set-Cookie: User=root; expires=Wednesday, 11-Nov-2010 11:23:11 GMT
Set-Cookie: sId=1030423109; expires=Wednesday, 11-Nov-2010 11:23:11 GMT

この、レスポンスヘッダのSet-Cookieヘッダに注目いただきたい。
Set-Cookieでは、Web管理画面に入っている間、ブラウザにCookieを食わせていないといけないのだが
このCookieの有効期限(Expires)が2010年の11月11日、11時23分11秒となっている。
ここに記載されている時刻はGMTなので、日本時間(JST)に直すと20時23分11秒で強制ログアウトというわけだ。


というわけで、この時刻以降にログインしようとしても、ログインした瞬間に強制ログアウトとなってしまうわけで
結果的にログインができていないように見えてしまうというとんでもない欠陥商品


だいたいいつの製品だよこれとおもって調べてみたら2007年発売*1なので、製品寿命としては3年しかなかったことになるわけで......
保証期間が1年だからいいんですかねー


直そうとおもったが直せなかった

このSet-Cookieしているスクリプトか何か直せば、この2010年問題(?)が解決できるんじゃね?と思って
SSHで乗り込んで調べてみたがよくわからず挫折。


/var/nascfg/httpDocs/あたりにファイルがいろいろ転がっているので
SSHログインしてみて、直せたという方はご一報ください。