このページの本文へ

Apple TV OS 詳細解析 第2回

sshdをインストールする

2007年05月12日 20時30分更新

文● 白屋麻

  • この記事をはてなブックマークに追加
  • 本文印刷

Apple TVはセキュアなデバイス


Apple TV

Apple TV

Apple TVMac OS Xを使ったアプライアンス(特定機能に特化したコンピュータ)であるが、そのままではバックエンドのMac OS Xにまったく触れることができない。

というのも、普段の画面はiPodのメニューのような『Front Row』に占められ、操作に使うのはわずかにリモコンの『Apple Remote』のみ。ネットワーク上から見ても、iTunesにアクセスするための“daap”および“bonjour”のパケットを送付しているぐらいで、ログインするための隙がない。そのままでは内部を解析しようにも立ち入る隙のない、まったくもってセキュアなデバイスなのだ。

そのためよりディープにOSを解析するには、少々強引な方法が必要になる。具体的には、Apple TVよりHDDを取りだして、起動時に『sshd』を動作させるという方法だ。

sshdとは遠隔操作のためのプログラムで、これをインストールすると別のマシンからネットワークを介してログインし、コマンドの実行やファイルの転送などを行なえるようになる。Apple TVに組み込めば、例えば起動中に何のアプリケーションを動かしているのか解析するといったことが可能になる。



2つのファイルをコピーすればOK


実は、Apple TVには『sshd_config』や『moduli』といった『OpenSSH』のファイル群はすでに格納されており、sshdそのものだけが入っていない状態だ。そこで、通常のMac OS Xの“usr”→“sbin”にあるsshdを、Apple TVの“OSBoot”パーティションの“usr”→“sbin”以下にコピーすることになる。

注意したいのは、Apple TVには“Rosetta(ロゼッタ)”が入っていないため、PowerPCバイナリー版のsshdは動作しないということ(参考記事)。コピーするsshdにインテルバイナリーが含まれていることを確認しよう。ちなみにApple TVは Mac OS X 10.4.7をベースにしていると見られるため、本来、10.4.7のsshdを使うのがベストだが、筆者がコピーした10.4.9のものでも問題なく動作した。

Finderの“移動”メニューから“フォルダへ移動”を実行。“/usr/sbin/”と入力して、sshdのファイルをコピーする


続けてOSのブート時にsshdを起動させる設定を用意する。こちらも普通のMac OS Xから、“System”→“Library”→“LaunchDaemons”にある“ssh.plist”ファイルを抜き出し、AppleTVの“OSBoot”パーティションにある“System”→“Library”→“LaunchDaemons”にあるssh.plist に上書きコピーするだけ。これで起動時に“launchd”が“ssh”のポートを待ち受け、接続時にsshdを起動するようになる。

plistをコピー

/System/Library/LaunchDaemonsにある、sshのplist(プロパティーリスト)ファイルをコピーする


以上2つのファイルのコピーが終わったら、HDD をApple TVに戻して起動してみよう。Apple TVにはデフォルトで“frontrow”というユーザーが存在し、パスワードも“frontrow”となっている。また、Bonjourによりホスト名の告知を行うため、Mac OS Xなら、以下のコマンドでログインできるはずだ。

ssh -1 frontrow@AppleTV.local

ここでの注意点は、sshのあとに“-1”をつけてSSHプロトコルのバージョン1を使用するということ。Apple TVの初期状態では、デフォルトのSSHプロトコルバージョン2を使用すると Apple TV側のsshdがクラッシュしてしまう。いったん、Apple TVにログインした後にsshの鍵作成を行うことで、バージョン2も使用可能になる。


*次回はMac OS XとApple TVのOSの起動プロセスを比較する『どうやってOSを起動している? 』を掲載予定


カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中