くろばこ

LinkStation/玄箱をハックしよう
山下康成＠京都府向日市
yasunari ＠ yamasita.jp
http://www.yamasita.jp/© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved自己紹介（１）• 現職：某電機メーカ勤務–普通の中年平社員

特筆することなし© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved自己紹介（２）：山下のルーツ• 前職：某電機メーカ系ソフトウェアハウス
– Unix 系のパッケージソフトウェア開発• 「わ(Wa)たしのな(Na)まえはな(Na)んとかです」– ネットワーク／システム管理担当• まだJunet といっていた時代。UUCPが中心– 昼休みの工作：フリーソフト開発• ニュースリーダgn, gnspoolの開発と配布© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved自己紹介（３）
個人ドメインのあゆみ
会社でドメイン管理をしていたので、自宅でも• 1994 /5: 地域ドメイン解禁– yamasita.muko.kyoto.jp取得– IIJ とUUCP接続• 2001/5： ｊｐドメイン解禁– yamasita.jp 取得– レンタルサーバで運用• 2002/11:ADSL開通– ようやく自宅が常時接続（でも、上りは600Kbpsほど）– サーバを自宅に設置© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved当初のホームサーバ• ルータからメールサーバ、Webサーバ、内向けファイル／プリンタサーバまで中古のノートＰＣ１台で構築• CPU をPentium から AMD K6-2 に交換• HDDを40GBに交換– ディスク容量が足りなくなった。

© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

LinkStationとの出会い• ショップで増設用のHDDを探していて発見– そのときは軽く気にとめた程度• 自宅に帰って検索– Linux が動作していて– ハックも可能• といっても「telnet ができた！」レベル• 「ホームサーバにするぞ」と決意、03/12 に購入• ハック、ハック、ハック• 04/2 に yamasita.jp を
LinkStation に移行© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

その後～現在に至る• 買い増し– 玄箱（初代／ＨＧ／Ｐｒｏ）– LinkStation• HD-LAN,HD-HGLAN• LS-GL,HS-DHGL,LS-LGL,LS-HGL,• LS-CL,LS-QL, LS-XHL• 出版

アスキー出版

アスキー出版

ローカス© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

現在のサーバラック© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

LinkStation とは• BUFFALO の NAS(Network Attached Storage)• いわばネットワーク上に置く外付け増設HDD– ファイルサーバ– （プリンタサーバ）– （ＴＶ録画サーバ）– （iTunes サーバ）

• システム管理の専門知識がなくても使える– Web ベースの管理画面• ファームとして Linux が使用されている© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved玄箱（くろばこ）とは• 玄人志向の NAS/Linux Box 組み立てキット• HDDを別途用意し自分で組み立てる• LinkStationをベース– HD-HLAN ベースの玄箱– HD-HGLANベースの玄箱／ＨＧ– LS-GLのベースの玄箱/Pro

HD-HLAN– ファームウェア変更• 最初からtelnetできるようになっている

LS-GL

玄箱

玄箱／Pro© Copyright Yasunari Yamashita 2006-2009 All Rights ReservedCPU
第二世代：MIPS

第一世代：PowerPC
V1,V2

HD-LANV3

V1

HD-HLANV2

玄箱

同一型番なのにバージョン違いで別のＣＰＵが使われている

HD-HLWG

第三世代：ARM
HD-HGLAN

LS-GL

LS-LGL

LS-QL

玄箱／ＨＧ

HS-DHGLLS-HGL

LS-WHGLHS-DGL

玄箱/ProLS-WSGL

LS-XHL© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

ファームウェア• Linux をベースにしたファームウェア– ブートローダ• MontaVista 製：第一世代、第二世代• U-Boot：第三世代– Linuxカーネル• 2.4 ：第一世代、第二世代• 2.6 ：第三世代– ルート（Linux システム）– データデータルート

HDD

Linuxカーネル
Flash Memory

ブートローダ© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved標準ファームでできること• ファイルサーバ(samba)• プリンタサーバ（samba + lpr）
• ビデオ録画サーバ• ビデオサーバ（DLNA サーバ）
• iTunes サーバ（機種毎に異なる）© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved最初の目標：ホームサーバ化• 内向けサーバ– ファイルサーバ(samba)– プリンタサーバ（samba + lpr)
– DNSサーバ– ntpサーバ– DHCPサーバ• 外向けサーバ– DNSサーバ– メールサーバ– Webサーバ

全機能の移行© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved最初の目標：ホームサーバ化• 内向けサーバ– ファイルサーバ(samba)– プリンタサーバ（samba + lpr)
– DNSサーバ– ntpサーバ– DHCPサーバ• 外向けサーバ– DNSサーバ– メールサーバ– Webサーバ

標準ファームだけでは移行丌可能

© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved機能拡張 = ハック～足りないアプリケーションを追加する～・・・ここからハックが始まった・・・© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedアプリケーションを追加する（１）～標準ファームベースでハック～• 標準ファームに telnet できるようにした↓• ホームサーバに向けプログラムを追加– ソースからビルドするのは面倒– Vine Linux のバイナリを使おうとした↓• 結構苦労しそう

データ
ルート– uid/gid が違う
Linux カーネル– ディレクトリ構成が微妙に違う

HDD

ブートローダ© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedアプリケーションを追加する（２）～ディストリビューションの入れ換え～• 標準カーネルは /dev/hda1をroot fsとするようコンフィギュレーションされている• /dev/hda1をroot fsとするHDDを用意すれば何でも動く（ちょっと言いすぎ）– Vine– Debian– :HDD
Linux カーネル
ブートローダ© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

ＯＳの入れ換え
第1世代：Vine化
第３世代：Debian化© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedルートファイルシステムの入れ換え• Vine/Debian が動作するためのディレクトリ、ファイル構成を手操作で作成– インストーラは存在しない• アーカイブを一つ一つ解いて展開• 設定ファイルを手で作る– Linux を知っていれば、意外と簡単• 設定を間違えなければ、すぐ動く• 動くだけ、ただ動くだけ© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

トラブル• 起動しても、すぐ落ちる／数分後に落ちる• 電源ボタンを押ししても電源が落ちない• ファンが回らない/高速で回りっぱなし• LED が灯かない/点滅しっぱなし• ブザーが鳴りっぱなし→ 標準ファームを参考に対策。
正しく動くようにする。
実は、こういう瞬間が一番楽しかったりする© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedあとは普通のLinuxマシン• 内向けサーバ– ファイルサーバ(samba)– プリンタサーバ（samba + lpr)
– DNSサーバ– ntpサーバ– DHCPサーバ• 外向けサーバ– DNSサーバ– メールサーバ– Webサーバ

普通のLinux の設定をして移行完了© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

yamasita.jp のサーバ達～ ハックした
LinkStation の活用事例 ～© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

外向けサーバ• 寄せ集め機余ったパーツを集めて１台作って外向けサーバに– HD-LAN V1 のケース
– HD-LAN V2 のマザーボード– HDDを ２台接続
• 30分に１回HDD→HDDコピー• クラッシュしてもつなぎ換えだけで、すぐにサービス再開• MTTRは帰宅の時間＋α© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

外向けサーバ（２）• ネームサーバ(bind)– yamasita.jp のプライマリネームサーバ• Web サーバ(apache)– http://www.yamasita.jp/をサービス• メールサーバ(sendmail / qpopper)– @yamasita.jp のサーバ
© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

ファイルサーバ• HD-HGLAN– Vine化• ファイルサーバ（samba）– ファームウェア– デジカメ写真– etc.
© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

内向けサーバ•HS-DHGL–Debian化•ビデオ録画サーバ•プリンタサーバ© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

内向けサーバ（２）
ビデオ録画サーバ• ３台のUSB ビデオキャプチャボックスを接続• Debian + 標準ファームのビデオ録画システム– キーワードによる自動録画予約スクリプト• 番組表取得• キーワード抽出• 延長対応• トリプルチューナ対応• 外部チューナコントロール– samba でビデオファイルを共有– DLNA 経由 BRAVIAで視る© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

PodCastダウンロードサーバ• wgetでPodCastをダウンロード• デジタルオーディオプレイヤに自動書込み– USB マスストレージクラスのオーディオプレイヤ– mount して、コピーして、umount– デジタルオーディオプレイヤの充電• 帰宅したときに刺しておけば朝にはダウンロードと充電完了• 通勤電車で「聴く日経」– 3月いっぱいで終了（滅）© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedバックアップサーバ• 全LinkStation／玄箱のバックアップ– 各 LinkStation/玄箱でローカルバックアップ– rsync を用いてバックアップファイルをリモートバックアップ• （初代）玄箱– 毎朝タイマでバックアップ© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedまとめ© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedハックはおもしろいよ© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

役にも立つよ© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved

安い機器をおこづかいで買って© Copyright Yasunari Yamashita 2006-2009 All Rights Reservedどんどん「ハックしよう！」© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved続きは Web で！

© Copyright Yasunari Yamashita 2006-2009 All Rights Reserved