*自宅サーバーを作る
*自宅サーバーを作る [#rd3e5931]
OpenBlockS について
(すでに[[Sakura/VPS]]にその機能を移し、常時稼動ではなくなっています)

**目次
**目次 [#qbecdf5d]
#contents

-[[OpenBlockS/Debian]] - Debianで使う
-[[OpenBlockS/RelatedLinks]] - OpenBlockS 関連リンク集
-[[OpenBlockS/ToDoList]] - やることリスト
-[[OpenBlockS/Tips]] - ちょっとした技
-[[OpenBlockS/Packages]] - 追加ソフトのインストール手順
-[[OpenBlockS/VNC]] - 作業中でもPCを切り離せるのが魅力
-[[OpenBlockS/WebServer]] - apache とバックエントを入れて http サーバーを構築する手順
-[[OpenBlockS/MailServer]] - qmail とその仲間をインストールして、メール・サーバーを構築する手順
-[[OpenBlockS/PukiWiki]] - 少しもっさりとした反応になるが使えなくはない
-[[OpenBlockS/MailServer]] - Postfix のインストールと運用技、以前は [[qmail>OpenBlockS/qmail]]とその仲間で動いていたが、[[Double Bounce攻撃>OpenBlockS/DoubleBounce]]を受けて変更。
-[[OpenBlockS/navi2ch]] - navi2ch を入れて、どこからでも2ch
-[[OpenBlockS/BBS]] - BBSをspamから守る
-[[お家サーバー日記]] - 日々のメンテナンス記録

**はじめに
**はじめに [#l4cc7633]
家庭用で消費電力が少なく、静かで場所をとらないネットワーク・サーバーをつくるというテーマで OpenBlockS を使ったネットワーク・サーバーを作ってみる。

最近は、我が家でもADSL常時接続になったのと、Dynamic DNS サービスがこなれてきたようなので、自宅のファイル・サーバーも兼ねて OpenBlockS を使い倒してみることにした。OpenBlockS は 50 も 200 も扱ったことがあるので、今度の 266 も楽勝だと思われたが、今回から ssdlinux になっているのでかなりつらい。

ssdlinux は i386 版があるので、クロス・コンパイルができるだろうと思っていたが、どうもサポートするネットワーク・カードとかHDDとかが厳しくて、動かすことが出来なかった。せめて VMware 環境をサポートしてくれるとありがたいのだが。

**顛末記
セキュリティ修正など出るたびにソースを取り寄せて、コンパイル・動作チェックというのは、さすがに辛くなってきた。debian なら apt-get update 一発で済むところが、何時間もかかってしまう。HDD に debian(ppc版) のユーザーランドを展開すれば、簡単に動くようだ。でも、ヨットやグライダーが無くならないように、UNIX でもソースからコンパイルして構築できたほうが、何かの役に立つのかもしれない -- 負け惜しみかだったりして、debian 試したいけど、我が家の財務大臣が、もう1つ OpenBlockS 買うの許してくれんだろなぁ&sad;)。

2005/6/24 [[ぷらっとホームのサポート:http://www.plathome.co.jp/support/labo/obs266/index.html]]ページの事例のところに debian sarge HDDイメージの配布のお知らせがあることに気が付いた。
そのうち試してみよう。

2009/1/7 HDD故障で交換ついでに debian etch で使うことにした。自分でコンパイルする必要が無くなってとても快適なのだが、debian をわざわざ非力な OpenBlockS で使う意味があるのか...とか、自分でコンパイルするとコンパクトなものが作れるのに...といったことが頭をよぎる。

**顛末記 [#y4c387c5]
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 は動くようになった。

**ちょっとした技
***sudo
ssdlinux には sudo コマンドが付いているが、設定がされていない。
**終焉 [#l3346727]
さくらVPSを借りた時から考えていたのだが、ついにその日がやってきた。
すでに手のかかる一般公開用のWebサーバーやメール・サーバーはレンタル・サーバーへの移行が済んでおり、非公開のWikiだけをサービスしている状態だった。
内蔵のHDDは3年前に故障で交換(その前は5年間の稼働)しており、そろそろ故障してもおかしくない時期に来ている。HDDもノートパソコン用のもので、24時間の連続稼動は考えられていないと思われるのでなおさらである。

/etc/pam.conf に以下を加える
非公開サーバーをレンタル・サーバーへ持って行かなかったのは、サーバーを乗っ取られるなどした際の情報漏洩が怖い、というのがあったのだが、バックアップをVPSにとっていたりしたので、セキュリティ的には変わりがないため、IPやパスワードで制限して外に置くことにした。

 #
 # 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
さすがに8年前の組み込み用CPUと比べればさくらのVPS(2コアの2.4GHz Core2Duoとして認識されている)の処理スピードは問題がない。

root になって visudo コマンドで、wheel グループに属するユーザーは一定時間なんでも出来るように設定する。(コメントを外すだけ、コマンドを限定したほうが良さそうだが、実行したコマンドのログが残るのでよしとする)
(2011年8月23日)

 # Uncomment to allow people in group wheel to run all commands
 %wheel  ALL=(ALL)       ALL
**参考 [#oce3e75b]

wheel に属する一般ユーザーで sudo cat /etc/shadow とすれば、パスワードを聞いてくる。自分のパスワードを入れれば、実行されるはず。後は、5分間パスワード無しで sudo コマンドが使える。./configure ; make ; sudo make install というスクリプトを書いても大丈夫だ。
#amazon_associate(B004V2DWEE)

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 しておく。

***ブロードバンド・ルータのDNS
ブロードバンド・ルータの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 のアドレスを書いておく。

**To Do List
+今は、ブロードバンド・ルータが Firewall になっているが、OpenBlockS でやったほうが柔軟に設定できる。しかし、調整中は他のPC端末からインターネット接続できなくなるかもしれないのと、セキュリティ上危ない状態を作ってしまいそうなので、ブロードバンド・ルータのStatic NATによる外部公開機能を使って OpenBlockS の Web Server と ssh ポートを外からアクセスできるようにしている。 
+flashcfg -c harddisk の状態で flashcfg とだけ入力すると、かなり悲惨なことになる。フラッシュ・メモリに格納された設定ファイルを警告無しに HDD へ上書きしてしまう。フラッシュ・メモリに格納された設定ファイルというのは、flashcfg -c initrd の時に使うべきもので、/etc/flashcfg にファイルの一覧があるが、HDD で運用しているものとは異なる。設定ファイルのミスなどで HDD 立ち上げが出来なくなった場合に、INIT ボタンを押しながら立ち上げれば、一時的にフラッシュ・メモリのinitrdを使って立ち上がる。このとき使われる設定ファイル。HDDで運用時に flashcfg -s /etc/flashcfg で HDD の内容と同じにしてしまうこともできるが、HDDが立ち上がらなくなったときのリカバリとしての役割が無くなる。 

**完了した項目
+perl を使った cgi で、GET method を使った検索の次のページの処理で、文字化けを起こすことが発覚。perl 5.8 で内部 Unicode を使うようになったのが影響しているのかもしれない。 【解決済み】WebDAVの設定(mod_encoding)をしないようにしたら解決した。
+XFree86 を入れる。emacs を X toolkit 付きでコンパイルしたいとか、VNC server を入れたいとかで、XFree86 のサーバー以外の環境が必要。以前 OpenBlockS 200 だと、plathome の ftp サイトにあった XFree86/Linux-ppc-glibc21 がバイナリのまま使えたのだが、ssdlinux の場合 glibc 2.3 なのでソースから作るしかないかも。【実施済み 2003/5/26】
+Dynamic DNS 側で MX レコードも用意されているようなので、smtp で受け取って、pop でアクセスできるようにする。【実施済み 2003/6/4】 
+Apache のログをローテーションする必要がある。[[WEB サーバ(Apache)の設定:http://freebsd.sing.ne.jp/FreeBSD/10apache/10.1.html]]あたりが参考になる。【実施済み 2003/5/31】 
+ntp で時刻合わせを行う 【実施済み 2003/4/23】 
起動時に module のバージョンが合わないとか出ていたが、kernel は Flash ROM から読み込んでいるようだ。uname -v で kernel のバージョンが出る。/dev/hda1 にインストールしたものと合わせる必要がある。FlashROMイメージ((wget ftp://ftp.plathome.co.jp/pub/ssdlinux/0.2-20030423/powerpc-obs266/installation/zImage.initrd.treeboot-product ))を取ってきて、flashcfg f zImage.initrd.treeboot-product check とすればいいのかな? 【実施済み 2003/4/25】 Linux minig 2.4.20 #3 Thu Apr 17 15:04:08 JST 2003 ppc ppc405 SSD/Linux 0.2-20030417 になった。module のバージョンが合わないと出るのは同じだった。 
+dhclient でエラーが記録されつづけるため、動いていないインターフェースは止める。 【実施済み 2003/4/25】 /etc/rc.conf に dhclient_flags="eth0" を加える。 
+emacs で Back Space の扱いが変。 【解決済み 2003/4/25】 

**関連リンク集
-[[OpenBlockS:http://openlab.plathome.co.jp/OpenBlockS/index.html]] - ぷらっとホームによる FutureNet(フューチャーネット) eServer のOEM販売。現在は、[[FutureNet ES1-200:http://www.centurysys.co.jp/product/es1/index.html]] という製品になっているようだ。 
-[[OpenBlockS Users room:http://his.luky.org/OBU/]] - OpenBlockSに関して、ユーザの立場から情報交換などを行う場所、メーリングリストなど。 
-[[ぷらっとホーム - 取扱製品 - OpenBlockSシリーズ:http://online.plathome.co.jp/products/openblocks/index.phtml]] | [[Plat'Home Open Laboratory:http://openlab.plathome.co.jp/]] - ぷらっとホーム - オリジナルプロダクト、センチュリーシステム MA-300 の OEM 
-[[村瀬のメモ帳:http://homepage2.nifty.com/murase/]] | [[クロス開発環境の構築方法 :http://homepage2.nifty.com/murase/cross/cross.html]]

----
#include(免責事項)


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS