2009年3月16日月曜日

Linkstation LS-L500GL(LS-LGL)をtelnetでアクセスできるようにする

2.0以降のファームウェアにアップデートした上で参考サイトの情報通り分解し、SATAハードディスクをKnoppixなどでブートしたLinuxマシンに接続。

Linuxの設定等は第二パーティションにあるので、/dev/sdb2とかがマウント対象です。
たとえば mount /dev/sdb2 /mnt など。(マシンによってはsdbとは限りませんdmesgを実行してログを確認してください)
下記例は/mnt以下にマウント場合の記載をしています。

まず/mnt/etc/init.dにtelnet.shというシェルスクリプトを作成。(cron.shをコピーしていじると楽)
#!/bin/sh
# Start/stop the telnet daemon.
#
#

test -f /usr/sbin/telnetd || exit 0

case "$1" in
start) echo -n "Start services: telnetd"
/usr/sbin/telnetd
;;
stop) echo -n "Stop services: telnetd"
killall telnetd
;;
restart)
$0 stop
$0 start
;;
*) echo "Usage: $0 start|stop|restart"
exit 1
;;
esac
exit 0
chmod a+x /mnt/etc/init.d/telnet.shした後でrcSというファイルの以下の行にtelnetd.shを追加。
for CMD in EnablingAutoip.sh restore_config.sh mount_share.sh networking.sh setup_time.sh smb.sh httpd.sh clientUtil_servd.sh modules.sh
次のように変更。とりあえずSambaより前に書いてみた。
for CMD in EnablingAutoip.sh restore_config.sh mount_share.sh  networking.sh setup_time.sh telnet.sh smb.sh httpd.sh clientUtil_servd.sh  modules.sh
あとは/etc/shadow内の以下の行に設定してあるrootの暗号化されたパスワードの部分を削除してログインできるようにする。
root:(暗号化されたパスワード):11009:0:99999:7:::
次のように変更。
root::11009:0:99999:7:::
組み立て直して起動し、telnetで接続できることを確認。

まぁ、telnet専用のスクリプトまで書かなくても参考サイトの通り、rcSに/usr/sbin/telnetdという一行を追加するだけでもいいんだけどやっぱりデーモンはstart/stop/restartができないと。

参考にさせていただいたサイトの各ページ
分解(LinkStation/玄箱 をハックしよう)
http://www.yamasita.jp/linkstation/2007/11/071123_post_54.html
telnet可能化(LinkStation/玄箱 をハックしよう)
http://www.yamasita.jp/linkstation/2007/11/071126_telnet_1.html
中の様子を探る(4)root のパスワードをつぶす(LinkStation/玄箱 をハックしよう)
http://www.yamasita.jp/linkstation/2007/12/071228_root_1.html