パスワードを忘れた? アカウント作成
539804 journal

Ab.の日記: USL-5P いぢり

日記 by Ab.
去年の10/14に買ってた USL-5Pですが、昨日突発的にいじり始めて、4GB の MicroDrive を導入して Debian Sarge 化しました。
以下、おぼろげな記憶に頼った作業メモ
  • まず本体をバラして、基板上にある穴に RS-232C ドライバチップを接続してシリアルコンソール用の RS-232C ポートを作成。 (職場の親切な方が半田付けしてくれました)
  • 念のため付属してきたCFのイメージを Linux 機で保存。 この時13in1みたいなUSBのカードリーダーで接続するとMBRの読み書きが上手くできず、色々試したところ CF-IDE コンバーター経由でこれdo台 twinで接続した場合ならちゃんとパーティションテーブルが読み出せたため、以後の作業にはこれ do台 twin を使用。 (CFのみしか刺さらないカードリーダーなら、ここらへんは大丈夫なのかもしれない)

    # dd if=/dev/sda | bzip2 > USL-5P-128MCF-image.bz2

  • そのまま Linux 機で MicroDrive の partitioning. こんな感じに(USL-5P 上から sfdisk -l /dev/hda

       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/hda1   *      0+    507     508-   2048224+   b  W95 FAT32
    /dev/hda2        508     939     432    1741824   83  Linux
    /dev/hda3        940     991      52     209664   82  Linux swap / Solaris
    /dev/hda4          0       -       0          0    0  Empty

    頭の2Gが fat32 なのは、貧乏性なので USL-5P で使用しないときは例えばデジカメのストレージとして転用できたりしないかなぁという目論見です。 MicroDrive が刺さるデジカメは持ってませんが。

  • LANDISKで漕ぎいでな~♪さんの所からDebian Sarge のシステムを一式頂いてきて、 アーカイブを fat32 のパーティションに保存。 この時、もともとの USL-5P のシステムには bzip2 は入っていないので、bunzip2 して tar の状態にして放り込んでおかないとほぐせなくて悲しい思いをする。
  • USL-5P に MicroDrive を接続。シリアルコンソールで root で入り、/dev/sda として認識された MicroDrive をmkfs.ext3 /dev/sda2 ; mkswap -v1 /dev/sda3
  • ext3 になった /dev/sda2 をどこかに適当に mount (例えば /tmp/cf)。 base-sh4-for-landisk-20051215.tar を展開、debian26 ディレクトリの下に出来るので mv で持ち上げておく。
    さらに landisk-tools-20051110.tgz も展開しておく。
  • 展開した先に lilo の conf ファイルを /tmp/cf/etc/lilo_sda.conf に作成。

    linear
    boot=/dev/sda
    disk=/dev/sda
    bios=0x80
    timeout=50
    default=linux
    install=/boot/boot.b-selk
    image=/boot/vmlinuz-2.6.14-sh
            label=linux
            root=/dev/hda2
            read-only
            append="mem=64M console=ttySC1,9600"

    そして、landisk-tools-20051110.tgz の方に入っていた lilo で書き込む。 (USL-5P 付属の lilo では hda1 以外からは起動できないようなので)

    /tmp/cf/usr/sbin/lilo -r /tmp/cf -C /etc/lilo_sda.conf

  • /etc/inetd.conf から telnetd を消す
  • /etc/fstab 編集

    # UNCONFIGURED FSTAB FOR BASE SYSTEM
    /dev/hda2       /       ext3    defaults,errors=remount-ro      0 1
    proc            /proc   proc    defaults                        0 0
    /dev/hda3       swap    swap    defaults                        0 0

  • /etc/securetty の ttySC0 を ttySC1 に変更
  • shutdown して MicroDrive に差し替えて起動。
  • root で login して /etc/network/interfaces と /etc/resolv.conf を設定し、/etc/init.d/network restart かなんかして apt-get update, apt-get upgrade とか。
    apt-get upgrade で kernel を新しくされちゃった時? は忘れずに lilo しておかないと起動できなくなったりするので注意。

ということで現状は apt-get install ssh ; apt-get remove telnetd して sshd 立ててこんな感じです。

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2              1714448    229852   1397508  15% /
tmpfs                    31160         0     31160   0% /dev/shm
# free
             total       used       free     shared    buffers     cached
Mem:         62324      17044      45280          0       1512       9356
-/+ buffers/cache:       6176      56148
Swap:       209656          0     209656

これで一応、まぁ普通の環境?になったんだけど、Internet にさらして鯖機のシリアルコンソールサーバーにしてしまうのはちょっと怖いなぁ。
やるとすると、

  1. 完全に read only な directory tree に chroot した sshd を動かし、internet 側から入ると /dev 以下のデバイスファイルもほとんど触れない状態にする。
  2. chroot された環境からもう一度、今度は one time password で login すると鯖機のシリアルコンソールにつながるデバイスファイルが触れる環境になる

くらいしないと…

最終的にはその後 MicroDrive のシステムのうちコンソールサーバーとして動かすのに必要なファイルだけを 256M CF にコピーしてそちらで運用、という所まで出来れば完璧なのだけれども、まだ道は遠い、ような気がします。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

日々是ハック也 -- あるハードコアバイナリアン

読み込み中...