FreeBSD構築苦労談

このページは経験則から記載しておりますので、理論的でない表現があることはご容赦ください。
また、ipアドレス等は実際の構成と異なる値で記述しています。


[動機]

 平成14年3月中旬、それまでWindows98を搭載して使っていた PC-9821Nr13(Lavie)が起動やアプリの処理があまりに遅く感じてきたため、中古屋を探しあるいて別のPCを手に入れました。

 机の上からLavieを撤去し新PCを設置しようと思い作業を開始したわけですが、その際Lavieを乱暴に扱ったせいか、それともLavieが新PCに嫉妬したかどうか定かではありませんが、マウスが使えなくなってしまいました。

 サーバとしてはまだ十分使用に耐えるので、何とか修復しようと思い分解したり孤軍奮闘したのですがとても手におえるしなものではありません。
 でも、何とか起動はできたので「スタートアップ」に「vnc」を設定することに成功しました。
 しばらくはそれで使っていたのですが、これではいかんなと思い使用を停止しました。

  なにしろ我が家には古いけどWin95でファイルサーバやWWWサーバとしてノートPCを使っていましたので、Win系のサーバはもう必要ありませんでした。
  でも、古いものを動かすのが好きなので「何かに使えないかな〜」と思っていました。
 丁度、仕事で「Linux」によるWWW公開サーバの構築をしておりましたので、「Linux」で動かせないかな?・・・・・と思っていたのです。(お金をかけないで!)

 そんな時、「昔、仕事で一緒だった奴がPC-9801NS/AにFreeBSDをインストールしてたな・・・」ということを思いだし「今FreeBSDどうなっているのかな?」と考え本屋に行きました。
 あるある、丁度よいことに「UNIXユーザ4月号」に「FreeBSD 4.5-RELEASE CD-ROM」がありました。 早速購入し、苦労の道のりが始まったわけです。


[構築履歴]・・・・・参考資料(98Readme)

 H14.03.29 早速インストールしました。
        結果を急いでしまったため十分な吟味をせずにインストールしてしまいました。
        ネットワーク設定でpingの応答が帰ってきません。
        とりあえずこの日はここまでにしました。


 H14.03.30 ネットワークの設定をしました。
        どういうわけか/stand/sysinstallで設定した内容が反映されていません。
        「UNIXユーザ4月号」に「ネットワークの活用術」が載っていたので、それを参考に各種の検証をしてみました。
        最終的には起動後にrootでログインし以下のコマンドを発行することでネットワークが使えるようになりました。

        ifconfig ed13 inet 192.168.2.8 netmask 255.255.255.0

        pccardは認識しているのになぜかな〜でしばらく色々試してみましたがだめでした。
        結局、この日はここまでにし、とりあえず/rootにシェルファイルを作成して起動後にログインしシェルを実行する
        ことにしました。


 H14.04.01〜04.05 ネットワーク設定および外付HDDマウントの自動設定に挑戦しました。
        毎日深夜まで頑張り何とか以下の結論に達し、自動設定に成功しました。

        ネットワークアダプタおよびSCSIアダプタがどちらもpccardであったため、起動の最後に設定するようetc/rc.local
         に以下を記述し新規書き込みしました。

        ifconfig ed13 inet 192.168.2.8 netmask 255.255.255.0
        mount -t ufs /dev/da0s1e /usr1
        mount -t ufs /dev/da1s1e /usr2

        また、/usr のエリアに全portsをインストールしたら、ディスク使用率が100%を超えてしまい、カーネルがエラーを報告
        してきました。
        そこで、/usr/portsの中にある全ファイルをrmしディスクを68%使用までにしました。
        /rootの環境変数 PORTDIR=/usr1/portsにしました。
        その後のportsインストール検証はしていません。
        しばらくはpakagesでAPをインストールしたいと思います。

        この実験の段階で mv /usr/ports /usr1としたらカーネルパニックを起こしてしまいました。システムが停止したの
        でやむなく電源再投入したら外付ディスクがマウントされません。
        手動でマウントしたら「先にfsckしてちょ」みたいなメッセージがあり、外付ディスクをfsckしたらマウントおよび自動マ
        ウントができるようになりました。
        原因は多分230Mbyteの方のディスクが不調のようです。
        今後このディスクに大量データの転送は控えたいと思います。

        更にsambaによるWindowsファイルの共有およびapacheによるWWWを実現しました。
        低スペックマシンなのに早いです。


H14.04.06〜04.07     メール送受信に挑戦しました。
                ここはちと手ごわいのでジックリやりたいと思います。
                後は、ジックリとエラーつぶしをしたいと思います。


H14.04.08〜   マニュアルページをインターネットから取得してアップし勉強したいと思います。 
           後しばらくはマイペースで・・・・!!!


H14.04.21  前使っていてWindows上では動作不能だったPC-9821La10にFreeBSDをインストールしました。
        きっかけは、Lavieの環境が「FreeBSD」のインストールについて良く理解しないまま設定したため、いまいち動作が
        おかしいため、PC-9821NEにインストールしようとしたことです。
        でも、PC-9821NEやNS/AではFreeBSDでPccardが使えないことがわかりあきらめかけましたが、
        その時ふと「PC-9821La10」はMS-DOSやWindowsではハードディスクがおかしいけど、UNIXのファイルシステム上
        ではどうかなと思いチャレンジしました。
        何回かチャレンジし、各パーティションの容量も手動で設定したところ、無事起動しました。
        今後La10は動作検証用および自宅データ用サーバとして活用していきます。
        04.30(火)突然シークエラーでダメになりました。(あきらめます)
         なお、LavieはFreeBSDを再インストールしました。NICのPccardがrc.local起動後に有効になるため、現在は起動
        後 root でログインし手動でNICを有効にしています。
・・・・・この問題はその後解消しました。
        近い将来はインターネット公開サーバにするつもりです。


H14.05.05  やった!グローバルアドレス指定によるインターネット経由で自宅サーバ公開に成功!
        次は「フレッツISDN」の導入と「ぷらら→フレッツISDN・プラスセット」に乗り換えし、ダイナミックDNSによるサーバ
        公開にチャレンジだ〜!

        色々悩んだけど、最終設定を以下に記録しておきます。
(設定内容のリンクはセキュリティのため割愛しました)
        後は極力変更しないようにしたいと思います。

        回線    :NTT東日本「ISDN」
        プロバイダ :justnet
        ルータ   :NTT東日本 IPMATE1300RD
        
         [ルータ設定]

          相手情報で以下の設定を追加しました。
           ・静的NAT情報
           ・IPフィルタリング
          この設定では、インターネットからWWWとtelnetは通りましたが、ftpは接続タイムアウトしました。
          (telnetはローカルでも接続まで時間を要すようになってしまいました)

         [サーバ設定]

          ・/etc/rc.conf を設定しました。


H14.05.06  telnetが遅く、ftpが接続できない問題が解決しました。
        /etc/hostsに各PCのローカルなipアドレスとコンピュータ名を登録したら解決しました。
        
※telnetdはipアドレスからコンピュータ名を取得しログとして保存するためです。
        ケーブル長かな〜?とも思ったのですが、どうやらそうではないようです。
        せっかくPCを客室に移動したのに徒労に終わってしまいました。
        でも、まぁいいか〜セキュリティの一環にもなるし。


H14.05.10  NTT東日本の116に電話し「フレッツISDN」の申し込みをしました。
        使用開始は15日からとのことです。
        今までは、「iアイプラン1200」だったので通信料節約のため手動にて接続してましたが、これからは気にし
        なくていいぞ〜!


H14.05.20  「ぷらら」にオンラインサインアップし「フレッツISDNプラスセット」の申し込みをしました。
        このサービスにはメールアカウントが1コつき、更に5時間までのダイヤルアップによる接続(モバイル用)とダイ
        ナミックDNSの利用がつきます。これで月1,000円です。
        同時にダイナミックDNSのサービス申し込みもしました。ドメインは takaq1.plala.jp です。
        早速ルータに設定内容を登録し接続しました。そして http://takaq1.plala.jp/ と入力すると・・・・・・
        やりました。自宅サーバーのトップページを表示、感動しました。
        ※この後、「justnet」に「退会届」の送付申請をメールで実施しました。


H14.05.26  PC-9821Ne(Windows95)にNeon Mail Serverを設定しました。
        本当はLavieをメールサーバにしたかったのですが、 sendmailを使うにはDNS(BIND)サーバを立てないとい
        けないし、受信メールサーバにはpopperなんか設定しないといけないし色々と面倒くさかったのと、「ぷらら」
        のダイナミックDNSサービスでは「DNSはAレコードのみでNXレコードが無いので、自サイトでのDNS運用は
        できません・・・」みたいな記述があったのでやめました。
        ※メールサーバ(PC-9821Ne)はWWWサーバ(Lavie)と同様、毎週土曜日の早朝1時間くらい休息させており
         ます。調子いいです。


        ※H14.09.14 メールサーバー機はPC-9821Ne(Windows95)からPC-9821V7(Windows NT Server4.0)に
         移行し常時運転しています。


H14.07.03  「Webベース」でGUI感覚により環境設定できるツールを設定しました。
        前から探していただけにその操作性には感動しました。
        情報は「OverHeadz.com」さんの「Server SetUP」で見つけました。
        「OverHeadz.com」さんありがとうございます。
        【セットアップ方法】

         @「WEBMIN公式サイト」よりファイルをダウンロードします。
          最新版は"webmin-0.990.tar.gz"(約5Mbyte)です。
         Aダウンロードしたファイルを任意のディレクトリに保存します。
          セットアップするディレクトリは/usr/localです。

           # cp webmin-0.990.tar.gz /usr/local [Enter]
           # tar -xzvf webmin-0.990.tar.gz [Enter]
           (ディレクトリ作成とファイルの展開が実行されます)

           # cd webmin-0.990 [Enter]
           # sh setup.sh [Enter]
           (セットアップが実行されます、ほとんどの項目はディフォルト[Enter]でよいです)

         Bブラウザから http://xxxxxxxx:10000 と入力します。
         Cユーザ名とパスワードしログインします。
         Dwebmin設定でLanguageをjapaneseにすると日本語が使えます。

        【アンインストール】

          # cd /etc/webmin [Enter]
          # sh uninstall.sh [Enter]

         あとは不要ファイルを削除します。


H14.10.10  WWWサーバー機にnameserverの設定をしました。
        きっかけはWWWサーバーに設置してある「アクセス解析」、「フォームメール」、「チャット」および「CGI認証」
        において、LAN内のコンピュータ名によるアクセスは速いのに、インターネットからのアクセスだと処理が終わ
        るまで約1分半くらいかかってしまうことでした。
        各CGIのソースを解析して「IPアドレスからホスト名」を取得するところで時間がかかっていることを発見しまし
        た。
        「ええ〜い、面倒くさいからリマークしちゃえ!」で速くなったのですが・・・・まてよ! ここで妥協してはいか
        ん!と思い調べたのです。

        そしたら・・・・・・・/etc/host.confと/etc/resolv.confに行き当たりました。

/etc/host.conf
# コンピュータ名を探しにいく順序を記述します。下の場合は最初にローカルをあたり次に/etc/resolv.conf
# にあるとこ ろを探しなさいの意味です。(順序を逆にすると反対に探します)
        host      # /etc/hostsを探す
        bind       # /etc/resolv.confにあるところを探す

/etc/resolv.conf
# nameserverを指定します。次のように設定しました。                              
        serch plala.or.jp
        nameserver 210.153.1.1    # ぷららのプライマリーDNSです
        nameserver 210.153.1.9    # ぷららのセカンダリーDNSです

        ・・・・・・ところが一定時間経過もしくはリブートにて次のように書き換わってしまいます。
        serch
        nameserver 192.168.2.1

        これも調べました。そしたら、わが家はダイヤルアップルータのDHCPサーバー機能を利用しているのですが
        その設定のうちDNSの設定項目がありそこのプライマリーDNSに192.168.2.1を書いていたのでした。
        で、それを正規にぷららのDNSサーバーアドレスを設定したらOKでした。
        確認として、nslookup ドメイン名 と nslookup ipアドレス をしたら両方とも正常にipアドレス、ドメイン名を引
        くことができました。

        
最後に「アクセス解析」、「フォームメール」、「チャット」および「CGI認証」の各CGIが素早く処理されることを
        確認しました。
        めでたし、めでたしです。ふぅ!


H14.10.17 〜 10.19 FreeBSDにメールサーバーを設定しました。
             sendmailとpopperで念願のFreeBSDによるメールサーバー構築に成功しました。
             他のUNIX系にも通じるところがあると思うし、また、今後自分のためにもドキュメントを残します。
             勉強になった〜、うまく動いた時の感動は"たまらない"ものがあります。


H14.10.20 FreeBSDのサーバーにおいて、rootに出力されるメールをメールサーバーのメールアカウントに出力されるよう設
       定しました。
       この設定前は毎日出力されるrootからのメールをtelnetでログインしmailコマンドで見てから削除するという行為が
       必要でしたが、これからはクライアントPCのメーラーで見ることができます。便利です。

        以下に設定方法を記録します。

        ・クライアントPCからtelnetでログインしスーパーユーザーにて/etc/mail/aliacesを修正します。
        カレントディレクトリは/etc/mailにうつしときます。

         (この前に/etc/mail/aliaces.dbのバックを作っておきます。 cp aliaces.db aliaces.db.bak)

# $FreeBSD: src/etc/mail/aliases,v 1.10.4.4 2001/12/30 17:52:01 gshapiro
Exp $
2 # @(#)aliases 5.3 (Berkeley) 5/24/90
3 #
4 # Aliases in this file will NOT be expanded in the header from
5 # Mail, but WILL be visible over networks.
6 #
7 # >>>>>>>>>> The program "newaliases" must be run after
8 # >> NOTE >> this file is updated for any changes to
9 # >>>>>>>>>> show through to sendmail.
10 #
11 #
12 # See also RFC 2142, `MAILBOX NAMES FOR COMMON SERVICES, ROLES
13 # AND FUNCTIONS', May 1997
14
15 # Pretty much everything else in this file points to "root", so
16 # you would do well in either reading root's mailbox or forwarding
17 # root's email from here.
18 # update by takaq 2002.10.20(Sun)
19 root: master@takaq1.plala.jp   ※ここです。
20
21 # Basic system aliases -- these MUST be present
22 MAILER-DAEMON: postmaster
23 postmaster: root

※この下にも一杯記述があります。
あとは make aliases でOKです。新たな aliases.db ができているはずです。

       これでrootに来たメールはmaster@takaq1.plala.jpに送信されます。


H14.10.23   ダイヤルアップルータのネームサーバー及びドメイン広報の設定を変更しました。
         メールサーバーがらみでなっているのかどうか明確ではありませんが、10月21日あたりからLAN内のPCからインター
         ネットに出られない現象が毎日発生しております。これはやっぱりDNSへの設定関連と思います。
         なお、外部からのWWWサーバーへのアクセスはOKだったようです。

                 [変更前]            [変更後]
 ルーター設定
  ・ネームサーバー1    210.153.1.1           192.168.2.1
  ・ネームサーバー2    210.153.1.9           210.153.1.1
  ・ドメイン広報       plala.or.jp             (空欄)

 /etc/resolv.conf     serch plala.or.jp          serch
                 nameserver 210.153.1.1    nameserver 192.168.2.1
                 nameserver 210.153.1.9    nameserver 210.153.1.1

         なお、上記設定後インターネット経由でのメール送受信「アクセス解析」、「フォームメール」、「チャット」および「CGI認
        証」がスムーズに行われることを確認しました。これで少し様子を見ます。
        これでも現象再現したら・・・・・20日に設定した件のうちWWWサーバーのを戻してみるかぁ!


H14.11.01   anonymous FTP のセキュリティを強化しました。
         10.31(木) anonymous FTP への大量データ送信攻撃によりサーバーが一時不安定になったことから実施しました。
         調査にあたっては「小規模サイト管理者向け セキュリティ対策マニュアル」を参考にしました。
         まず最初に/var/ftp以下を確認しました。

ディレクトリ オーナー パーミッション 記事
/var/ftp root 555 ディフォルト設定でした。
/var/ftp/bin root 555 ディフォルト設定でした。
/var/ftp/bin/ls root 111 ディフォルト設定でした。
/var/ftp/bin/date root 111 ディフォルト設定でした。
/var/ftp/etc root 555 ディフォルト設定でした。
/var/ftp/etc/passwd root 444 ディフォルト設定でした。
/var/ftp/etc/group root 444 ディフォルト設定でした。
/var/ftp/pub root 755 ディフォルト設定でした。

         これの他、ユーザがデータを置いていけるディレクトリ(/var/ftp/incoming drwxrwxrwt)については削除しました。
         これで、LAN内よりFTPテストするにanonymous FTPではログインはできますが、アップロードはすべてできなくなりました。

         また、PC-9801NS/Aに設定したメールサーバーのrelay testを実施しました。
        ここをクリックするとテストできるページに行けます。(短時間で)何種類かのテストを実施し結果をレポートしてきます。
        [Address to test:(as host name or dotted quad)欄にドメイン名を入力し、Test for relay のボタンを押します]
        テスト結果はこちらです。どうやらOKのようです。


H14.12.05〜 フリーのグループウェア「SkyBoard」を使ってみたくて関係するものをインストール検証しています。
        「SkyBoard」を動かすためにはApache,PostgeSQL,php4が要るのです。
        最初、このサーバー上で検証していたのですが、各プログラムでconfigureによる設定が必要でありApacheなんかは再
        構築が要るみたいなので、このサーバーに異常をきたすわけにいかないので別マシン上で検証することにしました。
        検証マシンはちょっと前にベンダさんから頂戴したPC-9821xc13です。(OSのインストールは省略しています)

        まずは、PostgreSQLをインストールしました。
        次にApacheをインストールしました。
        そしてPHP4をインストールしました。
        最後にSkyBoardをインストールしました。

        12月14日(土)お手上げ状態です。http://サーバー名/Skyboard/でこんな画面なのです。
        どなたかここクリックして教えてください。

        ちなみに環境は下表のとおりです。

 

ソフト名

バージョン

ファイル名

備考

サーバOS

FreeBSD

4.5

 

CD-ROMからInstall

ソフトウェア

Apache

1.3.27

apache_1.3.27.tar.gz

webサーバソフト

 

PHP

4.1.2

php-4.1.2.tar.gz

スクリプト言語

 

PostgreSQL

7.1.3

postgresql-7.1.3.tar.gz

フリーデータベース

 

SkyBoard

2.0

skyboard-2.0.tar.gz

グループウェア

         H15.01.13(月) SkyBoardについては真に残念ですが諦めました。挫折です。
          アドバイスいただいた皆様には、この場を借りてお礼申し上げます。

          「ありがとうございました。」

また、別の機会にじっくりと取り組んでみたいと思います。

H15.02.08〜09 ホームページおよびメールの各サービスをお申込いただいた皆様の環境設定にあたり、自分として
            新たに学習したものを記録しておきます。
           
           1.FTPでホームディレクトリより上に移動できないようにする設定
             恥ずかしながら今回のことで調べました。
             FTPはFreeBSD標準のものを使っています。結構信頼度は高いようです。
             何も配慮しないと階層をどこまでも上がることができ、悪意は無くてもシステム・ファイルを削除
             されかねません。

               どうするかといいますと、/etc/ftpchroot というファイルにユーザ名またはグループ名を書き
             ます。

               こうすることで、FTPでログインしますとホームディレクトリが '/'(root)になります。
              Ex  

# /etc/ftpchroot user-a〜user-cはユーザ名, @はグループ名です
user-a
user-b
user-c
@user1
@user2


            2.ユーザの削除
              実はtakaqはユーザ登録する時にはadduserコマンドではなく/stand/sysinstallを使っていま
              す。
              今回、あるユーザの設定を間違えて登録してしまい、ユーザ削除の必要性が発生しました。
              あれ、まてよ/stand/sysinstallにはユーザ削除が無いぞ・・・・・・昔のsysytemX系ならやっ
              たこと
あるんだけど〜そうです。FreeBSD上でのユーザ削除は初めてだったのです。
                調べました。ここにありました。それによると・・・・・

ユーザーを削除するには、「rmuser」コマンドを実行する。(# rmuser haruna[Enter] でもOK)

# rmuser [Enter]

すると、削除したいユーザー名を聞いてくるのでユーザー名を入力し、エンターキーを押す。

Enter login name for user to remove: haruna [Enter]
Matching password entry:
haruna:$1$kDpkv$Sja1RzC.KR2gtBCN4dFnj.:2003:2001::0:0:Haruna Taro:/home/pc/harun
a:/bin/sh
Is this the entry you wish to remove?

削除してよいか聞いてくるので、「y」キーを押し、エンターキーを押す。

Is this the entry you wish to remove? y [Enter]
Remove user's home directory (/home/pc/haruna)?

次にそのユーザーのホームディレクトリも削除するか聞いてくるので、「y」キーを押し、エンターキーを押す。

Remove user's home directory (/home/pc/haruna)? y [Enter]
Updating password file、 updating databases、 done.
Updating group file: (no changes) done.
Removing user's home directory (/home/pc/haruna): done.
Removing files belonging to haruna from /tmp: done.
Removing files belonging to haruna from /var/tmp: done.
Removing files belonging to haruna from /var/tmp/vi.recover: done.
#

いくつかメッセージが表示され、ユーザーの削除が完了する。

H15.04.17〜04.20 PC-9821Ne&拡張ユニットの構成にFreeBSDをインストールしました。

          ドキュメントはこちら


H15.04.21〜04.24 PC-9821Ne&拡張ユニットの構成でルータを作成しました。

          ドキュメントはこちら・・・・・思ったより快調です。作ってよかった〜!


戻る

サイトトップへ