BSD

2004年05月28日 金曜日

自宅サーバ設置 その3

今日はApacheのための準備をして chroot空間(/home/r/)のライブラリ群の設定。めんどくさい場合はchrootしたい環境の下にmake worldをして適当に削る。この場合の作業はざっくりこんな感じ。

# D=/home/r
# cd /usr/src
# mkdir -p $D
# make world DESTDIR=$D
# cd /usr/src/etc
# make distribution DESTDIR=$D

と言う感じ。うちのマシン(Celeron 1GHz)だとだいたいmake worldが3時間程度の模様。(make worldみたいな操作は寝ている間にがんばってもらう。) 終わったところで、chroot環境として動いてもらわねばならないので、/r/dev以下を生成する。FreeBSDの場合はDevfsになっているので、こんな感じにする。
# mount -t devfs devfs /r/dev
# devfs rule -s 10 delset
# devfs rule -s 10 add hide
# devfs rule -s 10 add path null unhide
# devfs rule -s 10 add path zero unhide
# devfs rule -s 10 add path random unhide
# devfs rule -s 10 add path uraondom unhide
# devfs -m /r/dev rule -s 10 applyset
/r/dev以下はnullとzeroとrandomとurandomのみにしてあとは隠すと言うルール。実際はこのコマンドは装置起動時もしくはデーモンの起動スクリプトで実行するのがよい。/r/etc以下は

2004年05月27日 木曜日

自宅サーバ設置 その2

今日からDNSサーバ、メールサーバ、Webサーバと言ったコアになるサービスの立ち上げを行う。DNSはdjbdns、メールサーバはqmailと言う感じでdjbが作ったサービスで固めることにした。HTTPサーバは言わずともしれたApacheを選択。

daemontool

daemontoolはdjb謹製のデーモン管理ツールである。デーモンの起動/停止/設定ファイルの読み直しなどの操作を統一的に扱えるようにできたり、ログローテーションができたり、必要なデーモンが常時起動しているか監視できるツールである。一昨日までの対応でdaemontoolは使えるようになっているので、あとはざくざくサービスを登録すればよいと言うわけだ。

準備

こんな起動スクリプト(FreeBSDの場合)を/etc/rc.d/に入れておけばdaemontoolはサーバ起動時に自動的に起動する。

#!/bin/sh
#
## daemontools by djb
#
DTdir=/usr/local/daemontools/bin
case "$1" in
 start)
    if [ -x $DTdir/svscan -a -d /service ]; then
        env - PATH=$DTdir\:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin \
        csh -cf 'svscan /service &' ; echo -n ' daemontools'
    fi ;;
 stop)
    $DTdir/svc -d /service/*
    (sleep 1; killall svscan)& ;;
esac

ただし上のスクリプトを読めば分かるように、/serviceを作らないとdaemontoolは使えるようにならないので、早速/serviceを作成する。/ ディレクトリにファイルを作るのに抵抗を感じないわけではないが、djb-toolを使うという時点で自分のポリシーよりもdjb先生の方法論を優先すべきだろう。ということで_躊躇なくディレクトリを作る。_(どうせこのディレクトリにはシンボリックリンクしか置かないし。気にしない。)
mkdir /service
chmod 755 /service

2004年05月25日 火曜日

自宅サーバ設置 その1

ぼちぼち作業しないと埒があかんということで、今週は自宅サーバの設置準備をすることにした。先週までにサーバ機にFreeBSDをインストールし終わり、BBルーターのDMZ/GapNAT設定ができたと判断し、作業を開始なのだ。
備忘録のため昨日と今日の作業のまとめをしておこう。

家系サーバの基本設定

家系レンタルサーバ(総本山)の山崎家から分家・のれん分けと言うことになる。FreeBSD4.x系のソフトが集められている三川家さんからアーカイブを取り寄せて、FreeBSD5.xに焼き直した設定にする。基本的にバイナリコピーで/usr/lib/compat/をつかうことになる。設定は覚えている範囲でメモ。

アーカイブのコピー

以下の手順でrsyncして持ってくる。rsyncがない場合は、/usr/iekei/bin/rsyncをローカルにscpして持ってくればよい。(Portsで入れても良いし、Packageで入れても良い。)こんな感じでrsync。家系セットは/usr/iekeiにコピー、chroot環境もしくはjailで動かしたいものは/home/r (実体は/usr/home/r/)にコピーし/home/rのシンボリックリンクを/rとする。
# mkdir /usr/iekei
# mkdir /home/r
# ln -s /home/r /r
# mkdir
# rsync -e ‘ssh -2’ –exclude log -avzH \自分のユーザ名@mike.mkwk.net:/usr/iekei/. /usr/iekei/.
# rsync -e ‘ssh -2’ –exclude log -avzH \自分のユーザ名@mike.mkwk.net:/r/. /r/.
(ここはできたら/r/bin, /r/etc, /r/lib, /r/usrだけでよい)
# mkdir /r/dev
# mkdir /r/var
と言う具合。あとパス周りの設定をするために、/etc/rc.confに以下の設定を追加。単純に言うとスタートアップ時に見るディレクトリを追加、ldconfigの検索パスの追加である。
local_startup="/usr/iekei/etc/rc.d /usr/X11R6/etc/rc.d"
ldconfig_paths=echo /usr/lib /usr/lib/compat /usr/*/lib /usr/iekei/*/lib

2004年05月05日 水曜日

FreeBSDをインストール

ついに我が家も自宅サーバの設置と言うことで、マシンを用意することとなった。これまでファイルサーバに使ってきたcosmosを明け渡すことにして、これにFreeBSDをインストールすることとなった。まぁOSはLinuxでもFreeBSDでも良いのだけども。FreeBSDの方がシンプルなので。いったん通常自分が使えるサーバに仕立てあげた後に、Web ApplicatonやIPv6環境での相互運用などの実験を行っていければ良いなと思っている。(IPv6というあたりでBSDを選んだわけであるが。)
非常に古い話ではあるが、僕がメールを書き始めたころはSunOS4.xでMHのコマンドを使ってだしていたもので、よくリモートログインしてプログラムを書いて実行したり、メールやニュースを投稿したり、Web(当時は絵が出なかったが)を見たりしたものだ。そんなことで初めて触ったUnix系OSがBSD風だったこともあり、SunOS->FreeBSD 1.xと言うのが自然な流れだったのだが、BSDの訴訟問題やら当時購入したばかりのPC互換機でATAPI CDROMをサポートしてなかったとか言う_ちょっとした理由_で、それ以来Linuxなのである。今日久しぶりにインストールしておおよそ10年ぶりと言うことになる。(バージョンも1.xだったのが5.2になっているしねぇ。)
まぁぼちぼち中身を追っかけていくこととしよう。

2004年04月28日 水曜日

明日から大型連休

明日からゴールデンウィークということで、僕も就職して以来初めての大型連休なのである。明日から5日までお休み。帰りに武蔵野線の上から東北道を眺めたら下り方向に渋滞してました。_アレが帰省・行楽渋滞って奴なのか_と思っちゃいました。

はじめる?IPv6 - Windows LinuxでIPv6しよ!

IPv6に関する入門書みたいな本。一通りIPv4の基礎(と言ってもアドレスとNATのことしか書いてないが)を説明した後、IPv4の問題点とIPv6の概要が説明される。あとはIPv6の実際の導入(WindowsXPとLinux)とアプリケーションの動作までがざっくり書いてある。文章はサクサク読める本だと思うのだが、この絵は何とかならんものか…