これは、おれにぴったりのデスビだ。なんて言ったりして(笑)。俺としては、Xと言う無用の長物がなしよ。と言うのが気に入ってる。
実は、 Nature’s Linuxと言う日本のディストリビューションを見つけた。
雑誌でも紹介されているが、日本で初めての日本製のパッケージでローカライズされた製品のようだ。日本のディストリビューションとでも言おうか。だから、RHとかDebianとかのパッケージは一切使っていないと言うことである。 しかし、オリジナルとは言え内容はRHLとDebianを足して2で割ったような感がある。
パッケージ管理は、aptとdpkgなのでDebian、起動スクリプト管理はchkconfigなのでRHLになっている。しかし、一番の固有な特徴はchroot構造でroot構造がサービス領域vfs、システム領域rfsに分かれている。
この分離により、リモートアクセスしてもvfsのみにアクセスすることになり、rfsは隠蔽できる。そのため、セキュアーな環境を構築できる。
chrootは「ChangeRoot」の略である。
いわゆる、砂場(SandErea)を/home以下に / 以下全てを構築しそこで運用し、本来のシステムエリアと砂場を切り替えるためのコマンドである。砂場はいくらでも再構築可能である。本来のシステム領域が健在なら、砂場はいくらでも再構築可能である。クラックな方々に砂場を荒らされても、危険で有れば極端な話バックアップを使い、砂場の / 以下を全て消し去りもう一度初期状態へリストアが可能である。トカゲのしっぽ切り!本来これが「砂場」の考え方だと思う。
リモートでNature’s Linuxへアクセスする場合、たとえばSSH 22番ポートでアクセスした場合には、vfs領域にアクセスできる。しかし、RFS領域にはアクセスできない(2022番を開けていればアクセスできるが当然ルータ等ではポートを閉めておくだろう)。
インストールマシン:
Celeron600 Socket370ベアボーンタイプ Memory 384MB HDD 15GB(別途増設)
秋葉原の中古ショップ ETS にて中古ベアボーン(CPU・マザー・ケース・メモリ・電源)を3000円にて購入。HDDが大きくて入らないため、かわいそうだが裸です(-.-;)。
1.Nature’sLinux(n-linux)1.3の考え方
流行というか、chrootの考え方というのはかなり昔から有る。セキュリティ的には非常に効果的なので現在はメジャーなFedraCoreでも普通に使っている。n-linuxで考え方を説明すると /home/develop 以下を表に公開するいわば仮想的な/(root)を構築して、本来のカーネルを含めた /(root)は隠蔽するのである(図1参照)。
n-linux1.3では、adminメニューに標準でバックアップ機能が追加されたので本来のn-linux PMC-SSSFの考え方が生きてくる。この考えは、RFS領域とchrootであるVFS領域を分割する考え方であるが、VFS領域を”ディスク領域でのDMZ”と考えると”トカゲのしっぽ切り”にはバックアップが当然必須である。
例えば、VFS領域へクラックな奴に侵入され”バックドア”を仕掛けられたとする、そのときに同期を取りながらVFSのバックアップが取られている”バックアップ用の非アクティブ領域VFS2”にすぐに切り替えられれば、ダウンタイムは最小限で済む。被害だって最小限(多分adminメニューでの、切り替え作業のみ)で済むのである。さらに、世代バックアップも同時に行えるとしたら一石二鳥である。
俺が思うに、今回の2005年3月リリースのバージョン1.3が本来のn-linuxのコンセプトに合ったリリースではないだろうか。
2.インストール
1)CDイメージを作るここ でisoイメージをゲットする。
2)CDからブートするが古いマザーは注意
インストールCDからBOOTさせるが、 ここ で対応するハード情報を良く確認した方がよい。
事実、俺の古いHXマザーでは勝手にRESETしてしまい使い物にならなかった。とりあえず、i686以上のスペックのようである。
3)画面の解像度の設定
ブートしたら、いきなり画面の解像度の設定になる。
1:VGA
2:SVGA
3:XGA
4:Rescue Mode
があるので、「1」を選ぶ。
4)HDDのI/Fを設定
1:Generic IDE
2:SCSI
自分のマシンがどちらかで選ぶ。
5)HDDのフォーマット
「Are you sure?」で「y」でHDDの内容がすべて消えるので注意が必要!
Nature’s Linuxは、同一HDDのパーティション分けによるデュアルブート環境は想定していない。
したがって、HDDをすべてフォーマットしてモジュールを自動インストールしてしまう。
6)自動インストール
以降、必要ファイルが自動インストールされる。
サーバ構築としては、非常に簡単である。
7)再起動
旨くインストール出来れば、「Hit Enter key to reboot」と表示されるので、Enterを押して再起動する。
8)rootアカウントのパスワード設定
再起動すると解像度を選択する画面が出る。
何も選ばないと640×480が選択される。まず、rootアカウントのパスワードを設定する(これは、vfsのrootアカウント)。
ニューパスワード:*********
リプライパスワード:*********
9)管理用アカウントの設定
管理用アカウントは、インストール後にシステムやネットワーク設定を変更する管理者メニューを使用する場合に使う。
ユーザ名:hoge-admin
パスワード:*********
10)vfsログイン用アカウントの設定
vfsのログイン用アカウントを設定する。
ユーザ名:vfs
パスワード:*********
11)vfs用ユーザアカウントの設定
vfsユーザアカウントを設定する。
ユーザ名:hoge
パスワード:*********
12)ネットワークの設定
基本的にサーバ構築用Linuxで有るため、固定IPを設定する。
ホスト名:
Gateway:
DNS:
IPアドレス:
サブネットマスク:
以上を設定する。
13)インストール終了
ネットワーク設定が終わったら、インストール終了。
3.インストール後の環境設定
1)必要事項を追加する
このインスト完了状態だと、多分名前解決ができないだろう。それはリゾルバの設定が不完全だからである。以下の如く、 /etc/resolv.conf にsearchセクションもしくはdomainセクションでドメインを記述する。さらに、/etc/hostsも確認しよう。
# vi /etc/resolv.conf
search kozupon.com
nameserver 192.168.255.103
2)adminメニューを立ち上げる
RFSloginから、インストール時設定した管理者用アカウントでloginするといきなり図2のようなメニューが出る。
このメニューでいろいろなシステム及びネットワーク設定の変更を行う。
この管理者用アカウントを変更する場合は、以下の方法で行う。
■ 管理者用アカウントの変更方法
以前のアカウントを削除する
# userdel hoge-admin
新しいアカウントの作成
# useradd -d /usr/local/msl -s /usr/local/msl/menu/bin/msl_menu -m nl-admin
パスワードの設定
# passwd nl-admin
ニューパスワード *********
リプライパスワード *********
3)chrootでvfsのrootパスワードの設定
多分、インストール後の状態ではvfs領域のrootのパスワードは何も設定されてないと思う。そのため、以下の方法でvfs領域へloginしてパスワードを設定しよう。尚、RFS領域からvfs領域へスイッチする場合は RFS Loginから” vfs ”と入力すればvfsへスイッチできるが、以下のようにchrootコマンドでも行える。特に、ここではvfs領域のrootのパスワードを再設定するので後者の方法でloginする。
RFSのrootでログインする。
[root@nl-server home]# chroot /vfs1
chrootコマンドでVFS領域にloginする。
[VFS-root@nl-server /]# passwd root
ニューパスワード *********
リプライパスワード *********
VFS領域のrootのパスワードを設定する。
以降、vfs領域にloginするときはRFS領域からは以下のように、
[root@nl-server ~]# su – vfs
<<<<< VFS login phase >>>>>
info2 login: nl-user
Password:
Last login: Fri Jul 28 15:26:48 2006 from 192.168.0.25 on pts/0
[VFS-nl-user@nl-server ~]$ su –
passwd: *******
ユーザを作成するには、
[VFS-root@nl-server /]# useradd -g users -d /home/users/hoge hoge
4)apt-getでアップデート
既にアップデートモジュールがあるかもしれないので、アップデートする。
[VFS-root@nl-server /]# apt-get update
[VFS-root@nl-server /]# apt-get upgrade
5)開発環境を整える
開発環境が未設定で有るため、apt-get installでインスコする(予め入ってるようなら、必要ないっす)。
■ patch
■ autoconf
■ automake
■ libc6-dev
■ gcc
■ kernel-package
■ libdb42-dev
6)とりあえずラッパーを掛けておく
セキュリティのため、ローカルネットのみアクセス可能にしておく設定をしておく。
[VFS-root@nl-server /]# vi /etc/hosts.allow
ALL : 192.168.0. : allow
[VFS-root@nl-server /]# vi /etc/hosts.deny
ALL : ALL
6)カーネルのアップグレード
カーネルアップが有るなら、アップグレードしておこう。
[root@nl-server root]# apt-get install kernel-image
Reading Package Lists… Done
Building Dependency Tree… Done
Package kernel-image is a virtual package provided by:
kernel-image-2.4.27p4up nl1
kernel-image-2.4.27p4smp nl1
kernel-image-2.4.27p3up nl1
kernel-image-2.4.27p3smp nl1
kernel-image-2.4.27p2up nl1
kernel-image-2.4.27p2smp nl1
kernel-image-2.4.27p1up nl1
kernel-image-2.4.27p1smp nl1
You should explicitly select one to install.
E: Package kernel-image has no installation candidate
自分の今現在のカーネルバージョンを確認する。
[root@nl-server root]# uname -r
2.4.27p2up
[root@nl-server root]# apt-get install kernel-image-2.4.27p4up
これで、再起動して終わり。
4.cronが違う
他のLinuxと違うところで目立つのは、cronだと思う。n-linuxの場合、 通常、cronがfcronとなっている。したがって、スケジューリングする場合は以下のコマンドでcronの内容を編集して運用する。
[root@nl-server root]# fcrontab -e
編集はvi使いなら解ると思う。
5.おーいmailコマンドがないじゃん(^^ゞ
メル鯖構築しようと思って、postfix入れたらmailコマンドないじゃん(-_-メ;)テメ・・・。 (^o^)/オーイ unix mailを入れといてくれーぃ~。 おじさんは、こまってるんだぞぉ~みたいな(ーー;)
[root@nl-server root]# apt-get install postfix21
ってしょうがないから、sendmailラッパーを使って配送テスト。
[root@nl-server root]# sendmail -t <宛先>
test mail
.
[root@nl-server root]#
こんな感じ。しかし、どうしてもUnix mailが使いたい人は、 ここ を参考にmailutilsを入れちまえば良い。
とりあえず、これだけ。
まだあるかもしれないので、随時更新する。
以上
コメント