LANDISK HDL4-Gにtelnet[追記あり]

2017年5月6日NAS,パソコン・インターネット

ついにやりました。ずっとやろうと思って、計画していたこと。それは、LANDISK HDL4-Gにtelnetを入れることです。正確には、telnetは最初から入っていて、それを有効化するだけです。

[amazonjs asin="B000PGVH92" locale="JP"]

この記事で紹介したリンク以外にも、telnet有効化の記事はたくさんあります。大変参考になりました。ありがとうございます。

以下の内容を実行すると、LANDISKを壊してしまうかもしれません。自己責任でお願いします。また、データの事前バックアップもしておいた方が良いと思います。

telnetの有効化は、大体、次の手順です。

  1. データのバックアップ
    1. 共有フォルダのバックアップ
    2. システム領域のバックアップ
  2. ファームウェアアップデートファイルの準備
  3. ファームウェアアップデート
  4. telnetdの起動確認
  5. telnetで接続し、最低限のセキュリティ設定
    1. パスワード設定
    2. /etc/securettyの設定
    3. /etc/init.d/rc.localの修正
    4. おまけ
  6. 再起動して動作確認

(1)〜(4)は、Mac OS X/Ubuntuなどで実行します。(5)〜(6)はHDL4-Gの中でします。

(1)データのバックアップ

データをバックアップするのが一番大変です。

(1-1)共有フォルダは、ディスクをマウントしておいて、tarでバックアップしました。私は、作業をMac OS Xでしました。Ubuntuでも同様の方法でできると思います。/Volumes/HD1は、外付けのハードディスクです。バックアップには、十分な容量が必要です。

$ cd /Volumes/LANDISK
$ tar cpf – data | (cd /Volumes/HD1 ; tar xpf – )

(1-2)システム領域は、HDL4-G内のハードディスクを取り出し、直接Ubuntu 9.10につないで、ddでバックアップしました。ddでダンプするだけなので、デバイス名さえわかれば、Mac OS Xでもできると思います。バックアップには、合計、600MB強位の領域が必要です。

$ cd
$ mkdir LANDISK_backup
$ cd LANDISK_backup
$ sudo dd if=/dev/sde1 of=sde1.img
$ sudo dd if=/dev/sde2 of=sde2.img

Ubuntuにつないだ時のデバイス名は、Ubuntuメニューの、システム→システム管理→ディスク・ユーティリティで調べました。USB 2.0とIEEE1394の両方を試してみましたが、どちらも、/dev/sde1と/dev/sde2でした。

telnetができるようになってから調べてみたところ、/dev/sde1は"/boot"、/dev/sde1は"/"にマウントされている様です。

システム領域のバックアップを取ったものの、RAID-5で組まれているデータをリストア出来るかどうかは、不明です。

ddによるバックアップは、次のページを参考にさせていただきました。ありがとうございます。

(追記 2013-02-20 06:46 システム領域は、別の領域にあるらしく、ここに書いた方法では不完全な様です。)

(追記 2013-05-06 21:44 次のページに、システムのバックアップ方法を掲載しました。リストアできるかどうかは、未検証です。)

(2)ファームウェアアップデートファイルの準備

ファームウェアアップデート用データの準備が、telnet有効化の鍵です。

調べた限り、telnetの有効化には、大きく分けて二つの流派があることがわかりました。

  • 純正ファームウェアアップデート内のファイル(rc.local)を書き換える
  • 擬似ファームウェアアップデートでアップデートする

現在リリースされているHDL4-Gのファームウェアバージョンは1.21です。私が使っているHDL4-Gのファームウェアバージョンは1.20でした。ファームウェアのバージョンアップを兼ねて、rc.localを書き換える方法を選びました。

このページに記載されている通りに実行し、うまく行きました。ありがとうございます。

自分のメモ用に、まとめ直させていただきます。pオプションが重要だそうです。

純正ファームウェアは、Mac OS X用がZIPファイルになっているので、扱いが楽です。以下の作業は、Mac OS XかUbuntuでします。私は、Ubuntuで作業しました。純正ファームウェアを、~/Downloadsにダウンロードしたとします。

$ cd
$ mkdir work
$ cd work
$ mv ~/Downloads/hdl4_f121.zip .
$ unzip hdl4_f121.zip
$ cd hdl4_f121
$ mkdir update
$ tar zxvfp update.tgz -C update
$ cd update
$ mkdir update-files
$ tar zxvfp update-files.tar.gz -C update-files
$ cd update-files/etc/init.d
$ vi rc.local

rc.localは、ファイルの最後に、次の行を足します。

/usr/sbin/telnetd -l /bin/sh

update.tgzを作り直します。

$ tar zcfp ../update-files.tar.gz .
$ cd ..
$ rm -rf update-files
$ tar zcfp ../update.tgz *

すでに、最新のファームウェアにアップデートしている場合は、この方法は使えません。擬似的なファームウェアアップデートファイルを作る必要があります。

この方法は次のページが参考になると思います。勉強させていただきました。ありがとうございます。

結局、原理的な事は、次のページの通りのようです。ありがとうございます。

(3)ファームウェアアップデートの方法は、取扱説明書を見て下さい。違うのは、(2)で準備したファームウェア"update.tgz"を指定する事です。

(4)ファームウェアアップデート

HDL4-Gが起動したら、telnetdの起動確認をします。しなくても、telnetでつなげてみればわかるので、省略しても構いません。IPアドレスは、環境に合わせて変更してください。

$ nmap -sT 192.168.0.200
Starting Nmap 5.00 ( http://nmap.org ) at 2010-05-22 18:04 JST
Interesting ports on 192.168.0.200:
Not shown: 991 closed ports
PORT      STATE SERVICE
23/tcp    open  telnet
80/tcp    open  http
139/tcp   open  netbios-ssn
427/tcp   open  svrloc
445/tcp   open  microsoft-ds
548/tcp   open  afp
3689/tcp  open  rendezvous
6543/tcp  open  mythtv
30000/tcp open  unknown
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds

telnetが見えるようになりました。

(5)telnetdの起動確認

telnetすると、パスワードも聞かれず、いきなりloginしちゃいます。最低限のセキュリティの設定をします。

を参考にさせていただきました。ありがとうございます。

# mount -o remount,rw,noatime /
# passwd
# vi /etc/securetty
# vi /etc/init.d/rc.local
# touch /etc/busybox.conf

(5-1)パスワードの設定に説明は不要でしょう。

(5-2)/etc/securettyには、pts/0とpts/1を追加します。二つ追加する理由は、二つのtelnet接続を受け付けるようにするためです。端末が二つ無いと、各種作業で不便です。

pts/0
pts/1

(5-3)/etc/init.d/rc.localを修正します。

/usr/sbin/telnetd -l /bin/sh

/usr/sbin/telnetd

(5-4)/etc/busybox.confを作ります。これは、してもしなくても良いのですが、設定しておいた方が心休まるかもしれません。

LANDISKは、BusyBoxのtelnetdを使っている様です。

# ls -l /usr/sbin/telnetd
lrwxrwxrwx  1 root root 17 2007-05-09 14:49 telnetd -> ../../bin/busybox

BusyBoxについては、WikiPediaをどうぞ。

(6)再起動して動作確認

再起動します。

# reboot

起動したら、telnetで接続します。login: と聞かれるので、rootと設定したパスワードを入力して、loginします。

Posted by お市のかた