|
Linkstation(HD-HGLAN) に telnet を導入する方法は
- Linkstation のハードディスクをはずし、他の Linux Box につないで
telnet を導入する。
- ファームに telnet を導入し、Linkstation を update する。
がありますが、 ポピュラーな方法は 1
で、検索すればインターネット上に様々な情報があります。
同じ方法でやっても面白くないのと、ファームの update の度に Linkstation
を分解しなければならないので、今回は、2 の方法でやります。
ただし、ファームウェアにはパスワードがかかっているため、パスワードが分かっていないとどうしようもありません。
パスワードについは、質問されても答えられません。
自分で何とかできない場合は、1 の方法でやるしかありません。
バッファローのホームページから最新のファームをダウンロードします。
今回は、Ver.1.52b1 を使いました。
ダウンロードしたファイルを実行すると、ファームウェアのイメージが解凍されます。
このなかの image.dat が zip 圧縮された Linux システムの
tarball です。
拡張子を zip に変更して解凍するのですが、パスワードがかかっています。
うまく解凍できると、tmpimage.tgz と言うファイルができます。
この tmpimage.tgz を Linux Box へコピーします。私は、玄箱で作業しました。
root で作業します。
まず、tmpimage.tgz
のあるディレクトリに移動し作業用のディレクトリを作成します。
tmpimage.tgz を展開します。
# cd FW_root
# tar xvfzp ../tmpimage.tgz
|
telnet を動かすには、inetd, telnetd が必要です。
どこから持ってくるかと言うと、Linkstation の兄弟の Kuro-Box/HG
のファームウェアから持ってきます。
玄人志功のホームページから、ファームをダウンロードして解凍し、解凍された
image.zip ファイルを更に解凍すると、tmpimage.tgz が得られます。
(こちらのファームウェアにはパスワードはかかっていません)
これが、Kuro-Box/HG のシステムです。このなかから、
| | usr/sbin/inetd |
| | usr/sbin/in.telnetd |
| | usr/lib/telnetlogin |
| | etc/init.d/inetd |
を Linkstation のファームを展開した場所にコピーします。
次に Linkstation のファームの etc/ にエディタで次の内容の inetd.conf
を作成します。
内容:
|
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
|
さらに inetd が自動起動するように etc/rc.d/rc2.d
にシンボリックリンクを作成します。
特に必要はありませんが、etc/rc.d/rc0.d, etc/rc.d/rc6.d
にもシンボリックリンクを作成しておくと精神衛生上いいかと。
# cd etc/rc.d/rc2.d
# ln -s ../init.d/inetd S20inetd
# cd ../rc0.d
# ln -s ../init.d/inetd K20inetd
# cd ../rc6.d
# ln -s ../init.d/inetd K20inetd
# cd ../../..
|
さて、これで telnet でログイン出来るようになりますが、root
にはパスワードがかかっているのでこれを何とかしなければなりません。
ファームイメージの passwd ファイルを編集しても、update の場合、元の
passwd ファイルに復元されるためうまくいきません。
そこで、etc/rc.d/rc2.d に S99makeroot
と言う名前で次の内容のファイルを作成します。
起動時に root 権限のダミーユーザを作成するスクリプトです。
|
# vi etc/rc.d/rc2.d/S99makeroot
|
内容:
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
grep "^tmproot" /etc/passwd >/dev/null || echo "tmproot::0:0:root:/root:/bin/bash">>/etc/passwd
|
入力ミスをしないように注意してください。passwd
ファイルを壊して最悪ログインできなくなってしまいます。
S99makeroot に実行属性を設定します。
|
# chmod +x etc/rc.d/rc2.d/S99makeroot
|
tmpimage.tar.gz を作成します。
|
# tar cvfzp ../tmpimage.tgz .
|
あとは、tmpimage.tgz を zip 圧縮し、image.dat に名前を変更して
Linkstation のファームウェアを update すれば OK です。
update がうまくいったら telnet で tmproot でログインしてみて下さい。
ログインできたら、root のパスワードを設定します。
/etc/rc.d/rc2.d/S99makeroot を削除し、/etc/passwd の tmproot
を削除しておわりです。
|