更新日:

2008年09月15日
 新サイト開設




ノーマル玄箱のDebian化


このページでは玄箱ノーマルタイプのセットアップ方法を記載します。HGの玄箱と内部システムが違うらしく、HGと同じセットアップ方法だとうまくいきません。



1.インストールキットの作成

玄箱のDebian化が一番難解なステップですが、先駆者の方々のおかげで楽にインストールすることが出来るようになりました。 私が参考にした「玄箱うぉううぉう」さんのページですが、ここではインストールに必要なデータがダウンロードできるようになっています。

ファイル操作:セットアッププログラムの構築
玄箱うぉううぉうのサイトにある(http://kuro.dsk.jp/)
http://kuro.dsk.jp/data/dist/debian_2006_06_10_dist.tgz をダウンロード

debian_2006_06_10_dist.tgz → tmpimage.tgz 名前変更
tmpimage.tgz → tmpimage.zip zipに圧縮
tmpimage.zip → image.zip 名前変更

玄人志向のサイトより玄箱セットアップデータ(ファームウェアアップデート Ver1.02 (2004.04.20):20MB
http://www.kuroutoshikou.com/products/kuro-box/kuro_102.zip)をダウンロード後解凍し、上記ファイルのimage.zipと入れ替える。
ファイル操作:セットアッププログラムの実行
 上記作成した玄箱のインストールキット内のexeファイルを実行し、インストールを完了させて(インストール時にはWindowsの パーソナルファイアウォールはOFFにしておかないとキットがうまく動作しないことがあります)本体のボタンで再起動 (長押し→電源落ちる→再ボタンで起動)してから次のステップへ移ります。
 設定の途中で失敗してしまったら、手動でEMモードに落とす(#rm -rf / で全てのファイルを削除してEMモードに落とす)か、 HDDを取り外して別PCでフォーマットしてEMモードにしてからやり直して下さい。
私はかなりここでつまづきましたが、調べたところセットアッププログラムのimage.zipは50Mくらいまでに抑えておかないと セットアップに失敗して玄箱の初期化を行わなければならなくなります。


2.リモートログイン

コマンド:リモートアクセス
 サーバにリモートアクセスするにはwindows標準のtelnetでもいいですが私はSSH接続も出来る「Poderosa」 を使用しています。
 Linuxの設定を変更するには設定ファイルを直接編集します。そのためにはLinux特有のエディタを使いますが操作方法がかなり特殊なので Windowsをメインに使っている人には第一の難問になると思います。簡単な使い方の説明は→こちら
 インストール直後の玄箱のIPアドレスは「192.168.0.100」に設定されています。 今後はWindowsから遠隔操作によって玄箱の設定を行っていきます。


# telnet 192.168.0.100
ユーザ名:tmp-kun、パスワード:tmp-kunでログインする

$ su root
ログイン後、rootにユーザー変更する。パスワード:root
※rootになるとシステム上で全ての権限を持つことができます。

3.カーネル再構築

ファイル編集:/etc/apt/sources.list
/etc/apt/sources.list内の文字を全て消して下記の内容に書き換える
Debianのsarge化(FTPの使えない環境だったらftpをhttpに変更する)
deb http://security.debian.org sarge/updates main contrib
deb http://ftp.dti.ad.jp/pub/Linux/debian sarge main contrib
deb http://ftp.dti.ad.jp/pub/Linux/debian-non-US sarge/non-US main contribv deb-src http://ftp.dti.ad.jp/pub/Linux/debian sarge main contrib
deb-src http://ftp.dti.ad.jp/pub/Linux/debian-non-US sarge/non-US main contrib
コマンド:アップグレード
# apt-get update
# apt-get upgrade
いろいろ聞かれるが、全てデフォルトでOK
# apt-get -u dist-upgrade
いろいろ聞かれるが、全てデフォルトでOK。ただし、eximの設定は「5」を選択する
# apt-get install less
# apt-get install patch
# apt-get install wget
# apt-get install gcc
# apt-get install ncurses-dev
# apt-get install bzip2
# apt-get install module-init-tools
各プログラムをインストールする
コマンド:kernelimageの設置
# cd /boot/
/boot/に移動
# wget http://www.genbako.com/kernelimage-2.6.20-kuroBOX.tgz
カーネルイメージをダウンロードする
# tar -zxvf kernelimage-2.6.20BOX-kuro.tgz
kernelimageを/boot/に展開する
コマンド:再起動と再ログイン
# reboot
再起動
# telnet 192.168.0.100
telnetにてログイン。ユーザ名:tmp-kun、パスワード:tmp-kunでログインする
$ su root
ログイン後、rootにユーザー変更する。パスワード:root
うまく行っていればログイン時にカーネルのバージョンが2.6系になっているはずです
コマンド:モジュールの設置
# cd /lib/modules
/lib/modules/ディレクトリへ移動
# wget http://www.genbako.com/modules-2.6.20-kuroBOX.tgz
# tar -zxvf modules-2.6.20-kuroBOX.tgz
モジュールをダウンロードして展開
# depmod -a
モジュールの依存性リストを作成
# reboot
再起動

※カーネルの再構築の必要のない(ファイアウォール:iptablesが必要ない)人は以降のステップを飛ばして 「4.パスワード変更」から進めてください



コマンド:kernelと修正ファイルのdownload・設置
# cd /root
# wget http://www.genbako.com/kurobox-sources-2.6.20.patch
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
# tar -jxpvf linux-2.6.20.tar.bz2
kernelと修正ファイルをダウンロードして/root/に展開する
コマンド:kernelの修正パッチ
# cd linux-2.6.20
# patch -Np1 <../kurobox-sources-2.6.20.patch
カーネルに修正ファイルを適応させる
コマンド:kernelの再構築
# cp config_kurobox .config
# export ARCH=ppc

# make menuconfig
iptableに関するnetwork関係をチェックする(チェック:スペース、決定:エンター、戻る:ESC)
 Networking ---> カテゴリ移動
  Networking options ---> カテゴリ移動
   Network packet filtering framework (Netfilter) ---> チェックしてカテゴリ移動
    Network packet filtering debugging チェックを入れる
    Core Netfilter Configuration カテゴリ下全てチェックする
    IP:Netfilter Configuration カテゴリ下全てチェックする(全てチェックを入れたらもう一度Core Netfilter Configrationの項目の空白欄をチェックする)
ESCで最初まで戻って「Do you wish to save your new kernel configuration?」の質問で「Yes」
# make oldconfig
# make vmlinux
↑90分くらいかかる
# objcopy -O binary vmlinux /boot/vmlinux.bin
# cp System.map /boot/
# make modules
↑60分くらいかかる
# make modules_install
カーネル再構築終了
コマンド:再起動と再ログイン
# reboot
再起動
# telnet 192.168.0.100
ユーザ名:tmp-kun、パスワード:tmp-kunでログインする
$ su root
ログイン後、rootにユーザー変更する。パスワード:root
コマンド:後処理
構築に使用した不必要なファイルを削除する
# rm /boot/kernelimage-2.6.20-kuroBOX.tgz
# rm /lib/modules/modules-2.6.20-kuroBOX.tgz
# rm /root/kurobox-sources-2.6.20.patch
# rm /root/linux-2.6.20.tar.bz2
ここまででセットアップとカーネルの再構築は終了です。iptableも使用できるようになり、ファイアウォールの設定も可能になります。


4.パスワード変更


デフォルトのパスワードを使用し続けるのは最もやってはいけない事なのですぐに変更します。 また、デフォルトでは設定できるパスワードの文字数が少ない場合がありますので変更しておきます (設定が「5文字」だと「rootpassword」というパスワードを設定しても「rootp」の5文字だけでログインできてしまいます。 本人も案外気づきません)
ファイル編集:/etc/pam.d/passwd
※Debian Etchにアップグレードした場合は/etc/pam.d/common-passwordのファイルを編集します
password required pam_unix.so nullok obscure min=4 max=8 md5
(md5を追加)これでMD5を用いたパスワードになるので文字列が最大8文字以上になる(デフォルトのDESだと最大8文字)
ファイル編集:/etc/login.defs
※Debian Etchにアップグレードした場合はこの項目は無視します
PASS_MAX_LEN 40
パスワードの最大文字数が40になる
コマンド:パスワード変更
# passwd root
コマンド入力後、rootの新パスワードを2回入力して変更する

5.sshでリモートログイン

リモートアクセスにはtelnetを使いましたが暗号化されていない通信でサーバとやり取りするのでセキュリティ上好ましくありません。 そこで暗号化しながら通信する「SSH」をインストールします

コマンド:SSHインストール
# apt-get install ssh
SSHのプログラムをインストール。質問はすべてデフォルトで答える
Install these packages without verification [y/N]? と聞かれたらyを入力
ファイル編集:/etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin no
上記設定をするといきなりrootからログインができなくなります。つまり、はじめは別ユーザでログインしてから $ su rootして「root」になるというワンクッションをはさむことになります(パスワードを2回入力する必要があるのでセキュリティが高まる)
注意が必要なのはこの設定をした後に少なくともユーザーアカウントが1つは必要だということです。 でないとSSHでログインできなくなります(この時点では最初から「tmp-kun」がユーザーとして登録されています)

※再起動後のリモートアクセスはTelnetよりもSSHで行ったほうがセキュリティが高いです。Windowsには標準で Telnetしかインストールされていませんので冒頭で紹介した「Poderosa」などを使用してください。
SSHでの接続(例:tmp-kunとして接続する場合)

下記の方法は別のLinux環境(Knoppix等)からのアクセスする場合

コマンド:リモートアクセス
# ssh 192.168.0.100 -l tmp-kun
パスワードを聞かれるので「tmp-kun」とパスワードを入力する(別ユーザーでリモートログインするときは「tmp-kun」の部分を「別ユーザ名」にする)


6.各種設定

SSHでのリモートログインのために新しいユーザーを作成します
コマンド:ユーザ追加
# useradd "ユーザー名"
新規ユーザ追加。適当な名前を入力
# passwd "ユーザ名"
追加したユーザのパスワード登録

ネットワーク上でのサーバのIPアドレスを変更します。デフォルトの192.168.0.100のままでもかまいませんが他のPCや玄箱と重複しないようにしましょう。

ファイル編集:/etc/network/interfaces
iface eth0 inet static
 address 192.168.0.200 ←この部分を変更すればOK
 network 192.168.0.0
 netmask 255.255.255.0
 broadcast 192.168.0.255
 gateway 192.168.0.1

iface lo inet loopback
auto eth0 lo

上記の設定だと192.168.0.*のネットワーク内で固定IP「192.168.0.200」と設定しています

もしも固定IPではなくDHCPによる動的IPを習得する場合には下記の記述をします

iface eth0 inet dhcp

iface lo inet loopback
auto eth0 lo

ネットワーク上でのサーバのホスト名を変更します。デフォルトの「KURO-BOX」ままでもかまいませんが他の玄箱と重複しないようにしましょう。

ファイル編集:/etc/hostname
Debian
例えば、上記の設定だとホスト名「Debian」で登録します
ファイル編集:/etc/hosts
127.0.0.1 localhost
192.168.0.200 Debian ←この部分を変更
上記の設定で192.168.0.200と「Debian」との関連付けをします

余計なアプリケーションを削除します。必要のないプログラムはセキュリティ上、好ましくありません。
telnetは何かと不正アクセスのツールとして使用されますので削除します (--purgeのオプションを付けると設定ファイルごと削除してくれます)

コマンド:アンインストール
(必ず再起動後に「SSH」で接続してから削除する)。でないともしもssh接続がうまくいかない状態でtelnetを削除してしまったら 玄箱を操作する方法が無くなってしまいます。
# apt-get remove --purge telnetd

ユーザ名もパスワードもバレバレの「tmp-kun」アカウントは速攻で削除しましょう

コマンド:ユーザー削除
# userdel tmp-kun
tmp-kunでログインしてからrootへ#suした場合は削除できないので#exitコマンドでtmp-kunでのログインを解除してから 新しく作成したユーザでログインしなおしましょう(その後で#suコマンドでrootにログインする)
tmp-kunユーザーを削除。tmp-kunさん、おつかれさまでした。

サーバを最新の状態に保つ為に、こまめに下記のコマンドを実行してアップデートしましょう
「update」でパッケージの更新情報をダウンロードし、「upgrade」で更新されているパッケージのアップグレードを行います。

コマンド:Debianアップデート
# apt-get update
# apt-get upgrade
システム全体をアップデート

7.Debian Etchへアップグレード(2008.01.12更新)

PHP5とMySQL5をapt-getでインストールしたかったのでSargeから次期バージョンのEtchへアップグレードさせました。
ファイル編集:/etc/apt/sources.list
sources.list内の文字を全て消して下記の内容に書き換える
Etchへのアップグレードに必要なsources.listはこちらのサイト 「オモイノホカ日々徒然」 を参考にさせていただきました。
deb http://security.debian.org etch/updates main contrib non-free
deb http://ftp2.de.debian.org/pub/debian etch main contrib non-free
コマンド:アップグレード
# apt-get update
# apt-get -u dist-upgrade
いろいろ聞かれるが、全てデフォルトでOK。ただしeximの設定は「5」を選択
ログインしたときにエラーメッセージが表示される場合は下記のファイルの文章をコメントアウトしておく
ファイル編集:/etc/login.defs
設定ファイル内にある下記の設定がしてある行の先頭に「#」を入力してコメントアウトさせる
#FAIL_DELAY
#QUOTAS_ENAB
#NOLOGIN_STR
#ENV_HZ
#PASS_MAX_LEN
#CHFN_AUTH
#CLOSE_SESSIONS
玄人志向 KURO-BOX/PARTS KURO-BOXシリーズ用補修部品セット
玄人志向 KURO-BOX/PARTS KURO-BOXシリーズ用補修部品セット
玄人志向 KURO-SATA
玄人志向 KURO-SATA
KURO-BOX/PRO専用シリアルコンソールキット
KURO-BOX/PRO専用シリアルコンソールキット