OpenBlockS について
家庭用で消費電力が少なく、静かで場所をとらないネットワーク・サーバーをつくるというテーマで OpenBlockS を使ったネットワーク・サーバーを作ってみる。
最近は、我が家でもADSL常時接続になったのと、Dynamic DNS サービスがこなれてきたようなので、自宅のファイル・サーバーも兼ねて OpenBlockS を使い倒してみることにした。OpenBlockS は 50 も 200 も扱ったことがあるので、今度の 266 も楽勝だと思われたが、今回から ssdlinux になっているのでかなりつらい。
ssdlinux は i386 版があるので、クロス・コンパイルができるだろうと思っていたが、どうもサポートするネットワーク・カードとかHDDとかが厳しくて、動かすことが出来なかった。せめて VMware 環境をサポートしてくれるとありがたいのだが。
[2003/7/23] vncserver と WindowMaker を入れて、Windows 機から Vnc でメンテナンスできるようにした。
[2003/6/23] qmail の alias メールボックスに、cron 経由で newsyslog から newsyslog: preposterous process number: 32055 というようなメールが1時間に1通届いていることが判明。同じような設定の OpenBlockS 266 では、このようなメールは届いていないようだ。
どうも newsyslog のコンパイルで PID_MAX の値を間違っているようだ。おそらく 30000 以上の pid だとこのような警告になるようだ。以前、syslogd のオプションを変えたかったので、手で syslogd の再起動を行ったのだが、このとき 30000 以上の pid となってしまい、以後ずっと cron 経由で警告を受けていた模様。もう一度 syslogd を再起動して 30000 以下の pid にした。
newsyslogd を作り直せばいいのだが、通常の再起動では、問題が出ないはずなので、このままにしておく。
[2003/6/4] qmail が動き出した。
[2003/5/26] XFree86 のインストールに成功。
[2003/4/25] samba が動き出した。
[2003/4/23] 時刻合わせを自動で行うようにする。
[2003/4/21] http.conf を修正したところ、WebDAV (@ITの記事に詳しい)でアクセスできるようになった。Alias /test/ /home/dav/test/ ではだめで、Alias /test /home/dav/test/ (testの次のスラッシュを取る)にしないといけないなんて、困ったものだ。とりあえず、Webサーバーとか掲示板の遠隔メンテナンスはできそうだ。samba は相変わらず原因不明。
2003/4/19に佐川で届いた。インターネットの荷物トレースでは、朝近くのターミナルを出たことになっているようだが、届いたのはなんと夜の8時、それも催促の電話を入れてやっと。
電源を入れて、シリアル・ポートにつないだPCで、正常に立ち上がっていることを確認して、電源を落とす。dmseg ぐらいとっておけば良かったか。
いきなりばらして、今日近所の電気屋で買ってきた 40GB の 2.5inch HDD (IBM 製) を取り付ける。ネジを買い忘れた、と思ったが、CFカードを取り外した際に残ったネジがそのまま使えた。
シリアル・ポートから fdisk で 4G, 128M, 34G と切って、それぞれ /, swap, /home, にする(つもり)。/etc/rc.conf に dhclient=YES と書き足せば、とりあえず eth0 が dhcp でブロードバンド・ルータに繋がったので、sysinst でインストール開始。全部のモジュールを plathome さんの ftp サーバーから持って来るようです。(ごめんなさい) - 【後日談】 /etc/rc.conf に dhclient_flags="eth0" も加えないと、使っていないネットワーク・インターフェースでDHCPサーバーが見つからない、といったメッセージを大量に受け取ることになる。 【さらに後日談】内部でメール・サーバーを立てると、ルータがMXレコードをフォワードしてくれないことが判明、DHCPは止めて固定アドレスにする。
ftp のダウンロード先のパス名が、最新版を指していないので、手で修正する必要あり。全部ダウンロードで 2 時間くらいかかった。
HDD立ち上げに切り替え (flashcfg -c harddisk) て、shutdown -r now。なんとか正常に立ち上がるようだ。swap を認識していないようなので、自分で mkswap, /etc/fstab 書き換え、swapon -a をする必要があった。SSD/Linux 0.2-20030417/2.4.20 #3 が動き出した。
時刻が UTC を指しているようなので、date -s "xx:xx:xx"; hwclock -s でとりあえず調整。一般ユーザーを作成。useradd otsuka -m ; passwd otsuka 。BSD 系は一般ユーザーが su 出来ない(?)ので、/etc/group の wheel に root,otsuka というように書き足す。su の後など logout に Ctrl + D を使う癖があるので、/etc/profile を編集して ignoreeof=10 を削除。
Apache + Perl (cgi) をすぐにでも動かさなければならない。perl は、バイナリではついていないので、/usr/src/usr.bin/perl から bmake で作る。これにも 2時間程度かかった。Apache は 1.3.27 に mod_dav も入れることにして、FreeBSD Layout (/usr/local 下に入れる) でインストール。なんとか cgi (掲示板)は動くようだ。mod_dav では繋がらないようだ。【後日談】 mod_dav は動くようになった。
自宅内のファイル・サーバーとして動かさないといけないので、samba をインストールしなければならない。こいつもバイナリは提供されていない。/usr/src/contrib/samba で bmake すればできるようだ。しかし、これが 3時間くらいかかった。なんとか動いているようだが、Windows Xp からアクセスしてもエラーになる。smbd のエラー・ログには、見たことも無いエラーが記録されている。いや〜な予感。【後日談】 samba は動くようになった。
ssdlinux には sudo コマンドが付いているが、設定がされていない。
/etc/pam.conf に以下を加える
# # The PAM configuration file for the `sudo' service # sudo auth required pam_unix.so sudo account required pam_unix.so sudo session required pam_unix.so
root になって visudo コマンドで、wheel グループに属するユーザーは一定時間なんでも出来るように設定する。(コメントを外すだけ、コマンドを限定したほうが良さそうだが、実行したコマンドのログが残るのでよしとする)
# Uncomment to allow people in group wheel to run all commands %wheel ALL=(ALL) ALL
wheel に属する一般ユーザーで sudo cat /etc/shadow とすれば、パスワードを聞いてくる。自分のパスワードを入れれば、実行されるはず。後は、5分間パスワード無しで sudo コマンドが使える。./configure ; make ; sudo make install というスクリプトを書いても大丈夫だ。
su - コマンドのような、ユーザーの環境を引き継がないで実行する方法がわからない。
/etc/rc.conf に ntpdate=YES ntpdate_hosts="210.173.160.27 210.173.160.57 210.173.160.87" ntpd=YES を加える。
/etc/ntp.conf に以下の設定を加える
# ntp[123].jst.mfeed.ad.jp server 210.173.160.27 server 210.173.160.57 server 210.173.160.87
root になって /usr/sbin/ntpd を起動、しばらく経ってから ntpq で様子を見る。ホスト名を付けないとエラーになるのは、eth1 とか tun0 とか動いていないインターフェースがあるからかも。
$ /usr/sbin/ntpq minig
ntpq> peer
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp1.jst.mfeed. utc3.crl.go.jp 2 u 32 64 377 23.266 -0.722 2.338
+ntp2.jst.mfeed. utc3.crl.go.jp 2 u 37 64 377 22.886 4.153 4.064
+ntp3.jst.mfeed. utc2.crl.go.jp 2 u 33 64 377 23.003 -1.002 2.714
ntpq>
時刻が合ったら、hwclock --systohc しておく。
ブロードバンド・ルータのDHCPにアドレスを割り当ててもらう場合、DNSの設定 (/etc/resolv.conf) がブロードバンド・ルータを指すように変更される。ブロードバンド・ルータでは、プロバイダのDNSとの間で問い合わせを中継 (forwarding) してくれる。
内部にメール・サーバーを置いて外部へメールを出そうとする場合、宛先に対応するメール・サーバーを見つけるために、DNSを使ってMXレコードを検索しないといけないのだが、どうもブロードバンド・ルータがMXレコードの中継をやってくれないようだ。セキュリティ上の問題で意図してやっているのか、そういう仕様なのか不明だ。
仕方が無いので、以前からやろうと思っていたのだが決心がつかないでいた、OpenBlockS の固定アドレス化を行うことにした。ブロードバンド・ルータのアドレスは、192.168.0.1 で、OpenBlockS (ホスト名 minig)のアドレス 192.168.0.80 で、このアドレスをブロードバンド・ルータが DHCP で割り当てることが無いことを確認し、/etc/rc.conf を書き換えて再起動。
$ cat /etc/rc.conf
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
fi
rc_configured=YES
do_contrib_rc=NO
hostname="minig"
defaultroute="192.168.0.1"
domainname="localdomain"
auto_ifconfig=NO
net_interfaces="eth0"
ifconfig_eth0="192.168.0.80"
ntpdate=YES
ntpdate_hosts="210.173.160.27 210.173.160.57 210.173.160.87"
ntpd=YES
sshd=YES
他にも、ls /usr/contrib/samba/lib/smb.conf でインターフェース名をアドレスで指定していたのを修正。/etc/resolv.conf には、プロバイダから指定された DNS のアドレスを書いておく。
OpenBlockS - ぷらっとホームによる FutureNet(フューチャーネット) eServer のOEM販売。現在は、FutureNet ES1-200 という製品になっているようだ。 OpenBlockS Users room - OpenBlockSに関して、ユーザの立場から情報交換などを行う場所、メーリングリストなど。 ぷらっとホーム - 取扱製品 - OpenBlockSシリーズ | Plat'Home Open Laboratory - ぷらっとホーム - オリジナルプロダクト、センチュリーシステム MA-300 の OEM 村瀬のメモ帳 | クロス開発環境の構築方法
ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。 Copyright 2000-2003 Koichi Otsuka