【1.1】ご注意
ここではFreeBSDを使いネットワークサーバを構築してインターネット専用線に接続する具体的な手順を紹介します。この手順は著者個人がいろんな文献やWebページを参考に確認しながら実際に作業したときの手順を忠実に再現したものではありますが、残念ながら著者は神様ではなく、間違いがないことや完全に動作することを保証するものではありません。追試されるときはYour Own Riskでお願いします。ただし、間違いがあれば訂正したいと思いますので、おかしな点に気づいた方はsupport@kakihana.comまでメールいただければ幸いです。
このページを読んでインターネットサーバをインストールしようとする人は、インストールに必要なネットワークや、FreeBSDの操作に必要なコマンド、viなど基本的なソフトウエアの操作には十分な知識を持っているものとします。これらに関しては特に解説していませんので、必要に応じて他のWebページや書籍などで学習してください。
【1.2】ソフトウエアとバージョン
使用したソフトウエアとそのバージョンは次の表のとおりです。なお『最新版』とは1998年1月9日現在で著者が知りうる範囲での最新版です。また『FTPでGet』とあるものは、すでにインターネットにつながった他のPCでダウンロードしてください。
なお、ここではインターネットサーバに限った使い方をしますので、X Windowやマウス、サウンド機能等には言及しません。
| 種類 | 名称/バージョン | 解説 |
| OS | FreeBSD 2.2.8-RELEASE | Walnut Creek CDROMのCD-ROM(4枚組)(実売\3,480)を使用。 最新版の3.0-RELEASEはまだ不安定。 |
| DNS Server | BIND-4.9.7 | 最新版がFreeBSDに付属。 |
| SMTP Server | sendmail-8.9.2 | 最新版をFTPでGet。 |
| sendmail設定用 | CF-3.7Wpl2 | 最新版をFTPでGet(もうすぐ次の版が出る)。 |
| POP3 Server | qpopper-2.53 | 最新版をFreeBSDのports-stableからFTPでGet。 |
| Web Server | Apache-1.2.6 | 安定最新版の1.2.6がFreeBSDのpackagesに付属。最新版の1.3.3は評価が固まっていない。 |
【1.3】ハードウエア構成
FreeBSDでサポートされているハードウエアについては日本語ハンドブックにあるサポートされている設定一覧をご覧ください。FreeBSDのインストールを始める前に、PCのハードウエア構成を把握しておかなければなりません。手持ちのパーツがサポートされていない場合、そのパーツの使用はあきらめてサポートされているパーツを新規購入した方がいいでしょう。どうしてもそのパーツを使うことやトラブルを解決すること自体が目的でないのならば、解決に要する時間を考えると結局新規購入の方が安くつくと思います。
今回準備したPCのハードウエア構成は表の『PC例1』のとおりです。特殊な部品は使用せず、サーバとしての性能に関係ないVideoやCD-ROMは安価なものを使っています。UPS以外は『余った部品を集めて1台作った』という感じです。この程度の能力ではアクセスが多いときに処理が遅くならないかという疑問があるかも知れませんが、128KBPS程度の回線ではバンド幅(ネットワークの通信速度)の限界が先で、サーバの能力が低いために外部からのアクセスに支障をきたすことはないようです。
表の『PC例2』は著者が64KBPSの専用線に接続してFreeBSDでインターネットサーバとして1年以上使用しているPCとほぼ同じ構成です。性能、安定性ともに問題なく動作しています。
| パーツ | PC例1 | PC例2 | 備考 |
| MB | ASUS P/I-P55T2P4 (AT) | ASUS P/I-XP6NP5 (ATX) | |
| CPU | Pentium/200MHz | Pentium Pro/200MHz | Intel製が無難 |
| CPU冷却用ファン | 山洋製 | 山洋製 | 信頼できるものを |
| Memory | 32MB | 64MB | 64MBがBetter |
| Video | S3 Trio64 2MB | S3 Trio64V2 2MB | キャラクタモードしか使わない |
| FDD | 3.5inch | 3.5inch | |
| SCSI | − | Adaptec AHA-2940U (PCI) | |
| HD | 1.2GB IDE | 2.1GB×2 SCSI | |
| CD-ROM | 8倍速 ATAPI | 12倍速 SCSI | 必要なのはインストール時のみ |
| LAN | Acer ALN-310 (PCI、DEC 21140) | Intel EtherExpress PRO/100+ (PCI) | |
| Case | Middle Tower (AT) | Middle Tower (ATX) | 電源やファンのしっかりしたものを |
| KB | 106 (AT) | 106 (PS2) | |
| UPS | OMRON BX500II | OMRON BX500II | 転ばぬ先の杖! |
MBやチップセットは何でもOKです。CPUはMMX対応である必要はありませんが、インテル製が無難です。互換CPUはMBや各種カードとの相性問題にやや不安がありますが、新しいバージョンのFreeBSDなら大丈夫でしょう。動作周波数は133MHzや166MHzでも十分使えます。使わなくなった486マシンがあればそれでも何とか使えます。Videoはキャラクタモードしか使わないので最も安価なものでOKです。
HDおよびCD-ROMはSCSI接続の方が信頼性が高いとされていますが、実際にはIDE(ATAPI)で十分です。以前のバージョンのFreeBSDでは、HDをPrimary Master、CD-ROMをPrimary Slaveにつながなければうまく認識されませんでした。新しいバージョンではつなぎ方に依存せず認識されるはずですが、うまくいかない場合はCD-ROMをPrimary SlaveにつないだりSecondary Masterにつないだりして試してみてください。
SCSI接続にする場合はSCSIインターフェースカードを使いますが、ユーザが多くて実績のあるAdaptecのAHA-2940UまたはTekramのDC-390Uがいいでしょう。
HDの容量は1GBもあればとりあえずは十分ですが、ユーザの数や立ち上げるWebのページ数が多ければ増やす必要があります。もちろん後で増設することも可能です。
CD-ROMはインストール時以外にはほとんど使わないので低速のもので十分です。
LANカードはIRQなどの設定に関するトラブルが多いので注意が必要です。
ISAバスの場合はNE2000互換カードという事実上の標準品があります。NE2000互換カードは有名無名の多数のメーカーから発売されていますが、ほとんどの製品で十分な性能を発揮します。ただし、FreeBSDはプラグアンドプレイ(PnP)に完全には対応していないので、PnP機能をOFFにできる製品でなければなりません。FreeBSDをインストールをする前に、PnP機能をOFFにしてスイッチまたはDOSのユーティリティプログラムでIRQおよびI/O portを他のデバイスとコンフリクトがないように設定します。FreeBSDでの標準設定はIRQが10、I/O portが280(16進)です。後のインストール作業を簡単にするためにできるだけ標準設定に合わせてください。標準設定のIRQおよびI/O portが空いていないときはやむを得ず空いている値に設定します。空いているIRQおよびI/O portがわからなければ一度Windows 95/98をインストールしてみてシステムのプロパティで調べるという裏技もあります。カードによっては設定できるIRQおよびI/O portに制限があります。
ISAバスのNE2000互換カードで、FreeBSDの以前のリリースやWindows 95でトラブルなく使えていたものが、FreeBSDの最近のリリースではインストーラが途中でハングアップするという経験をしたことがあります。このような場合には次に述べるような他の製品に交換するほかありません。
PCIバス製品はIRQおよびI/O portが自動的に設定されるのでインストールが楽です。最近は100Base-TX/10Base-T自動切換えのものでも数千円で購入できます。おすすめはIntelのEtherExpress PRO/100+です。DEC 21140チップを使った製品もいいでしょう。
ケースとMBをATにするかATXにするかは好みと予算で決めてください。どちらにしてもケースは電源と換気用ファンのしっかりしたものを選んでください。電源用ファン以外にもうひとつ換気用ファンを取り付けることができるものが安心です。無停電電源(UPS)はサーバの命綱ですからぜひ購入してください。なおサーバとしての用途ではマウスとサウンドカードは不要です。
【1.3】ネットワーク構成
この項目を読んで理解できないところがある人にはインターネットサーバの構築は不可能です。もっと勉強してから再挑戦しましょう。理解できないままにインターネットの接続すると他のネットワークに多大な迷惑をかけることがあるのでご注意ください。
インターネットに接続するにはJPNIC(またはInterNIC)から正式に割り当てを受けたドメインネームとIPアドレスが必要です。正式に割り当てを受けていない場合には専用線にはつなげません。インターネットに接続しないで実験のみを行うときにはプライベートアドレスで行ってください。
ここでのインストールに使うネットワークの構成を下記のように仮定します。実際にはこれらのアドレスはプロバイダから割り当てを受けます。言うまでもありませんが、『mydomain.or.jp』というドメイン名は架空のものです。
| ドメイン名 | :mydomain.or.jp |
| ホスト名 | :ns.mydomain.or.jp |
| ネットワークのアドレス/ネットマスク | :a.b.c.0/28 |
| ルータのアドレス | :a.b.c.1 |
| このホストのアドレス | :a.b.c.2 |
| Windowsクライアントのアドレス | :a.b.c.3 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
このネットワークには何台のホスト(PC)がつなげるでしょうか。ネットマスクが28ビットですから残る4ビットで表されるのは16個のアドレスですが、このうち全ビット0はネットワーク全体を表し、全ビット1はブロードキャストに使われます。さらにルータに1個を割り当てますので、自由に使えるアドレスは16-3=13個です。つまり、NATやバーチャルホストなどの特殊な仕組みを使わないで接続できるホストは13台までということになります。
【2.1】インストールの準備
FreeBSDは安定最新版のFreeBSD 2.2.8-RELEASEを選びました。著者はこれまで、2.1.5-RELEASE、2.2.1-RELEASE、2.2.7-RELEASEでインターネットサーバを運用した経験がありますが、いずれも安定して稼動しています。インターネットサーバとして使うときには、そのPCを構成するハードウエアで安定かつ十分な性能で動作することと、重大なセキュリティ上の欠陥がないことが大切です。
FreeBSDの最新版は3.0-RELEASEですが、3.0系統は新しい機能を開発するための系統で、現在のところインターネットサーバとしての使用には向いていません。
インストールの途中で、このホスト(PC)を接続するネットワークの情報を入力する必要がありますので、再確認しておきます。必要な情報はこのホストの名前とIPアドレス、ルータとDNSサーバのIPアドレス、ネットマスクです。100Base-TX/10Base-T両用のカードを使うときはどちらのメディアを使うのかも確認しておいてください。
ここで裏技をひとつ。新しいHDにFreeBSDをインストールする前に、10MBぐらいの小さな領域を確保し、PC-DOS(MS-DOSまたはWindows 95/98の起動ディスクでもOK)でフォーマットします。全く新しいHDにFreeBSDをインストールすると、インストーラがHDのジオメトリ(内部構造を表す情報)を誤って認識することがありますが、あらかじめDOSをインストールしておくとその情報を読み取ることによって正しく認識できるからです。DOSとFreeBSDのデュアルブートにしておけば、LANカードなどの設定をDOSで行えるというメリットもあります。HD全体をFreeBSDで使いたいときは、FreeBSDをインストールするときにPartition EditorでDOS領域をDeleteすればOKです。
PC-DOSをインストールする手順は次の通りです。
・PC-DOSの起動FDでPCを起動する。
・FDISKでHDに10〜100MBぐらいの小さな基本領域を確保して活動領域とし、再起動する。
・確保した基本領域をシステムフォーマットする。
・DOSの起動に必要なファイルをFDからコピーする(あとでDeleteするなら不要)。
FreeBSDをインストールしようとしているPCがCD-ROMからブートする機能を備えているならば、インストーラFDは不要です。そうでない場合はインストーラFDからPCを起動します。
FreeBSDのインストーラFDが手元にないときは、DOSまたはWindows 95/98の環境でCD-ROMのデータからfdimage.exeを使って作成します。CD-ROMのルートディレクトリにインストーラFDを作るためのバッチファイルmakeflp.batが用意されています。CD-ROM No.1のドライブ名がR:の場合、makeflp.batを使ってインストーラFDを作るには、Windows 95/98ではMS-DOSプロンプトを開いて、次のように入力します。
水色はキーボードから入力する文字、黄色の下向き矢印は[Return]を表します。
A:\>r:↓ R:\>makeflp↓ |
【2.2】 インストールの開始
インストールはLANケーブルをはずした状態で開始します。
インストーラの基本的な操作は、カーソルキーで項目を選択して[Return]で実行します。選んだ項目を[Space]で確定してから[Return]で実行するところもありますので注意してください。もちろん数字や文字を直接入力するところもあります。
CD-ROMからブートできる場合はCD-ROMドライブにCD-ROM No.1を挿入してPCを起動します。そうでない場合はFDDにインストーラFDを、CD-ROMドライブにCD-ROM No.1を挿入してPCを起動します。『Boot: 』と表示されたら[Return]を押すかそのまましばらく待てば『Kernel Configuration Menu』が現れます。
ISAバスのNE2000互換カードを使っていて、IRQおよびI/O portがFreeBSDの標準以外に設定されている場合はここで設定を合わせなければなりませんが、そうでない時は『Skip kernel configuration ...』を選んでConfigurationをパスします。
日本語対応インストーラFDでは、ここでEnglishまたはJapaneseを選ぶことができます。日本語のメニューはありがたいのですが、FreeBSDをマスターするのに避けて通れない英語の用語に慣れるため、ここではEnglishを選択します。英語といっても特に難しい文法は出てきません。
【2.3】 Welcome to FreeBSD!
1.『Welcome to FreeBSD!』と表示されたら、Customを選択します。
2.『Choose Custom Installation Options』のメニューではまずPartitionを選んでPartition Editorに入ります。複数のHDが接続されている場合は『Select Drive(s)』が表示されるので、FreeBSDで使うHDにカーソルを合わせて[Space]を押します。
3.DOS領域は『fat』と表示されていますが、HD全体をFreeBSDで使用したいときはDOS領域『fat』にカーソルを合わせて『D』を押してDeleteし、全体を未使用領域『unused』にします。
4.ディスク最後尾のunusedと表示された未使用領域にカーソルを合わせてCを押し、Value RequiredにはそのままOKを2回押します。Qを押してPartition Editorを抜けます。『Install Boot Manager』では、起動ドライブの場合BootMgr(通常はこちら)を、そうでない場合はNoneを選びます。
複数のHDが接続されている場合は『Select Drive(s)』が表示されるので、他にもFreeBSDで使うHDがあれば同じように設定します。設定が終わったら『Choose Custom Installation Options』に戻ります。
5.次にLabelを選んでLabel Editorに入ります。Aを押して領域を自動的に割り当てます。また、DOSのパーティションにカーソルを合わせてMを押し、Value Requiredに『/dos』と入力してマウントしておけば、FreeBSDからDOSファイルの読み書きができます。2台目以降のHDに手動で領域を割り当てるにはCを押し、Size、Partition type、Mount pointを指定します。すべてのHDの設定が終わったらQで抜けます。
手動で割り当てるときは次の数値を参考にしてください。これは私が雰囲気で決めた値ですが、だいたいこんなものでしょう。ユーザの数が多いときは、/var以下にメール領域が、/usr以下にWebを初めとするホームディレクトリの領域が含まれることに注意して配分してください。SWAP領域は昔はメインメモリの2.5倍にすると効率がよいとされていましたが、十分な容量のメモリを搭載できる場合はメインメモリよりも大きければよいようです。
| メモリ64MB / HD4.3GB | メモリ16MB / HD540MB |
Part Mount Size Newfs ---- ----- ---- ----- wd0s1a / 100MB UFS Y wd0s1b swap 100MB SWAP wd0s1e /var 100MB UFS Y wd0s1f /tmp 100MB UFS Y wd0s1g /usr 3733MB UFS Y |
Part Mount Size Newfs ---- ----- ---- ----- wd0s1a / 64MB UFS Y wd0s1b swap 40MB SWAP wd0s1e /var 64MB UFS Y wd0s1g /usr 314MB UFS Y |
7.次にMediaでCD-ROMを選びます。ここでエラーが出たらCD-ROMが正しく認識されていないので、最初からチェックし直します。FreeBSD 2.2.8-RELEASEのインストーラにはバグがあるらしく、CD-ROMのmount/unmountがうまくいかないことがあるようです。
8.次にCommit→YesでHDのフォーマットとファイルのコピーが実際に行われます。所用時間はインストールレベル、CPUの能力およびCD-ROMの速度によって異なりますが、通常数分で終了します。
【2.4】 FreeBSD Configuration Menu
1.ファイルのコピーが終わると、『Visit the general configuration menu ... ?』にYesと答え、『FreeBSD Configuration Menu』に入ります。
2.Consoleを選んで『System Console Configuration』に入ります。Kyemap→Japanese 106→[Space]→OKで日本語キーボードに設定。Repeat→Fast→[Space]→OKでキーリピートを高速に設定。Saver→Star→[Space]→OKでスクリーンセーバーを星空に設定(好みのものに選択可)。Exitで抜けます。
3.次にTime Zoneを選びます。『Select local or UTC ... ?』にはNoと答え、『Time Zone Selector』に入ります。Asia→Japan→most locations→Yesで時刻をJSTに設定。
4.MediaでCD-ROMを選びます。
5.次にNetworkingを選んで『Network Services Menu』に入ります。Interfacesにカーソルを合わせて[Space]を押します。一番上にLANカードの記号(DEC 21140ならde0、Intel EtherExpress PRO/100+ならfxp0、NE2000互換ならed0)が表示されているので、[Return]を押してネットワークの設定に移ります。各項目間の移動には[Return]または[Tab]を使います。
| 項目 | 設定例 | 解説 |
| Host: | ns.mydomain.or.jp | このホストの名前 |
| Domain: | mydomain.or.jp | このホストが属するドメイン |
| Gateway: | a.b.c.1 | ルータのアドレス |
| Name Server: | a.b.c.2 | DNSサーバ(このホスト)のIPアドレス |
| IP Address: | a.b.c.2 | このホストのIPアドレス |
| Netmask: | 255.255.255.240 | このネットワークのネットマスク |
| Extra options to ifconfig: | (下記参照) | カードによって異なる |
6.次にPackagesで『Package Selection』に入ります。選択するパッケージは次のとおりです。選択するには各パッケージ名にカーソルを合わせて[Space]を押します。
| 分類 | 選択するパッケージ |
| devel | gmake, perl |
| misc | less |
| net | tcp_wrappers |
| shells | tcsh |
| www | apache |
7.Root Passwordでroot(管理者)のパスワードを設定。指示に従ってパスワードを2回入力します。
8.Exit→Exit→Exit Installでインストーラを抜け、FDとCD-ROMを取り出してからYesで再起動します。このタイミングでCD-ROMがロックされていて取り出すことができないときは、再起動の途中ですみやかに取り出します。PCのBIOSによっては再起動の際にCD-ROMからブートしないように設定しなければならないものもあります。
【2.5】 再起動と環境の整備
1.再起動すると以下の例のように表示されるのでFreeBSDに対応する[F1]や[F2]を押して起動します。2回目の起動からは[F1]や[F2]を押さなくてもしばらく待つと自動的にFreeBSDが起動します。
|
|
|
2.login:プロンプトが現れたら、rootのIDとパスワードでログインします。
3.この後、使いやすい環境を作っていくわけですが、テキストベースのエディタだけでは効率が悪いので、まずひとつのアカウントを作り、Windows PCからtelnetやFTPを使って作業を進めます。私はtelnetにフリーソフトのTera Term Proを、FTPに同じくフリーソフトのFFFTPを使用しています。
rootというユーザ名はファイルの削除や命令の実行などに最強の権限を持つ管理者アカウントですが、誤って大切なファイルを消してしまったりしないよう、rootでしかできない作業をするとき以外はrootにならない習慣をつけましょう。そのため自分が普段ログインするアカウントkaihanaをadduserコマンドを使って作成します。
adduserコマンドは対話式ですが『Ok, let's go.』までは一般的な設定に関するもので、最初のdefault shellのみtcshに変更しておきます。『Ok, let's go.』より後は新しく追加するユーザに関する情報を入力します。管理者rootになることができるユーザはグループwheelに属していなければならないので注意してください。
水色はキーボードから入力する文字、黄色の下向き矢印は[Return]を表します。
ns# adduser↓ /etc/adduser.conf: No such file or directory Use option ``-silent'' if you don't want see all warnings & questions. Check /etc/shells Check /etc/master.passwd Check /etc/group Enter your default shell: csh date no sh tcsh [sh]: tcsh↓ Your default shell is: tcsh -> /usr/local/bin/tcsh Enter your default HOME partition: [/home]: ↓ Create /usr/home Create symlink: /home -> /usr/home Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: ↓ Send message from file: /etc/adduser.message no [/etc/adduser.message]: no↓ Do not send message Use passwords (y/n) [y]: ↓ Write your configuration to /etc/adduser.conf? (y/n) [y]: ↓ Ok, let's go. Don't worry about mistakes. I will give you the chance later to correct any inpu |
4.rootのログインシェルをtcshに変更しておきます。入力を間違えるとrootでログインできなくなることもあるので慎重に作業してください。vipwと入力してパスワードファイルの変更作業に入ります。ファイルの一番上の行に『root』で始まる行があるので、その末尾の『/bin/csh』を『/usr/local/bin/tcsh』に変更し、ファイルを保存して終了します。exitでログアウトします。
5.ここでこのPCとWindows 95/98 PCをHUBを介してLANケーブルで接続します。ルータはまだ接続してはいけません。DNSが起動していないので、PC間のアクセスはIPアドレスで行います。telnetやFTPの接続開始時にとても時間がかかることがありますが、これもDNSが起動していないためです。接続開始時だけですのでガマンしましょう。
6.FTPでkakihanaのホームディレクトリに.tcshrcファイルを転送します。ファイルの内容は次のとおりで、もちろんテキストモードで転送します。ちなみにtcshrcとは『tcshのためのrun command』という意味で、tcshの起動時に自動的に実行させるコマンドを並べたバッチファイルのようなものです。先頭についているドットにより、設定のための特殊なファイルであることを表しています。それぞれの設定項目の意味は関連書籍などを参考にして理解してください。
alias h 'history 25'
alias j 'jobs -l'
alias ls 'ls -laF \!* | less'
alias cp 'cp -i'
alias mv 'mv -i'
alias rm 'rm -i'
alias cd 'cd \!*; set prompt = "[$user]$cwd>"'
alias su 'su -l'
alias user 'last -w \!* | tail -r'
setenv EDITOR /usr/bin/vi
setenv EXINIT 'set autoindent'
setenv PAGER less
set path = (~/bin /bin /usr/{bin,games} /usr/local/bin)
if ($?prompt) then
# An interactive shell -- set some stuff up
set filec
set history = 100
set savehist = 100
set ignoreeof = 1
set noclobber
set mail = (/var/mail/$USER)
set mch = `hostname -s`
set prompt = "[$user]$cwd>"
umask 022
endif
|
8.suコマンドでrootになり、rootのホームディレクトリに.tcshrcをコピーします。一度ログアウトして再びログインすると、rootでも.tcshrcが有効になってプロンプトが変わります。
水色はキーボードから入力する文字、黄色の下向き矢印は[Return]を表します。
[kakihana]/home/kakihana>su↓Password:【表示されない】↓ns# cp ~kakihana/.tcshrc ./↓ns# exit↓logout[kakihana]/home/kakihana>su↓Password:【表示されない】↓[root]/root> |
root: kakihana manager: root dumper: root hostmaster: root webmaster: root www: webmaster |
[root]/root>newaliases↓ /etc/aliases: 24 aliases, longest 10 bytes, 255 bytes total |
【今後の予定】
sendmail & CFの設定
Apacheの設定
BINDの設定
TCP Wrappersの設定
(ルータを接続)
qpopperのインストール
ダイヤルアップサーバの構築
1999/01/10 FreeBSD 2.2.8-RELEASEに変更して全面的に書き直し