テキスト -...

36
プロジェクト実習テーマ ネットワークサーバの構築と設定 (第 4 版) 本テキストは http://www.hino,meisei-u.ac.jp/is/iga/lecture/ からダウンロードできる。 明星大学情報学部情報学科コンピュータ科学コース 2011 9 テキスト# 目次 1 OS のインストール 1.1 概要 ………………………………………………………………………… 1. 1.2 FreeBSD …………………………………………………………………… 1 1.3 実験用機器 ………………………………………………………………… 1 1.3.1 使用コンピュータ …………………………………………………… 1 1.3.2 使用 FreeBSD ……………………………………………………… 2 1.4 FreeBSD のインストール …………………………………………………… 2 1.4.1 インストールの準備 ………………………………………………… 2 1.4.2 インストールの開始 ………………………………………………… 2 1.5 FreeBSD の起動 …………………………………………………………… 14 1.6 ユーザアカウント …………………………………………………………… 14 1.6.1 アカウントの種類 …………………………………………………… 14 1.6.2 ユーザアカウントの追加 …………………………………………… 14 1.6.3 アカウントのログアウト ……………………………………………… 16 1.6.4 ユーザアカウントの削除 …………………………………………… 16 1.7 FreeBSD の終了と再起動 ………………………………………………… 16 2 章 サードパーティソフトウェアのインストール 2.1 概要 ………………………………………………………………………… 17 2.2 Packages システムと Ports システム ……………………………………… 17 2.3 X Window System ………………………………………………………… 18 2.4 CD-ROM のマウント ……………………………………………………… 18 2.5 Packages システムによるインストール …………………………………… 19 2.5.1 Packages システムの利用 ………………………………………… 19 2.5.2 ソフトウェアのインストール ………………………………………… 19 2.5.3 パッケージの確認 …………………………………………………… 20 2.6 X Window System の設定 ………………………………………………… 21 2.6.1 環境の調査 ………………………………………………………… 21 2.6.2 X.Org の設定 ……………………………………………………… 21 2.6.3 X Window System の起動 ………………………………………… 25 2.6.4 X Window System の終了 ………………………………………… 25

Upload: others

Post on 11-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

プロジェクト実習テーマ

ネットワークサーバの構築と設定 (第 4 版)

本テキストは http://www.hino,meisei-u.ac.jp/is/iga/lecture/ からダウンロードできる。

明星大学情報学部情報学科コンピュータ科学コース

2011 年 9 月

テキスト#

目次

第 1 章 OS のインストール

1.1 概要 ………………………………………………………………………… 1.

1.2 FreeBSD …………………………………………………………………… 1

1.3 実験用機器 ………………………………………………………………… 1

1.3.1 使用コンピュータ …………………………………………………… 1

1.3.2 使用 FreeBSD ……………………………………………………… 2

1.4 FreeBSD のインストール …………………………………………………… 2

1.4.1 インストールの準備 ………………………………………………… 2

1.4.2 インストールの開始 ………………………………………………… 2

1.5 FreeBSD の起動 …………………………………………………………… 14

1.6 ユーザアカウント …………………………………………………………… 14

1.6.1 アカウントの種類 …………………………………………………… 14

1.6.2 ユーザアカウントの追加 …………………………………………… 14

1.6.3 アカウントのログアウト ……………………………………………… 16

1.6.4 ユーザアカウントの削除 …………………………………………… 16

1.7 FreeBSD の終了と再起動 ………………………………………………… 16

第 2 章 サードパーティソフトウェアのインストール

2.1 概要 ………………………………………………………………………… 17

2.2 Packages システムと Ports システム ……………………………………… 17

2.3 X Window System ………………………………………………………… 18

2.4 CD-ROM のマウント ……………………………………………………… 18

2.5 Packages システムによるインストール …………………………………… 19

2.5.1 Packages システムの利用 ………………………………………… 19

2.5.2 ソフトウェアのインストール ………………………………………… 19

2.5.3 パッケージの確認 …………………………………………………… 20

2.6 X Window System の設定 ………………………………………………… 21

2.6.1 環境の調査 ………………………………………………………… 21

2.6.2 X.Org の設定 ……………………………………………………… 21

2.6.3 X Window System の起動 ………………………………………… 25

2.6.4 X Window System の終了 ………………………………………… 25

Page 2: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

第3章 ネットワークの設定

3.1 概要 ………………………………………………………………………… 26

3.2 IP アドレスとネットマスク …………………………………………………… 26

3.2.1 IP アドレス …………………………………………………………… 26

3.2.2 ネットマスクとネットワークアドレス ………………………………… 26

3.2.3 アドレスクラス ……………………………………………………… 27

3.3 Ethernet …………………………………………………………………… 27

3.4 ネットワークへの接続 ……………………………………………………… 28

3.4.1 ネットワーク接続の準備 …………………………………………… 28

3.4.2 ネットワーク接続の設定 …………………………………………… 28

3.4.3 インターネット接続の確認 …………………………………………… 30

3.4.4 起動時のネットワーク設定 ………………………………………… 30

第 4 章 FreeBSD の日本語環境

4.1 概要 ………………………………………………………………………… 31

4.2 FreeWnn …………………………………………………………………… 31

4.3 Tamago ……………………………………………………………………… 31

4.4 Kinput2 ……………………………………………………………………… 31

4.5 Ports システムの利用 ……………………………………………………… 32

4.5.1 Ports システム ……………………………………………………… 32

4.5.2 日本語入力システムのインストール ……………………………… 33

4.6 日本語環境の設定 ………………………………………………………… 34

4.6.1 日本語入力システムの起動 ………………………………………… 34

4.6.2 日本語入力環境の設定 …………………………………………… 35

4.6.3 日本語入力システムの自動起動と設定 …………………………… 36

第 5 章 DNS の設定

5.1 概要 ………………………………………………………………………… 37

5.2 DNS ………………………………………………………………………… 37

5.2.1 DNS サーバ ………………………………………………………… 37

5.2.2 正引きと逆引き ……………………………………………………… 37

5.2.3 DNS の仕組み ……………………………………………………… 37

5.3 BIND ………………………………………………………………………… 38

5.4 BIND の設定 ……………………………………………………………… 38

5.4.1 認証システムの設定 ……………………………………………… 38

5.4.2 BIND 設定ファイル ………………………………………………… 39

5.5 BIND の起動 ……………………………………………………………… 44

5.5.1 named の起動 …………………………………………………… 44

5.5.2 DNS サーバの設定 ………………………………………………… 45

5.5.3 DNS の動作確認 …………………………………………………… 45

第6章 Web サーバの導入

6.1 概要 ………………………………………………………………………… 46

6.2 Web サーバ ………………………………………………………………… 46

6.3 TCP ………………………………………………………………………… 46

6.4 Apache ……………………………………………………………………… 46

6.5 バーチャルホスト …………………………………………………………… 47

6.6 Apache の導入 …………………………………………………………… 47

6.6.1 Apache のインストー ル …………………………………………… 47

6.6.2 httpd.conf の設定 ………………………………………………… 47

6.6.3 Apache の起動 …………………………………………………… 48

6.6.4 Apache の動作確認 ……………………………………………… 48

6.6.5 バーチャルホストの導入 …………………………………………… 49

第 7 章 メールサーバの導入

7.1 概要 ………………………………………………………………………… 51

7.2 メールサーバ ……………………………………………………………… 51

7.3 qmail ……………………………………………………………………… 51

7.4 tcpserver …………………………………………………………………… 51

7.5 checkpassword …………………………………………………………… 52

7.6 qmail の導入 ……………………………………………………………… 52

7.6.1 プログラムのインストール ………………………………………… 52

7.6.2 DNS の設定 ………………………………………………………… 53

7.6.3 設定ファイルの作成 ………………………………………………… 53

7.6.4 Maildir の作成 ……………………………………………………… 55

7.6.5 メール用アカウントの作成 ………………………………………… 56

7.6.6 不正中継に対する設定 …………………………………………… 56

7.6.7 起動スクリプトの作成 ……………………………………………… 57

7.7 sendmail の廃止 …………………………………………………………… 59

7.8 qmail の起動と終了 ………………………………………………………… 59

7.9 qmail の動作確認 ………………………………………………………… 60

7.9.1 smtp の動作確認 …………………………………………………… 60

Page 3: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

7.9.2 pop3 の動作確認 …………………………………………………… 61

7.9.3 外部クライアントからの動作確認 …………………………………… 61

第 8 章 プリンタの設定

8.1 概要 ………………………………………………………………………… 62

8.2 UNIX における印刷の仕組み ……………………………………………… 62

8.3 FreeBSD の印刷システム ………………………………………………… 62

8.4 プリンタの設定 ……………………………………………………………… 62

8.4.1 printcap の設定 …………………………………………………… 62

8.4.2 プリンタデーモンの起動 …………………………………………… 63

8.4.3 PostScript 形式への変換 ………………………………………… 64

8.4.4 ファイルの印刷 ……………………………………………………… 64

マシン名・ドメイン・IP アドレス一覧

マシン名 ドメイン名 IP アドレス

srv0 labnet0.cslab.is.meisei-u.ac.jp 160.194.176.153

srv1 labnet1.cslab.is.meisei-u.ac.jp 160.194.176.154

srv2 labnet2.cslab.is.meisei-u.ac.jp 160.194.176.155

srv3 labnet3.cslab.is.meisei-u.ac.jp 160.194.176.156

srv4 labnet4.cslab.is.meisei-u.ac.jp 160.194.176.157

srv5 labnet5.cslab.is.meisei-u.ac.jp 160.194.176.158

srv6 labnet6.cslab.is.meisei-u.ac.jp 160.194.176.159

srv7 labnet7.cslab.is.meisei-u.ac.jp 160.194.176.160

srv8 labnet8.cslab.is.meisei-u.ac.jp 160.194.176.161

srv9 labnet9.cslab.is.meisei-u.ac.jp 160.194.176.162

【共通設定】

サブネットマスク 255.255.252.0

デフォルトゲートウェイ 160.194.176.1

初期 DNS 160.194.176.48

Page 4: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 1 -

第 1 章 OS のインストール

1.1 概要

コンピュータを利用し、様々なシステムの管理と運用を行っていくためには、オペレー

ティングシステム(OS)が必要となる。本実験では、 初に UNIX 互換の OS である FreeBSD

のインストールを行う。

1.2 FreeBSD

FreeBSD は、カリフォルニア大学バークレー校で開発された BSD UNIX と呼ばれる系列

の OS である。そのソースコードは無料で公開されており、世界中の人々の間で開発が行わ

れている。OS そのものも無料で使用でき、安定性にも定評があるため、様々な場所でサー

バ用途などに広く利用されている。ただし、同じ UNIX 互換の Linux などと比べ、インスト

ールやその後の環境設定に手間がかかり、はじめてインストールする際には多くの時間を

費やしてしまいがちである。しかし、その分自由度も高く、拡張性のある OS となっている。

FreeBSD についての情報は、主に次の URL から入手することができる。

http://www.jp.freebsd.org/

または

http://www.freebsd.org/ja/

1.3 実験用機器

本実験ではノート PC を使用してインストールを行うが、インストール先は内蔵のハード

ディスクではなく、USB 接続のハードディスクを用いる。

1.3.1 使用コンピュータ

使用するコンピュータの主な仕様を表 1.1 に示す。

表 1.1 実験用コンピュータの主な仕様

CPU インテル® Celeron® M プロセッサ 430 1.73GHz

チップセット ATI Radeon® Xpress 200M チップセット

メインメモリ 512MB

ビデオコントローラ チップセット内蔵

液晶表示( 大解像度) 1024×768(約 1,677 万色)

ネットワーク機能 100Base-TX/10Base-T

- 2 -

1.3.2 使用 FreeBSD

本実験でインストールを行う FreeBSD は 2007 年 1 月にリリースされた FreeBSD6.2 で

ある。インストールは CD-ROM を用いて行う。CD は 2 枚用意されているが、Disc2 はパ

ッケージ専用の CD となっている。FreeBSD のインストールは Disc1 から行う。

1.4 FreeBSD のインストール

1.4.1 インストールの準備

(1) コンピュータの仕様調査

FreeBSD をインストールするにあたって、まずはインストールするコンピュータの仕様

を調査する必要がある。本実験で気を使う必要はないが、一般にはコンピュータの構成、

とくに IRQ や I/O ポートの情報は記録をとっておくべきである。

(2) BIOS の設定

多くの PC は CD-ROM から優先的にブートするようになっているが、中にはハードディ

スクからのブートが優先の設定になっていることもある。CD-ROM からインストールを行

う場合は、BIOS の設定中、ブートデバイス項目で CD-ROM の優先順位を上げておく必要

がある。

BIOS 画面へ移るには、コンピュータの起動画面で<F2>キーや<Delete>キーなど、コン

ピュータごとに設定されたキーを押す。また、BIOS の設定を変更しなくても、ブートデバ

イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使

用するノート PC では、起動画面で<Esc>キーを押すことによって、ブートデバイス選択画

面に移行することができる。

1.4.2 インストールの開始

FreeBSD のインストールは次の手順で行う。

(1) ブート

1. PC を起動し、起動画面で<Esc>キーを押してブートデバイス選択画面に移行する。

2. USB の差込口に、USB ハードディスクの USB コネクタを接続する。

3. インストール用 CD(Disc1)を CD ドライブに挿入し、ブートデバイス選択画面から

CD-ROM を選択する。

4. デバイスの検知がはじまり、インストーラの画面が起動する。

4.の実行中、<ScrollLock>キーを押し、<PageUp>,<PageDown>キーや上下矢印キー(↑

↓)で画面をスクロールすることにより、デバイスの検知画面を確認することができる。

この検知画面で USB-HDD がどのデバイスとして認識されているかを確認する。本実験で

は da0 として認識されていれば正常である。

Page 5: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 3 -

図 1.1 デバイスの検知画面

(2) Sysinstall

Sysinstall は FreeBSD が提供しているインストール用のアプリケーションである。イン

ストールはこのインストーラの画面に沿って進めていく。Sysinstall を 初から開始したり、

終了して再起動したりする場合には<Ctrl> + <Alt> + <Delete>を押す。

1. キーマップの選択で、”110 Japan” → “Japanese106” を選択する(<Enter>キー)。

ここで選択したキーマップは Sysinstall だけで有効である。

図 1.2 キーマップの選択画面(1)

- 4 -

図 1.3 キーマップの選択画面(2)

2. メインメニュー画面で ”Standard” が強調表示されている状態で、 [ Select ] が選択

されていることを確認して<Enter>キーを押す。

図 1.4 Sysinstall のメインメニュー画面

3. 図 1.5 に示すメッセージを確認したら、次に FDISK パーティションエディタで

FreeBSD が使用するハードディスクの領域を設定する。まず、インストールするデ

Page 6: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 5 -

バイスを選択する画面が表示されるので,図 1.6 に示すように下矢印キーで da0 を

選択する。da0 は USB 接続のハードディスクに対応し、ad0 は内蔵のハードディス

クに対応する。da0 を選択したら(da0 の行が青色反転したら)、<Enter>キーを押す。

【重要な注意】 もし,誤って ad0 を選択してしまい,そのままインストールしてしまうと,

内蔵ハードディスクに FreeBSD がインストールされ、あらかじめインストールされている

WindowsXP が消去されてしまうので、十分確認してこの操作を行うこと。

図 1.5 FDISK に移行する確認画面

図 1.6 インストールデバイスの選択画面(1)

- 6 -

FDISK パーティションエディタが起動するので、パーティションの設定を行う。こ

のとき、既に使用されている領域があれば、<D>キーを押して、その領域を削除し、

図 1.7 の画面の状態にする。次に、<A>キーを押して、すべての領域を FreeBSD で

使用する指定を行う。図 1.8 のように領域が確保できたことを確認してから<Q>キー

を押してパーティションエディタを終了する。

図 1.7 FDISK パーティションエディタ画面(1)

図 1.8 FDISK パーティションエディタ画面(2)

Page 7: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 7 -

FDISK パーティションエディタを終了すると、ブートマネージャの設定画面に移る。

本実験では、ブートマネージャは必要ないため、カーソルキーで Standard が強調さ

れている状態にし、[OK] を選択し<Enter>キーを押す。

図 1.9 ブートマネージャの設定画面

すると、再びインストールするデバイスの選択画面が表示される。ここでは USB ハ

ードディスクに対応するデバイスだけが [X] となっていることを確認し、<Tab>キ

ーを押して、[OK] を選択した状態で<Enter>キーを押す。

図 1.10 インストールデバイスの選択画面(2)

- 8 -

4. インストールするデバイスの領域を設定したら、次にその領域をさらに細かく区切る

ため、ディスクラベルエディタの画面に移行する。この領域を細かくする作業を、「パ

ーティションを切る」という。パーティションをどのように切るかは想定する構成

によって異なるが、一般的な UNIX システムを考えた場合、次のようにパーティショ

ンを切る。

/ (ルート)

全てのファイルシステム(ディレクトリ)はルートパーティションと呼ばれるこ

のファイルシステムにマウントされる。現在は 128MB もあれば十分だが、将来に

渡って十分であるとは言い切れない。

swap

スワップパーティションと呼ばれるこの領域は、物理的な「実メモリ」に対して

「仮想メモリ」と呼ばれる。プロセスが必要とするメモリの合計が物理メモリの

容量を超えてしまうとき、その内容が一時的に HDD 内のこの仮想メモリ領域に退

避される。スワップ領域は実メモリの 2 倍程度の容量を採ることが目安とされて

いるが、 近では大量の物理メモリを実装しているコンピュータも多いため、実

メモリの容量によっては 1 倍程度のスワップ領域でも問題なく動作する。

/var

システムのログファイルや管理用ファイルなどがこのディレクトリに格納される。

ネットワークサーバとして運用した場合、時間に比例してログなどが増加してい

くため、多めに確保しておいた方がよい。

/usr

OS の起動や保守などに必要なファイル以外はこのディレクトリに格納される。イ

ンストールしようとするソフトウェアによっては多くの容量を必要とするため、

上記 /(ルート)や swap、/var で使用する以外の残りの領域は /usr に割り当てる

ことが多い。

これらのパーティションの他にも、用途や考え方によっては /usr/local,/var/mail,

/home などのファイルシステムのためにパーティションを切ることがある。ただし、

スライス(領域)一つにつきパーティションは「a」~「h」の 8 個までとなっている。

そのうち「a」~「d」または「a」~「c」はルートや swap などに割り当てられる

ため、実質的に設定できるパーティションは 4~5 個までである。

本実験では <A> キーを押すことで、自動的にパーティションを切る機能を利用す

る。自動的に設定されるファイルシステムは上記のパーティションに加え、一時的

な作業用のディレクトリとして利用される /tmp を加えた五つのパーティションに

なっているはずである。設定が完了したら<Q>キーを押し、ディスクラベルエディタ

を終了する。

Page 8: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 9 -

図 1.11 ディスクラベルエディタ画面(1)

図 1.12 ディスクラベルエディタ画面(2)

5. パーティションの設定が終わると、次は配布セットの選択に移行する。これには大き

く分けて、出来合いのいくつかの配布セットを選択してインストールをする方法と、

配布ファイルの一つ一つを手動で選択してインストールする方法がある。

本実験では、配布セット選択画面の下部(スクロールして出てくる部分)にある ”B

- 10 -

Custom” を選択し、インストールする配布ファイルを選択する。選択するファイル

は次の通りである。

base(必須) kernels(必須) → GENERIC を選択 doc

man src → base, sys を選択 ports

各々が [X] となっていることを確認して ”X Exit” を選択し<Enter>キーを押す。

配布セットの選択画面に戻ったらもう一度 ”X Exit” を選択し、<Enter>キーを押す。

図 1.13 配布セットの選択画面(1)

図 1.14 配布セットの選択画面(2)

Page 9: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 11 -

図 1.15 配布ファイルの選択画面

5. 配布セットの選択が終了すると、インストールメディアの選択画面に移行する。本実

験では CD‐ROM からインストールを行うので、”1 CD/DVD” を選択して<Enter>

キーを押す。すると確認画面が表示されるので、インストールを行うのであれば

[OK] を選択して<Enter>キーを押す。 [NO]を選択すると、インストール領域の確保

を含めてインストールは行われず、メインメニューに戻る。正常にインストールが

終了すると、そのメッセージが表示されるので、<Enter>キーを押せばインストール

は完了する。

図 1.16 インストールメディアの選択画面

- 12 -

図 1.17 インストールの実行確認画面

図 1.18 インストールの正常完了画面

(3) インストール後の初期設定

インストールが完了すると、続いてインストールの初期設定を行う画面に移行する。設

定は次の順序で行っていく。

Page 10: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 13 -

① ネットワークインタフェースの設定

※本実験ではこの時点でネットワークインタフェースの設定は行わない。

② ネットワークゲートウェイの設定

※本実験で使用するマシンはデフォルトゲートウェイとして利用しない。

③ inetd の設定

※本実験では inetd は使用しない。

④ SSH ログインの設定

※本実験では SSH ログインは有効にしない。

⑤ 匿名 FTP アクセスの設定

※本実験では特定の FTP アクセスは許可しない。

⑥ NFS サーバの設定

※本実験で使用するマシンは NFS サーバとして使用しない。

⑦ NFS クライアントの設定

※本実験で使用するマシンは NFS クライアントとして使用しない。

⑧ コンソールの設定

※本実験ではキーマップの設定だけを行う。設定画面から、"3 Keymap" を選択した後、

"Japanese 106 Japanese 106 keymap" を選択する。設定が終了したら ”X Exit” を

選択し、<Enter>キーを押す。

⑨ タイムゾーンの設定

※[YES] を選択し、次の画面の「CMOS ロックが UTC(協定世界時刻)で設定されている

か」と聞かれている画面では [NO] を選択する。その後の画面では ”5 Asia” を選択し、

地域から ”18 Japan” を選択する。「JST は適当であるか」と言う画面が表示されるの

で、 [YES] を選択し、<Enter>キーを押す。

⑩ Linux バイナリ互換性の設定

※本実験では Linux 互換のバイナリは必要としない。

⑪ マウスの設定

※本実験は USB マウスを使用するので [NO] を選択する。

⑫ パッケージのインストール

※本実験はこの時点でパッケージのインストールは行わない。

⑬ 初期アカウントの設定

※本実験ではこの時点でアカウントは作成しない

⑭ システム管理者のパスワードの設定

※root アカウントのパスワードを設定する。ここでは共通に cs110 としておくこと。

以上の設定を終えると設定メニューに戻るかどうかの選択画面が表示される。問題が

なければ [NO] を選択する。するとメインメニュー画面に戻るので、[X Exit Install] にカ

ーソルを合わせて<Enter>キーを押し、Sysinstall を終了する。

- 14 -

1.5 FreeBSD の起動

コンピュータがリブートしたら、起動画面で<Esc>キーを押し、ブートデバイスの選択画

面を表示する。その中に USB-HDD があればそれを選択し、なければ<Ctrl> + <Alt> +

<Delete>で再び再起動し、もう一度ブートデバイス選択画面を確認する。正常に起動した

ら、root でログインし、df(display free disk space)コマンドを実行して各パーティション

の設定を確認する。(#はプロンプト)

# df -h

df コマンドはディスクの使用状況を調べるコマンドで、「デバイスファイル名」、「領域サイ

ズ」、「使用量」、「残り量」、「使用率」、「マウント位置」の一覧が表示される。各自、上記

df コマンドの実行し、設定されている各パーティションの使用状況を記録せよ。

1.6 ユーザアカウント

1.6.1 アカウントの種類

アカウントには、スーパーユーザアカウント、システムアカウント、ユーザアカウント

と呼ばれる三つの種類がある。スーパーユーザアカウントは一般的には rootのことである。

また、システムアカウントはメールや web サーバなどのサービスに使用されるアカウント

で、ユーザアカウントはそれ以外のユーザ向けのアカウントとなっている。常時 root で作

業をすることはセキュリティ上好ましくないため、ユーザが一人であっても、root 以外にシ

ステム管理用のユーザアカウントを用意し、ユーザアカウントで作業を行うのが一般的で

ある。その場合、当該ユーザの所属グループは wheel に設定する。

1.6.2 ユーザアカウントの追加

ユーザアカウントを新規に追加するには、sysinstall を利用する、コマンドを利用するな

どいくつか方法がある。ここでは root 権限で次のコマンドを実行することにより、対話的

にアカウントの追加を行う方法をとる。

# adduser

表 1.2 に示すユーザアカウントを作成する場合の実行過程を次に示す。なお、二重下線は

入力値である。

表 1.2 作成するユーザアカウント

ユーザ名 testuser1 シェル csh

UID 1001 ホームディレクトリ /home/testuser1

グループ wheel,operator

ログインクラス default

パスワード 28-818

Page 11: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 15 -

上で、[ ] 内はデフォルトの値である。

所属グループを "wheel" としたユーザは次のコマンドを実行し、パスワードを入力するこ

とでスーパーユーザになることができる。(%はプロンプト)

% su

#adduser

Username: testuser1

Full name:

Uid (Leave empty for default): 1001

Login group [testuser1]: wheel #ユーザの所属グループ

Login group is wheel. Invite testuser1 into other groups? []: operator

Login class [default]:

Shell (sh csh tcsh nologin) [sh]: csh

Home directory [/home/testuser1]:

Use password-based authentication? [yes]:

Use an empty password? (yes/no) [no]:

Use a random password? (yes/no) [no]:

Enter password: 28-818 #パスワードの入力(入力値は表示されない)

Enter password again: 28-818 #パスワードの再入力

Lock out the account after creation? [no]:

OK? (yes/no): yes

adduser: INFO: Successfully added (testuser1) to the user database.

Add another user? (yes/no): no

Username : testuser1

Password : *****

Full Name :

Uid : 1001

Class :

Groups : wheel operator

Home : /home/testuser1

Shell : /bin/csh

Locked : no

システムの応答

- 16 -

1.6.3 アカウントのログアウト

ログイン中のユーザがログアウトを行うには、次のコマンドを実行する。

% logout

または

% exit

1.6.4 ユーザアカウントの削除

ユーザアカウントの削除には rmuserコマンドを利用することが推奨されている。これは、

対話的にアカウントの削除を行うことができるコマンドである。ホームディレクトリを削

除するか、残しておくかなどを選択することができる。

# rmuser ユーザ名

1.7 FreeBSD の終了と再起動

FreeBSD の終了には root か "operator" グループに所属しているユーザでログインし、

次のコマンドを実行する。

# shutdown –p now

これは、システムを停止し、自動的にマシンの電源を切るコマンドである。”now” は即

時に実行させるオプションであるが、この部分を ”+数字” や “yymmddhhmm” の形にする

と、停止する時間を指定することができる。

また、即時に再起動を行うには次のコマンドを実行する。

# shutdown -r now

Page 12: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 17 -

第 2 章 サードパーティソフトウェアのインストール

2.1 概要

サードパーティソフトウェアとは、OS の開発に携わっている以外の会社や組織が、作業

の効率化や容易化を目的として開発したソフトウェアのことである。

FreeBSD において、サードパーティソフトウェアをインストールするには Packages を

利用する方法と Ports を利用する方法が多く用いられる。

Packages は、すでにコンパイルされた状態でインターネットなどを利用して入手するこ

とができ、短時間に容易にインストールすることができる。

一方,Ports を利用する方法は、FreeBSD 上でコンパイルをしなくてはならず、その手順

を理解する必要がある。しかし、コンパイルする際に機能を追加したり、 大限の機能を

発揮できるようにオプションを付けたりすることも可能である。本実験では Packages シス

テムを利用して、グラフィカルユーザインタフェース(GUI)を提供する X Window

System(X.Org)と、Emacs、そして web ブラウザである Firefox をインストールする。

2.2 Packages システムと Ports システム

本来、サードパーティソフトウェアをインストールするにはソースコードをインターネ

ットなどから入手し、コンパイルを行う必要がある。そのためには依存するソフトウェア

の調査やコンパイルの知識が必要となってくる。その手間を省くため、多くの UNIX システ

ムにはコンパイル済みのバイナリをパッケージとした配布セットが用意されている。

FreeBSD では、このパッケージのことを「Packages システム」と呼んでいる。Packages

システムでは、コンパイル済みのバイナリや設定ファイルなどを含んだパッケージをイン

ターネットや CD-ROM から入手し、コマンドを実行することでインストールすることがで

きる。インストールするソフトウェアが依存しているパッケージがマシン上にインストー

ルされてなく、かつそのパッケージを見つけることができた場合には、それらも自動的に

インストールする。依存しているパッケージが見つからなかった場合は、通常はエラーと

なるが、エラーを無視してインストールすることもできるようになっている。

一方、Ports システムは、あらかじめコンパイルされたプログラムを含んでいるのではな

く、ソースコードの入手から FreeBSD 用のパッチ適用、そしてコンパイルまでを自動的に

実行させるインストール情報(インストール手順)をまとめたものである。この Ports シス

テムもまた、依存しているソフトウェアやライブラリなどがあった場合、それらを自動的

にインストールする。ライセンス上の制約によりパッケージ化できないソフトウェアなど

は、Port システムを利用してインストールを行うのが一般的である。また、Packages シス

テムではパッケージ化されたソフトウェアのバージョンが古くなるなどの問題点があるが、

Ports システムでは Ports ツリー(ports システムの設定ファイル群)を更新することで、常に

新のものをインストールすることができる。

- 18 -

2.3 X Window System

X Window System は、UNIX では一般的なグラフィカルユーザインタフェース環境であ

る。このウィンドウシステムは、キーボードやマウスといった入力デバイスからのイベン

トを処理する「X サーバ」と、kterm や Firefox のような GUI アプリケーションである「X クラ

イアント」から成り立っていることが特徴である。

X クライアントは X サーバに、「この座標にウィンドウを表示せよ」などという命令を送

り、X サーバはクライアントにユーザが行った操作を知らせている。その双方向の通信が行

われることで、GUI アプリケーションに操作した通りの動作をさせることができる。この

通信は同一のコンピュータ上である必要はなく、ネットワーク経由で行うことも可能であ

る。例えば、あるコンピュータで実行した Firefox の結果を、X サーバが動作している別の

コンピュータで表示することができる。

少し以前まではX Window SystemとしてXFree86というフリーソフトウェアが広く使用

されてきた。しかし現在では、ライセンス形態への変更に伴い、離脱した XFree86 の開発

メンバーを主として開発された X.Org に移行しつつある。

2.4 CD-ROM のマウント

「マウント(mount)」とは、あるディレクトリに CD-ROM などのような外部記憶デバイ

ス(一般にはファイルシステム)を結びつける操作のことをいう。Windows では外部記憶

デバイスをドライブレターという 1 文字(A,B,C,…)を使って識別しているが、UNIX では

そのような方法は採らず、マウント操作によって全体を一つのファイルシステムに見立て

る方法を採っている。例えば、UNIX 上で CD-ROM を使用する場合には、CD-ROM デバイ

ス(FreeBSD では通常、/dev/acd0 として認識される)を /cdrom というディレクトリにマ

ウントさせる。一度マウントを行えば、マウントを解除するまで(umount コマンドによる)

通常のファイルと同様にアクセスすることができる。

本実験では Packages のインストールは CD-ROM から行う。そのため、上述のように

CD-ROMデバイスをマウントしなければならない。CD-ROMデバイスをマウントするには、

次のコマンドを CD-ROM 挿入後に実行する。(なお、具体的なインストール手順は 2.5.2 以

降で説明するので,ここで以下の mount コマンド,unmount コマンドを実行する必要はな

い。)

# mount_cd9660 /dev/acd0 /cdrom

または

# mount -t cd9660 /dev/acd0 /cdrom

/cdrom は初期から作成されているディレクトリであり、マウントを行うとこのディレク

トリに CD-ROM の内容がつながる。”acd0” は CD-ROM デバイスに対応するデバイスファ

イルであり、他のデバイスをマウントするには、”acd0” と ”cd9660” の部分を適切に変更

しなければならない。

Page 13: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 19 -

マウントしたデバイスを開放するには、/cdrom より上位のディレクトリで(cd コマンド

で、例えばホームディレクトリに戻ってから)、次のコマンドを実行する。

# umount /cdrom

2.5 Packages システムによるインストール

2.5.1 Packages システムの利用

Packages システムに関連するコマンドはいくつかあるが、次の三つのものが基本的なユ

ーティリティコマンドである。

(1)パッケージのインストール

Packages システムによるパッケージのインストールは次のコマンドを実行する。

# pkg_add パッケージファイル名

ここで、次のオプションを加えることで、インストールの状況を表示することができる。

# pkg_add -v パッケージファイル名

(2)パッケージの一覧表示

インストール済みのパッケージの一覧を表示するには次のコマンドを実行する。

# pkg_info

ここで、インストールされているパッケージの数が多く、一画面に表示しきれない場合

は次のようにパイプラインで less コマンドを実行する。

# pkg_info | less

(4)パッケージの削除

インストールされたパッケージを削除するには次のコマンドを実行する。

# pkg_delete パッケージの正式名称

ここで、”パッケージの正式名称” は pkg_info コマンドで得られる名称である。

- 20 -

2.5.2 ソフトウェアのインストール

(1) X.Org のインストール

X.Org のパッケージは FreeBSD インストール CD である Disc1 に収納されている。

CD-ROM を挿入し、マウントする。

# mount_cd9660 /dev/acd0 /cdrom

マウントが完了したら、次の手順でインストールを行う。

1. まず、パッケージのあるディレクトリに移動する。

# cd /cdrom/packages/x11/

2. 次に、pkg_add コマンドにより、パッケージをインストールする。

# pkg_add -v xorg-6.9.0.tbz

3. 後に、次のようにコマンドをハッシュテーブルに登録する。

# rehash

この操作はコンピュータを再起動することでも行われる。

(2) Emacs のインストール

Emacs のパッケージは FreeBSD パッケージ CD である Disc2 に収納されている。

CD-ROM を挿入し、マウントを行う。

マウントが完了したら (1)と同様の手順でインストールを行う。パッケージは

/packages/editors/以下に格納されており、パッケージの名称は ” emacs-21.3_9.tbz” である。

(3) Firefox のインストール

Firefox のパッケージは FreeBSD パッケージ CD である Disc2 に収納されている。

CD-ROM を挿入し、マウントを行う。

マウントが完了したら (1)と同様の手順でインストールを行う。パッケージは

/packages/www/以下に格納されており、パッケージの名称は ”firefox-1.5.0.8,1.tbz” である。

2.5.3 パッケージの確認

パッケージのインストールが終わったら、pkg_info コマンドでどのようなパッケージが

インストールされているか確認する。

# pkg_info

Page 14: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 21 -

2.6 X Window System の設定

2.6.1 環境の調査

X.Org の設定を行うには、サーバとなるマシンの環境の情報が必要である。ただし、本実

験で使用するようなノート PC については、設定に必要な一部の情報について公開されてい

ないこともある。本実験では表 2.1 に基づいて設定を行うことにする。

表 2.1 X.Org の設定に即した実験用ノート PC の情報

水平周波数 31.5~48.5KHz

垂直周波数 50~70Hz

解像度 1024x768

モニタ

色数 16777216 色(24bit)

配列 jp106 キーボード

レイアウト jp

形式 USB

デバイス /dev/sysmouse(/dev/ums0)

マウス

プロトコル Auto

チップセット Radeon Xpress 200M ビデオアダプタ

ドライバ vesa(ati)

多くのノート PC では、水平周波数と垂直周波数は定まっていない。表 2.1 での値はノー

ト PC において一般的に設定するそれぞれの周波数である。

マウスのデバイスは、本来は/dev/ums0 である。しかし、FreeBSD6.2 ではコンソール上

でマウスを動かすことを可能とする moused が初期から起動し、そのデーモンが/dev/ums0

を使用しているため、ここではマウスデバイスとして/dev/sysmouse を使用する。

本実験では、ビデオアダプタのドライバを ”ati” とすると X Window System が正常に動

作しない。これは、インストールした X.Org に含まれている ati のドライバが、本実験で使

用するパソコンのビデオアダプタに対応していないためである。”vesa” というのは汎用的

なドライバであり、大抵はこのドライバを指定すれば X Window System は動作する。

2.6.2 X.Org の設定

(1) 初期設定ファイルの作成

X.Org の設定を行うには、まず初期設定ファイルを作成する必要がある。初期設定ファイ

ルは次のコマンドを実行することで、ホームディレクトリへ自動的に作成される。

# Xorg -configure

- 22 -

作成される初期設定ファイルの名称は xorg.conf.new である。この初期設定ファイルはシ

ステムのハードウェアの検出に基づいた設定がすでに行われており、多くの場合はそのま

まの状態でも X.Org を動作させることができる。しかし、それでは 適なパフォーマンス

で動作させることができず、また動作に不都合が生じる可能性もある。そのため、初期設

定ファイルは必ず見直し、必要があれば設定を修正する必要がある。

(2) 初期設定ファイルの編集

初期設定ファイルを編集するには、初期設定ファイル xorg.conf.new を Emacs で開く。た

だし、この初期設定ファイルはホームディレクトリに作られているので,cd コマンドでホ

ームディレクトリに戻って行う。

# cd

# emacs xorg.conf.new

本実験では表 2.1 に従って設定ファイルの編集を行う。下記は、設定後の xorg.conf.new

の一部である。(二重下線は修正点、#行はコメントである)

#キーボードの設定

Section "InputDevice"

Identifier "Keyboard0"

Driver "kbd"

Option "XkbModel" "jp106"

Option "XkbLayout" "jp"

EndSection

#マウスの設定

Section "InputDevice"

Identifier "Mouse0"

Driver "mouse"

Option "Protocol" "Auto"

Option "Device" "/dev/sysmouse"

Option "ZAxisMapping" "4 5"

#垂直、水平ホイールに対応するボタン番号。

#垂直方向マイナス、プラス、水平方向マイナス、プラスの順に書く。

EndSection

Page 15: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 23 -

#モニタの設定 1

Section "Monitor"

#DisplaySize 300 220 # mm

Identifier "Monitor0"

VendorName "LPL"

ModelName "1151"

HorizSync 31.5-48.5 #水平周波数(KHz)

VertRefresh 50-70 #垂直周波数(Hz)

EndSection

#ビデオアダプタの設定

Section "Device"

Identifier "Card0"

Driver "vesa"

VendorName "ATI Technologies Inc"

BoardName "RC410 [Radeon Xpress 200M]"

BusID "PCI:1:5:0"

EndSection

#モニタの設定 2

Section "Screen"

Identifier "Screen0"

Device "Card0"

Monitor "Monitor0"

DefaultDepth 24

SubSection "Display"

Viewport 0 0

Depth 24

Modes "1024x768"

#Modesに複数設定するとCTRL+ALT+[+-]で解像度の切り替え。

EndSubSection

# "Display"を複数設定するとX起動時のオプションで色数を切り替えることができるが、

# ここではその他のsubsectionは削除しておく。

EndSection

- 24 -

(4) 設定のテスト

設定が終了したらファイルを保存し、Emacs を終了して次のコマンドを実行する。

# Xorg –config xorg.conf.new

この結果、画面が図 2.1 のような、黒と灰色の網目模様と X のカーソルが表示されてい

る画面に切り替われば、X.Org の設定は正常に行われていることになる。この画面からコン

ソール画面に戻るには <Ctrl> + <Alt> + <BackSpace> を押す。

図 2.1 X.Org のテスト画面

(5) 設定ファイルの格納

X.Org のテスト画面が表示できることを確認したら、初期設定ファイルを、設定ファイル

が格納されるべき標準の場所に移動する。この場所は一般的に/etc/X11/xorg.conf あるいは、

/etc/X11R6/etc/X11/xorg.conf である。

# cp xorg.conf.new /etc/X11/xorg.conf

ここでは、名前を変更してコピーを行っている。

Page 16: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 25 -

2.6.3 X Window System の起動

X Window System を起動するには次のコマンドを実行する。

# startx

この結果、図 2.2 のような画面が表示されれば X Window System は正常に起動している

と考えてよい。

図 2.2 X Window System の初期画面

2.6.4 X Window System の終了

X Window System を終了するには、login と表示されたターミナルで次のコマンドを実行

する。

# exit

また、<Ctrl> + <Alt> + <BackSpace>でも X Window System を終了させることができる。

- 26 -

第 3 章 ネットワークの設定

3.1 概要

今日では多くのコンピュータはインターネットに接続されており、世界中から様々な情

報を即時に入手することができるようになっている。また、FreeBSD などの UNIX 互換の

OS は、Web サーバや DNS サーバ、メールサーバなどに利用されることが多い。そのよう

なサーバ目的としてコンピュータを使用する際には、ネットワークへの接続が必須となる。

本実験では、FreeBSD においてネットワークへ接続するための設定を行う。

3.2 IP アドレスとネットマスク

3.2.1 IP アドレス

IP アドレスは、インターネットプロトコル(IP)において利用される通信ホストの識別番号

である。これは、インターネットにおける住所のようなもので、例えば次のように表わさ

れる。

160.194.176.48

この IP アドレスは、コンピュータ内部では 32 ビットの数値として保持されているが、

人間に判りやすいよう、上のように 8 ビットずつピリオドで区切り、それぞれを 10 進で表

わす表記が用いられている。

インターネットにおける通信は IP アドレスを指定することで行われるが、その経路選択

はネットワーク単位で行われる。そのため IP アドレスからホストが接続しているネットワ

ークを識別するために、ネットマスク(サブネットマスク)が使用される。

3.2.2 ネットマスクとネットワークアドレス

ネットマスクは IP アドレスと同じく 32 ビットで表され、IP アドレスとの論理積をとる

ことによってホストの接続しているネットワークのアドレスを取得できるようになってい

る。例えば、3.2.1 の IP アドレスのネットマスクが、"255.255.252.0" であった場合、その

ネットワークアドレスは次のようにして求められる。

IP アドレス 10100000.11000010.10110000.00110000

ネットマスク 11111111.11111111.11111100.00000000

ネットワークアドレス 10100000.11000010.10110000.00000000

すなわち、このホストは "160.194.176" というネットワークに接続されていることにな

る。また、IP アドレスのネットワークアドレス以外の部分は、そのネットワーク内のホス

Page 17: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 27 -

トアドレスであり、上記の場合は "48" となる。また、このネットワークで使用できるホス

トアドレスの範囲は 00.00000000~11.11111111 であることがネットマスクから読み取れる。

ネットワークの設定を行う際には、IP アドレスとネットマスクの情報が必要となり、こ

れらの組を次のように表すこともある。

160.194.176.48/22

上記の例では "160.194.176.48" が IP アドレスであり、22 はネットマスク中の左から並

ぶ "1" のビット数を表している。

3.2.3 アドレスクラス

IP アドレスにはアドレスクラスという分類方法がある。これは、IP アドレスの値によっ

て、ネットワークを "クラス A" ~ "クラス E" の五つに分類したものである。"クラス A" か

ら "クラス C" まではネットワーク内に存在できるホストの数が異なり、それぞれのネット

マスクは "255.0.0.0","255.255.0.0 ","255.255.255.0" のようになっている。"クラス D" や

"クラス E" は特別なアドレスクラスで、通常のネットワークで使用することはない。

昨今ではサブネット化(ネットワークの細分化)が進み、こうした分類はそれほど重要では

なくなってきているが、ネットワークの設計者には重要な概念である。とくに、明星大学

は "クラス B" のアドレスクラスを有しているので、大学内でネットワークを構成するには、

少なくとも "クラス A" から "クラス C" までのアドレスクラスの知識は必要である。

3.3 Ethernet

Ethernet は、1970 年代に米国の Xerox 社を中心に開発されたコンピュータネットワーク

の規格の一つである。現在 LAN として広く普及している Ethernet は、1980 年ごろに米国

の標準化団体である IEEE によって、IEEE802.3 として標準化されたものである。

Ethernet には、ケーブルの媒体の種類やそのネットワークの接続形態などによっていく

つかの規格が策定されている。表 3.1 に挙げるのは、その中の代表的なものである。

表 3.1 Ethernet の主な規格とその仕様

伝送速度 伝送方式 ケーブル 大長

10BASE5 10 Mbps baseband 同軸 500m

10BROAD36 10 Mbps broadband 同軸 3600m

10BASE-T 10 Mbps baseband UTP 100m

100BASE-TX 100 Mbps baseband UTP 100m

100BASE-FX 100 Mbps baseband 光 412m

1000BASE-T 1 Gbps baseband UTP 100m

- 28 -

3.4 ネットワークへの接続

3.4.1 ネットワーク接続の準備

(1) ネットワークインタフェースの調査

ホストをネットワークに接続するには、ネットワークインタフェースが必要となる。利

用可能なネットワークインタフェースを調べるには次のコマンドを実行する。

# ifconfig

これによりいくつかのネットワークインタフェースが検出されるが、lo0 というインタフ

ェースはループバックインタフェースと呼ばれ、自分宛の IP アドレスが割り当てられ、そ

こにパケットを送信した場合には自分で受け取ることになる。

実験用のノート PC ではループバックインタフェースの他に rl0 と fwe0 の二つのインタ

フェースも検出されるが、後者は firewire(IEEE 1394)規格のインタフェースであり、本実験

では rl0 のインタフェースを使用する。

(2) ケーブルの接続

LAN(Ethernet)への接続に使用するケーブルにはいくつかの種類があり、その使用用途や

環境によって適切なものを選択する必要がある。本実験では 100Mbps までの通信を行うこ

とができるカテゴリ 5 の UTP(Unshielded Twist Pair)ケーブルを使用する。

ケーブルの端に着けられているコネクタ(RJ45 コネクタ)を、実験用のノート PC の右側

面にある接続口に差し込む。

3.4.2 ネットワーク接続の設定

(1) IP アドレスの設定

FreeBSD で IP アドレスを設定するには、ifconfig コマンドにネットワークインタフェース名

と設定する IP アドレスとネットマスクを引数として与えて実行する。例えば、使用するインタ

フェースが rl0 で IP アドレスが ”160.194.176.153” (注 1)、ネットマスクが ”255.255.252.0”

である場合、次の形式で ifconfig コマンドを実行する。

# ifconfig rl0 inet 160.194.176.153 netmask 255.255.252.0

上記のコマンドを短縮して、次のようにしても同様の設定が行うことができる。

# ifconfig rl0 160.194.176.153/22 (注 2)

設定を確認するにはもう一度 ifconfig を次のように実行する。

# ifconfig rl0

(注 1) 以下,赤下線部は各自のマシンの IP アドレスまたはドメイン名に置き換えて設定すること。 (注 2) / の後の「22」はサブネットマスクにおける左端から連続する 1 のビット数を意味する。

Page 18: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 29 -

(2) ネットワーク接続の確認

IP アドレスの設定が完了すれば、同じネットワークアドレス(ここでは”160.194.176”)

上のコンピュータと通信を行うことができるはずである。正常にネットワークに接続され

ているか確認を行うために、ping コマンドを実行する。

# ping 160.194.176.1

本実験では上記 ping コマンドを実行して、パケットが返ってくれば正常にネットワーク

に接続されていると考えてよい。ping コマンドの終了は <Ctrl> + <C> で行う。

(3) デフォルトゲートウェイの設定

自分が接続している以外のネットワークへ接続するためにはその経路を指定する必要が

ある。FreeBSD でこの経路を設定するためには route コマンドを使用する。

会社や大学のような組織では、多くの場合、デフォルトゲートウェイとしての機能を有

するコンピュータへの経路だけを指定すれば、インターネットや組織内の全てのホストと

通信を行うことができる。

本実験では route コマンドを用いてデフォルトゲートウェイだけを設定する。デフォルト

ゲートウェイが ”160.194.176.1” である場合、route コマンドを次のように実行する。

# route add 0/0 160.194.176.1

または

# route add default 160.194.176.1

“0/0” の部分はネットワークアドレスを指定することで、そのネットワークへの経路を設

定することができる。

デフォルトゲートウェイの設定を確認するには、次のコマンドを使用する。

# netstat -r

設定済みの経路の削除は、次のように行う。

# route delete 0/0

なお、ipconfig コマンドなどで使用しているネットワークインタフェースの IP アドレス

を変更した場合は、経路の再設定が必要になる。

- 30 -

(4) 初期 DNS サーバの指定

デフォルトゲートウェイの設定までを完了すれば、他のネットワークやインターネット

へ接続することが可能である。しかし、”yahoo.co.jp” のようなドメイン名で通信を行うに

は、DNS(Domain Name System)サーバを指定する必要がある。

DNS サーバの指定は、/etc/resolv.conf というファイル名で Emacs を起動し、次の 1 行

のファイルを新規に作成する。(DNS サーバの IP アドレスを “160.194.176.48” としたとき)

nameserver 160.194.176.48

nameserver は複数指定することができる。その場合には上位に指定された nameserver

が機能していない場合に、下位に指定された nameserver に問い合わせることができる。

3.4.3 インターネット接続の確認

ここまでの全ての設定を確認するために、まず、次のコマンドをそれぞれ実行する。

# ping yahoo.co.jp

上記のコマンドを実行して、パケットが返ってくれば設定は正常に行われている。

次に、X Window System を起動し、Firefox で適当な web ページを開き、表示するこ

とができるか確認する。ただし、この段階ではまだ DNS サーバの設定をしていないので、

X Window の画面が表示されるのに数分かかる場合がある。

# startx

# firefox

3.4.4 起動時のネットワーク設定

3.4.2 節で設定したネットワークインタフェースとデフォルトゲートウェイは、コンピュ

ータを再起動するとリセットされてしまう。コンピュータが起動したときに、それらの設

定が自動的に行われるようにするには、/etc/rc.conf を Emacs で開き、次の 2行を追加する。

(/etc/defaults/rc.conf に設定例の記述がある)

ifconfig_rl0="160.194.176.153/22" ; 「=」記号の周辺にスペースは挿入しない

defaultrouter="160.194.176.1"

コンピュータの再起動を行い、ifconfig コマンド(引数なし)と 3.4.3 節の ping コマンド

で再度ネットワークの接続確認を行い、問題がなければネットワークの設定は完了である。

Page 19: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 31 -

第 4 章 FreeBSD の日本語環境

4.1 概要

公式サイトからダウンロードした CD イメージなどを用いて FreeBSD をインストールし

た場合、初期状態では日本語の入力や正しい表示を行うことができない。

日本語を入力するためには、かな漢字変換クライアントとサーバが必要となる。かな漢

字変換サーバとしては、Wnn や Canna などが有名である。かな漢字変換クライアントは、

ユーザからのかな入力を受け、それらのサーバと通信を行うことで漢字に変換し、アプリ

ケーションに受け渡す役割を担っている。このかな漢字変換クライアントは、アプリケー

ションによって通信方式が異なり、使用するアプリケーションに応じたものが必要となっ

てくる。本実験では X Window System 上の Emacs と Firefox で、日本語を入力するための

ソフトウェアのインストールといくつかの設定を行う。

4.2 FreeWnn

FreeWnn はかな漢字変換サーバの一つである Wnn4.2 をベースとし、フリーで使用でき

るソフトウェアとして開発されたものである。本実験ではこの FreeWnn を使用する。

FreeWnn のベースとなった Wnn は、1987 年にアステックや京都大学などによって共同

開発されたサーバ・クライアント型のかな漢字変換サーバである。日本語以外にも中国語

や韓国語などにも対応しており、多言語入力システムと称されることもある。また、サー

バ・クライアント型であるので、ネットワークを通してこれを利用することができる。

新の Wnn は有料となっているが、FreeWnn は無料で使用することができる。FreeWnn の

他に無料で使用することのできるかな漢字変換サーバとしては、CannaやSKKなどがある。

4.3 Tamago

本実験では Emacs で日本語を入力するためのシステムとして、Tamago を使用する。

かな漢字変換クライアントの一つである Tamago システムは、”たくさん、またせて、ご

めんなさい”(Takusan matasete gomen-nasai) の略で、電子技術総合研究所の戸村哲氏を中

心として開発された。egg とよばれることもある。Emacs はこのシステムを利用すること

で、かな漢字変換サーバと直接通信を行うことができる。

4.4 Kinput2

FreeBSD に限らず、UNIX 系の OS では、X Window System 上で日本語を入力するため

に日本語入力システムが使われる。Kinput2 は X Window System 上で日本語の入力を可能

にするための日本語入力システムである。アプリケーションが kinput2 をかな漢字変換クラ

イアントとして利用する場合には、kinput2 プロトコルを用いて、Kinput2 と通信を行う。

本実験では Firefox のかな漢字変換クライアントとして、Kinput2 のインストールを行い、

設定を行う。

- 32 -

4.5 Ports システムの利用

4.5.1 Ports システム

2.2節でも説明したように、Portsシステムを利用したソフトウェアのインストールでは、

ソースファイルの入手からコンパイルまでを自動で行わせることができる。このソースフ

ァイルの入手先としては、インターネットと CD-ROM がある。インストールに必要な情報

は ”Makefile” に格納されており、これを変更することで、ソースファイルの入手先などを

変更することも可能である。 一般的な Ports システムを利用したソフトウェアのインスト

ール方法は、次の流れで行う。(※ (1)~(3) は一般論である。実際の作業は 4.5.2 から行

うこと。)

(1) ソフトウェアの検索

Ports システムを利用したインストールでは、インストールするソフトウェアの Port であ

るディレクトリに移動する必要がある。ディレクトリがどこにあるかが不明な場合には、

whereis コマンドを用いてソフトウェアの位置を確認する。例えば XXX というソフトウェ

アを検索するのであれば、次のようにコマンドを入力する。

# whereis -a XXX

このコマンドを実行すると、次のようなメッセージが表示される。

XXX: /usr/ports/XXX

(2) Port からのインストール

Port のディレクトリを確認したら、そのディレクトリに移動し、システム管理者権限(root)

で make コマンドを実行する。make は、コンパイル作業を自動的に行うコマンドである。

make clean は不要な作業ファイルを削除し、ディレクトリをソースプログラムだけの状態

にするのコマンドである。

# cd /usr/ports/XXX

# make clean

# make

make コマンド実行後に表示されるメッセージから、正常にコンパイルができていること

を確認し、次のコマンドを実行してインストールを行う。

# make install

# rehash

インストールされたソフトウェアの確認には、Packages と同様に pkg_info コマンドを利

用する。

# pkg_info

Page 20: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 33 -

(3) ソフトウェアのアンインストール

Ports からインストールした場合、Port のディレクトリで、次のコマンドを実行すること

でソフトウェアをアンインストール(削除)することができる。

# make deinstall

ただし、make clean を実行してしまっている場合は、pkg_delete でアンインストールを

行う必要がある。このとき、pkg_delete コマンドの引数には、pkg_info コマンドで確認し

たパッケージ名と同じ名前を指定する。

# pkg_delete XXX

4.5.2 日本語入力システムのインストール

日本語入力システムをインストールするには、3 種類のソフトをインストールしなければ

ならない。それらソフトは本来、FTP サイトからダウンロードしてくればよいのであるが、

ネットワークが混雑しているとダウンロードに時間がかかる場合がある。そこで、本実験

では、CD-ROM からインストールを行うことにする。FreeBSD #3 の CD-ROM 中にある

distfilesディレクトリにあるファイルを /usr/ports/distfiles/ にコピーしてインストールする。

コピーするには CD-ROM をマウントした後、

# cp –r /cdrom/distfiles/ /usr/ports/distfiles/

とする。

(1) FreeWnn のインストール

4.5.1 節のインストール方法にならい、FreeWnn を Ports からインストールする。

# cd /usr/ports/japanese/FreeWnn-server/

# make clean

# make

# make install

インストールの途中で,Wnn のアカウントを作成するかどうかのメッセージが表示される

が,<Enter>キーを押してインストールを続行させる。

(2) Tamago のインストール

同様に、Tamago を Ports からインストールする。

# cd /usr/ports/editors/tamago

# make clean

# make

# make install

- 34 -

(3) Kinput2 のインストール

同様に、Kinput2 を Ports からインストールする。

# cd /usr/ports/japanese/kinput2-freewnn/

# make clean

# make

# make install

全ての日本語入力システムのインストールが完了したら、次のコマンドを実行する。

# rehash

4.6 日本語環境の設定

4.6.1 日本語入力システムの起動

(1) FreeWnn の起動

FreeWnn は次のコマンドを実行することで起動することができる。

# /usr/local/bin/Wnn4/jserver

(2) Kinput2 の起動

Kinput2 は X Window System を起動後に、ターミナルで次のコマンドを実行することで

起動する。

# kinput2 -wnn &

上のコマンドを入力すると、warning(警告)メッセージが表示されるが,無視してよい。

4.6.2 日本語入力環境の設定

(1) Emacs の設定

Emacs で Tamago と FreeWnn を利用するためには、Emacs の設定ファイルを編集する

必要がある。emacs の設定ファイルはいくつかあり、全ユーザ共通で一番初めに読み込ま

れるのが /usr/local/share/emacs/site-lisp/ 以下にある ”site-start.el” で、続いて読み込まれ

るのが各ユーザのホームディレクトリの ”.emacs” や “emacs.el” (両方ある場合には後者

が優先される)、 後に、全ユーザ共通の設定である /usr/local/share/emacs/site-lisp/以下

の ”default.el” が読み込まれる。それぞれの設定ファイルに同じ設定項目があった場合には、

後に読み込まれた設定ファイルの内容が有効となる。

本実験では /usr/local/share/emacs/site-lisp/default.elをEmacsで開き( 初はnew file)、

次の内容を記述する。

(setq default-input-method "japanese-egg-wnn")

(global-set-key "\C-o" 'toggle-input-method)

Page 21: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 35 -

この設定の前者はインプットメソッドに wnn を利用する Tamago を使用することを宣言

し、後者で <Ctrl> + <O> で日本語入力に変更することができるように設定している。次に

X Window System を実行後にオプションなしで Emacs を実行し、設定の確認を行う。

# emacs

<Ctrl> + <\> あるいは <Ctrl> + <O> で日本語入力モードに移行し、スペースを押すこと

で変換が可能になる。

(2) 環境変数の設定

Firefox 等の X Window System を利用するアプリケーションでは kinput2 を利用する必要

がある。Firefox で kinput2 を利用するには、次のコマンドで環境変数を登録する。

# setenv XMODIFIERS @im=kinput2

# setenv LANG ja_JP.eucJP

ただし、この環境変数が有効なのは、上記のコマンドを実行したターミナルとそれを親

とする子プロセスだけである。

正しく環境変数が設定されたかどうかは次のコマンドで確認することができる。

# env

上のコマンドを実行し、

XMODIFIERS=@im=kinput2

LANG=ja_JP.eucJP

という行が表示されれば、環境変数の設定は正常にできていることになる。

環境変数が正常に設定されていたら X Window System を起動した状態で、Firefox を起動

する。

# firefox

ブラウザ上でアドレスバーなどの文字の入力が可能な部分で、<SHIFT> + <SPACE> ま

たは <Ctrl> + <Alt> + <半角/全角> キーで日本語の入力が可能となる。

- 36 -

4.6.3 日本語入力システムの自動起動と設定

OS ブート時に自動的に FreeWnn が起動するようにするには、/etc/rc.conf を Emacs で

開き、次の 1 行を追加する。

wnn_enable="YES"

さらに、X Window System 起動時に kinput2 の起動と環境変数の設定が自動的に行われ

るようにするには、/usr/X11R6/lib/X11/xinit/xinitrc を Emacs で開き、終わりの方にある

"/usr/X11R6/bin/twn&" の前に次の 3 行を追加する。

kinput2 -wnn &

export XMODIFIERS=@im=kinput2

export LANG=ja_JP.eucJP

Page 22: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 37 -

第 5 章 DNS の設定

5.1 概要

DNS(Domain Name System)とは人間の憶えやすい形で表されている “www.yahoo.co.jp”

などのドメイン名を、本来のインターネット上で使用されるアドレスの形式(IP アドレス)

に変換するシステムのことである。DNS サーバはドメインと IP アドレスの対応をデータと

して所持しており、クライアントは DNS サーバに問い合わせることで、ドメイン名からそ

れに対応する IP アドレスを知ることができる。

第 3 章でのネットワークの設定では、既存の DNS サーバを指定したが、本実験では自身

のマシンを DNS サーバとして設定し、クライアントが利用できるようにする。

5.2 DNS

5.2.1 DNS サーバ

DNS サーバには大きく分けて、マスターサーバ、スレーブサーバ、キャッシュサーバの

三つがあるが、ドメイン名と IP アドレスの対応を設定しているのはマスターサーバだけで

ある。スレーブサーバは、マスターサーバからその対応情報をコピーして利用しており、

キャッシュサーバは、基本的には他のネームサーバに依存し、得られた情報を一定期間保

持して利用している。また、マスターサーバやスレーブサーバはキャッシュサーバとして

の機能も有している。

5.2.2 正引きと逆引き

DNS のサービスには正引きと逆引きと呼ばれるものがある。正引きは“www.yahoo.co.jp”

のようなドメイン名を IP アドレスに変換するサービスで、逆引きは IP アドレスをドメイン

名に変換するサービスのことである。

正引きと逆引きのサービスを提供するために、マスターサーバはドメイン名と IP アドレ

スのそれぞれについての情報を分けて管理する必要がある。もちろん、どちらか一方のサ

ービスだけを提供することも可能である。

5.2.3 DNS の仕組み

例えば、”stu.meisei-u.ac.jp” のようなドメイン名に対応する IP アドレスを知りたいとき、

指定した DNS にその情報があればよいが、その情報がないことも多い。ここでは、DNS

の仕組みについて、上記のドメイン名を例に簡単に説明する。

世界中には無数の DNS が存在しているが、その基幹となっているのは世界中にある 13

台の DNS サーバである。DNS の基本は、ルートサーバと呼ばれるこの 13 台の DNS へ問

い合わせることからはじまる。これらのルートサーバには、 も大きな分類となるドメイ

ン名と、そのドメイン名を管理している DNS サーバとの対応が登録されている。この も

- 38 -

大きな分類となるのは、ドメイン名の一番上位(ドメイン名は下位から順にかかれている)

である、多くの場合は ”jp” のように国名を表している部分である。

ルートサーバは、例えば ”stu.meisei-u.ac.jp” についての問合せがあったとき、ドメイン

名の一番上位である ”jp” を管理している DNS サーバに問合せを回送する。回送された先

の DNS サーバでは、その下位に当たる ”ac” を管理している DNS サーバに問合せをさらに

回送する。このように、”stu.meisei-u.ac.jp” に対応する IP アドレスの情報をもっているサ

ーバに辿り着くまで、問合せの回送が繰り返し行われる。

上記は正引きの場合であるが、逆引きの場合も基本的には同様に行われる。ただし、例

えば IP アドレスが ”160.194.176.153” であった場合、”153.176.194.160.in-addr.arpa” のよ

うなドメイン名として処理される。

このようにルートサーバから問合わせを回送していくことを「再帰問合わせ」という。

しかし、毎回再帰問合せをしていては、トラフィックも大きくなり、時間も多くかかって

しまう。そのため、世界中に点在する DNS サーバは、一度問合せが行われた場合、それに

対する情報を一時的に保存・管理し(すなわち、キャッシュし)、再帰問合せをなるべく行

わずに済むようにしている。

5.3 BIND

BIND(Berkeley Internet Name Domain)はカリフォルニア大学のバークレー校で開発され

たフリーの DNS サーバソフトウェアである。世界中で運用される DNS サーバの多くはこ

の BIND を利用している。その他の DNS サーバソフトウェアとして、djbdns があるが、そ

れほど広くは普及していない。

FreeBSD6.2 には DNS サーバとして、BIND9.3.3 が初期からインストールされている。

本実験ではこの BIND9 を用いて DNS サーバを構築する。

BIND のプログラム名は named で、/usr/sbin 以下にある。次のコマンドを入力すると、

BIND のバージョンを確認することができる。

# named -v

5.4 BIND の設定

5.4.1 認証システムの設定

BIND9 からは、named を制御するための認証システムが用意されており、その設定を行

わなければ BIND を起動することができない。その設定手順を次に示す。

(1) rndc.key の作成

認証システムの鍵となるのが、”rndc.key” である。これを作成するには/etc/namedb に移

動し、次のコマンドを実行する。

Page 23: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 39 -

# cd /etc/namedb

# rndc-confgen -a -b 512 -r /dev/urandom -u bind

# chown bind:bind rndc.key

# chmod 0400 rndc.key

(2) rndc.conf の設定

作成した ”rndc.key” を BIND に組み込むために、”rndc.conf” を作成する。

# rndc-confgen > rndc.conf

上のコマンドで作成された ”rndc.conf” を Emacs で開き、key ステートメント全てとコ

メント行(#行)を削除し、次の行を追加する。

include "/etc/namedb/rndc .key";

この結果、”rndc.conf” は次のようになる。

include "/etc/namedb/rndc.key";

options {

default-key "rndc-key";

default-server 127.0.0.1;

default-port 953;

};

“rndc.conf” の設定が終了したら、グループと属性の変更を行う。

# chown root:bind rndc.conf

# chmod 0600 rndc.conf

5.4.2 BIND 設定ファイル

BIND の設定ファイルは/etc/namedb 以下の ”named.conf” である。この設定ファイルは

DNS 全般の設定の他に、管理するゾーンの設定や、その扱いなどを設定することができる。

また、そこで設定した管理するゾーンの設定ファイルをそれぞれ用意する必要がある。そ

れらのファイル名の拡張子には、正引きゾーンファイルでは「zone」が、逆引きゾーンフ

ァイルでは「rev」が一般的に使われる。

- 40 -

表 5.1 は、本実験で対象とする管理ゾーンと対応するファイル名である。

表 5.1 管理するゾーン名とそのファイル名

ゾーン名 ファイル名

localhost /etc/namedb/master/localhost.zone

0.0.127.in-addr.arpa /etc/namedb/master/localhost.rev

labnet0.cslab.is.meisei-u.ac.jp /etc/namedb/master/labnet0.zone

153.176.194.160.in-addr.arpa /etc/namedb/master/labnet0.rev

BIND の設定は次のようにして行う。

(1) named.conf のバックアップ

“named.conf” の内容を誤って消してしまうなどして、初期状態に戻したいときのために、

そのバックアップファイルを作成しておく。

# cd /etc/namedb/

# cp named.conf named.conf.old

(2) named.conf の編集

named.conf を Emacs で開き、不要な部分(主に「//」や「/*」~「*/」で囲まれたコメン

ト部分、listen ON や IPV6 の ZONE 設定部分など)を削除し、必要な項目を追加する。作成

した named.conf を以下に示す。なお、追加・変更部分は二重下線で表している。

options {

directory "/etc/namedb";

pid-file "/var/run/named/pid";

dump-file "/var/dump/named_dump.db";

statistics-file "/var/stats/named.stats";

forwarders { 160.194.176.48; }; //要求の回送先を指定

forward only; //自らルートサーバに問い合わせない

};

zone "." { //ルートサーバの情報ファイルの指定

type hint ;

file "named.root" ;

}; (次ページへ続く)

(前ページから続く)

Page 24: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 41 -

zone "localhost" { //localhost の正引きデータ

type master; //master=このサーバが情報を所持

file "master/localhost.zone";

};

zone "0.0.127.IN-ADDR.ARPA" { //localhost の逆引き

type master;

file "master/localhost.rev";

};

zone "labnet0.cslab.is.meisei-u.ac.jp" {

type master;

file "master/labnet0.zone"; //ゾーンの設定ファイル名

};

zone "153.176.194.160.in-addr.arpa" {

type master;

file "master/labnet0.rev";

};

named.conf を作成したら、nemed.conf の構文をチェックする。この構文チェックは

「named-checkconf」というコマンドで実行する。

# named-checkconf named.conf

このコマンドを実行して何もメッセージが表示されなければ,構文的に正しく named.conf

が作られていることになる。もし,エラーメッセージが表示されたら,表示される行番号

の付近をよく調べ、修正する(セミコロンや中カッコの入力忘れがよくあるミスである)。

(3) ゾーンファイルの作成

“named.conf” により、自身で管理を行うことを設定したゾーンの設定ファイルをすべて

作成する。ゾーンファイルは /etc/namedb/master/ 以下のディレクトリに作成する。作成

するゾーンファイルをそれぞれ次に示す。( “;” はコメント行)

(a) ローカルホストの正引きゾーンファイル [ /etc/namedb/master/localhost.zone ]

- 42 -

$TTL 86400 ;他の DNS にこのゾーン情報が保存される期間

localhost . IN SOA srv0.labnet0.cslab.is.meisei-u.ac.jp. root.srv0.labnet0.cslab.is.meisei-u.ac.jp. (

200708071 ; Serial 更新するたび数字を大きくする(例:更新年月日回数)

1H ; Refresh 1 Hour(3600) スレーブサーバの更新頻度

1H ; Retry 1 Hour スレーブサーバのリトライ間隔

1W ; Expire 1 Weak スレーブサーバのゾーンデータベースの有効期限

1D ; Minimum TTL 1 Day(86400) スレーブサーバのキャッシュ保存期間

)

IN NS srv0.labnet0.cslab.is.meisei-u.ac.jp.

localhost . IN A 127.0.0.1

(b) ローカルホストの逆引きゾーンファイル [ /etc/namedb/master/localhost.rev ]

$TTL 86400

0.0.127.in-addr.arpa. IN SOA srv0.labnet0.cslab.is.meisei-u.ac.jp. root .srv0.labnet0.cslab.is.meisei-u.ac.jp. (

200708071 ; Serial

1H ; Refresh

1H ; Retry

1W ; Expire

1D ; Minimum TTL

)

IN NS srv0.labnet0.cslab.is.meisei-u.ac.jp.

1 IN PTR localhost.

ゾーンファイルを作成したら、「named-checkzone」というコマンドで,ゾーンファイル

の構文チェックを行う。カレントディレクトリが /etc/namedb/ であれば、 、

ローカルホストの正引きゾーンファイルに対しては、

# named-checkzone localhost. master/localhost.zone

ローカルホストの逆引きゾーンファイルに対しては、

# named-checkzone 0.0.127.in-addr.arpa. master/localhost.rev

というコマンドで各ゾーンファイルの構文チェックを行うことができる。構文の誤りがな

ければ、「OK」と表示される。

行末の ( まで改行しない。 画面上では 2 行になってもよい。 t のあとに .

t のあとに .

行末の ( まで改行しない。 画面上では 2 行になってもよい。

a のあとに .

p のあとに .

p のあとに .

Page 25: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 43 -

(c) labnet0.cslab.is.meisei-u.ac.jp の正引きゾーンファイル

[/etc/namedb/master/labnet0.zone ]

$TTL 86400

labnet0.cslab.is.meisei-u.ac.jp. IN SOA srv0.labnet0.cslab.is.meisei-u.ac.jp. root.srv0.labnet0.

cslab.is.meisei-u.ac.jp. (

省略:localhost.zone と同じ

)

IN NS srv0.labnet0.cslab.is.meisei-u.ac.jp.

srv0 IN A 160.194.176.153

IN MX 10 srv0 ;MX レコードは左辺宛のメールを右辺に配送する宣言

mail IN MX 10 srv0

www IN CNAME srv0 ;CNAME レコードは別名(左辺)をつけることの宣言

(d) labnet0.cslab.is.meisei-u.ac.jp の逆引きゾーンファイル

[ /etc/namedb/master/labnet0.rev ]

$TTL 86400

153.176.194.160.in-addr.arpa. IN SOA srv0.labnet0.cslab.is.meisei-u.ac.jp. root.srv0.labnet0.

cslab.is.meisei-u.ac.jp. (

省略:localhost.rev と同じ

)

IN NS srv0.labnet0.cslab.is.meisei-u.ac.jp.

IN PTR srv0.labnet0.cslab.is.meisei-u.ac.jp.

ここでも、labnet0.cslab.is.meisei-u.ac.jp のゾーンファイルの構文チェックを行っておく。

labnet0.cslab.is.meisei-u.ac.jp の正引きゾーンファイルに対しては、

# named-checkzone labnet0.cslab.is.meisei-u.ac.jp. master/labnet0.zone

ローカルホストの逆引きゾーンファイルに対しては、

# named-checkzone 153.176.194.160.in-addr.arpa. master/labnet0.rev

というコマンドで各ゾーンファイルの構文チェックを行う。

行末の ( まで改行しない。 画面上では 2 行になってもよい。

行末の ( まで改行しない。 画面上では 2 行になってもよい。

p のあとに .

a のあとに .

p のあとに .

p のあとに .

- 44 -

ゾーンファイルでは、 後にドット( "." )をつけないと、その後に ”named.conf” で設定

したゾーン名が補完される (例えば localhost.rev の PTR レコードにある ”1” は

1.0.0.127.in-addr.arpa となる)。 ただし IP アドレスの場合はつけなくても補完されない。

”labnet0.zone” の CNAME レ コ ー ド は 別 名 を つ け る レ コ ー ド で 、 こ こ で は

srv0.labnet0.cslab.is.meisei-u.ac.jp. にwww.labnet0.cslab.is.meisei-u.ac.jp.という別名を設

定している。このことにより、srv0 の URL はマシン名を省いて指定することができる。な

お,本来、逆引きゾーンは ”labnet0.rev” のように一つの完全な IP アドレスについて設定

するのではなく、”160.194.176.1-255” のようにサブネット単位で設定するのが一般的であ

るが、本実験では便宜上このような設定で行う。

(4) グループと属性の変更

“named.conf” とそれぞれのゾーンファイルの設定が完了したら、それら全てのファイル

の所属グループと属性を変更する。

# cd /etc/namedb/

# chown root:bind named.conf

# chmod 0440 named.conf

# chown root:bind master/*

# chmod 0440 master/*

5.5 BIND の起動

5.5.1 named の起動

BIND のプログラムである named を次のコマンドで起動する。この動作は、X-window を

終了し、コンソールモードで行わなければエラーメッセージが表示されない。

# /usr/sbin/named -u bind -c /etc/namedb/named.conf

named 起動後に ”named.conf” や各ゾーンファイルを変更した場合には、次のコマンド

でその変更を反映させる。

# named.reload または # /usr/sbin/rndc reload

ifconfig で IP アドレスの設定を変更したときには,

# /usr/sbin/rndc stop

で named を停止させ、再度 named を起動させる。

Page 26: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 45 -

5.5.2 DNS サーバの設定

/etc/resolv.conf を Emacs で開き、3.4.2 節ですでに設定してある nameserver を削除、ま

たはコメントアウト( “#” ) し、次の行を挿入する。

nameserver 127.0.0.1

5.5.3 DNS の動作確認

nslookup コマンドや dig コマンドを用いて DNS が正常に動作しているか確認する。

nslookup コマンドと dig コマンドは共に DNS サーバへの問合せを確認するコマンドである

が、dig コマンドは nslookup コマンドよりも DNS サーバの応答を詳しく確認することがで

きる。dig コマンドの実行結果は複数行にわたるが、問合せに対する回答は ANSWER

SECTION という部分に書かれている。dig コマンドには、いくつかのオプションが用意さ

れている。+trace オプションを指定すると、再帰問合せを行う際、ルートネームサーバか

らの問合せ経過をトレースした結果を表示する。また、-x オプションは逆引きを指定する

ためのオプションである。実際に次のコマンド(ホスト名や IP アドレスは自分のマシンの

ものを指定すること)を入力し、実行結果を記録せよ。dig コマンドの実行結果の記録は、

ANSWER SECTION の部分だけでよい。

# nslookup srv0.labnet0.cslab.is.meisei-u.ac.jp

# nslookup 160.194.176.153

# dig srv0.labnet0.cslab.is.meisei-u.ac.jp

# dig srv0.labnet0.cslab.is.meisei-u.ac.jp +trace

# dig –x 160.194.176.153

これらのコマンドを実行して対応するホスト名、または IP アドレスが表示されれば、DNS

サーバとして正常に動作していると考えてよい。さらに、クライアント PC 上で DNS サー

バとして自分のマシンの IP アドレスを設定し、クライアント PC の Web ブラウザから任意

の Web ページが正常に表示されるかどうかを確認してみてもよい。

DNS サーバとして正常に動作していることが確認できたら、OS ブート時に named が自

動で起動するように、/etc/rc.conf に次の行を書き加える。

named_enable="YES" ; 「=」記号の周辺にスペースは挿入しない

named_program="/usr/sbin/named"

named_flags="-u bind -c /etc/namedb/named.conf"

また、この段階でホスト名の設定もしておくために、次の 1 行を書き加える。

hostname="srv0.labnet0.cslab.is.meisei-u.ac.jp" ; 赤線部は各自のホスト名を記述すること

システムをリブートし、再度 DNS の動作確認を行う。ログインしなくても DNS は起動

しているので、クライアント PC からはすでに DNS サーバを利用できる状態になっている。

- 46 -

第 6 章 Web サーバの導入

6.1 概要

インターネットを利用する主な目的の一つに、Web サイトの閲覧がある。その Web サイ

トは Web ページの集まりであり、それらを運用するために必要なのが Web サーバである。

本実験では Web サーバとして広く普及している Apache を用いて FreeBSD 上に Web サ

ーバを導入し、クライアントが利用できるようにする。

6.2 Web サーバ

Web サーバは、基本的には Web ページをクライアント側で閲覧できるようにするための

サーバである。Web ページを表示する際に、Web サーバはクライアント側のソフトウェア

である Web ブラウザから要求を受け取り、それに対して HTML(Hyper Text Markup

Language)などで記述されたWebページや画像などを、HTTP(Hyper Text Transfer Protocol)

を用いて、クライアントに転送している。

6.3 TCP

Web サーバとクライアントの Web ブラウザ間での通信に用いられる HTTP は、さらに

TCP(Transmission Control Protocol)を利用して通信を行っている。TCP は通信を行うプロ

グラム間で、確認を取りながら相互でデータの送受信を行うため、信頼性の高いプロトコ

ルとなっている。

この TCP を利用しているプロトコルには、HTTP の他に、メール転送のプロトコルであ

る SMTP(Simple Mail Transfer Protocol)や、ファイルの転送に用いられる FTP(File Transfer

Protocol)などがある。TCP では、利用するのがこれらのどのプロトコルであるかを判断す

るために、”ポート番号” を利用している。

ポート番号は 0~65535 の数字が使用され、標準的な Web サーバではポート番号 80 が使

用されている。また、クライアント側の Web ブラウザなどのプログラムでは、ポート番号

1024 以降で、他のプログラムが使用していないポート番号を使用している。

6.4 Apache

Apache のベースとなったのはアメリカの NCSA(米国立スーパーコンピュータ応用研究

所)が開発した Web サーバソフトウェアである。

1995 年ごろには、Web サーバソフトウェアとして、スイスの CERN(欧州粒子物理学研

究所)と NCSA が開発したものの二つがあった。しかし、NCSA が開発したものはさまざま

な機能をもっているが、バグが多いという欠点があった。そのバグを修正するファイルを

提供していた研究者などが集まり、新しく開発されたのが Apache である。

Apache についての詳しい情報は、次の公式サイトなどで入手することができる。

Page 27: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 47 -

http://www.apache.org/

または

http://www.apache.jp/

6.5 バーチャルホスト

バーチャルホストとは、一台のサーバで、複数のドメイン名を用いた Web サイトの運用

が可能となる Apache の機能の一つである。この設定を行うことで、1 台の Web サーバに

対して異なる URL を指定して、それぞれ個別の Web ページを表示させることができる。

すなわち、同一のホストマシン(もちろん IP アドレスも同一である)に異なる URL、例え

ば、 ”srv0.labnet0.cslab.is.meisei-u.ac.jp” と “www.labnet0.cslab.is.meisei-u.ac.jp” を与え

れば(DNS の設定による)、それぞれ個別の Web ページを表示することができる。

6.6 Apache の導入

6.6.1 Apache のインストール

Apache のインストールは Ports システムを利用して行う。4.5.1 節を参考にして、

Apache13 をインストールする。

# cd /usr/ports/www/apache13

# make clean

# make

# make install

# rehash

6.6.2 httpd.conf の設定

/usr/local/etc/apache/httpd.conf を Emacs で開き、必要があれば編集を行う。本実験で

はこの時点で設定を行う項目はとくにないが、どのような設定項目があるかは確認してお

いたほうがよい。なお、このファイルを日本語に訳したものが下記の URL にある。

http://itbtech.itboost.co.jp/inst/httpd_conf.php

このファイルを編集した場合、次のコマンドで構文チェックを行うことができる。

# /usr/local/sbin/apachectl configtest

「Syntax OK」というメッセージが表示されれば文法としては正しく記述されていること

になる。

- 48 -

6.6.3 Apache の起動

Apache を起動するには次のコマンドを実行する。

# /usr/local/sbin/apachectl start

Apache の起動プログラム名は httpd である。起動に成功しているかどうかは次のコマン

ドで確認することができる。

# ps -ax | grep httpd

起動できていなかった場合のエラーログは/var/log/httpd-error.log に記録される。

Apache を停止させるには次のコマンドを実行する。

# /usr/local/sbin/apachectl stop

httpd.conf を編集した場合は、Apache を停止させてから再び起動するか、次のコマンド

を実行する。

# /usr/local/sbin/apachectl restart

Apache を OS ブート時に自動的に起動させるには、/etc/rc.conf に次の行を追加する。

apache_enable="YES"

6.6.4 Apache の動作確認

Apache が Web サーバとして正常に動作しているかを確認するには、Web ブラウザを利

用する。X Window System 上で Firefox を起動し、アドレスバーに次のアドレスをそれぞれ

入力し、テストページが正しく表示されるかを確認する。ただし、④と⑤は DNS で設定し

た各自のホスト名やドメイン名に置きかえること。

① http://127.0.0.1/

② http://localhost/

③ http://各自コンピュータの IP アドレス/

④ http:// srv0.labnet0.cslab.is.meisei-u.ac.jp/

⑤ http:// www.labnet0.cslab.is.meisei-u.ac.jp/

Page 28: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 49 -

6.6.5 バーチャルホストの導入

バーチャルホストを導入するには、次の手順で行う。

(1) httpd.conf の編集

バーチャルホストの設定は ”httpd.conf” の 後の部分を次のように追加・修正する。

[ /usr/local/etc/apache/httpd.conf ] の追加・修正部分

NameVirtualHost 160.194.176.153:80

<VirtualHost 160.194.176.153:80>

DocumentRoot /usr/local/www/data/

ServerName srv0.labnet0.cslab.is.meisei-u.ac.jp

</VirtualHost>

<VirtualHost 160.194.176.153:80>

DocumentRoot /root/www

ServerName www. labnet0.cslab.is.meisei-u.ac.jp

</VirtualHost>

<Directory /root/www>

Options Followsymlinks

Allowoverride None

order allow,deny

allow from all

</Directory>

編集を行ったら、次のコマンドにより再度、構文チェックを行う。Warning メッセージ

(「DocumentRoot が存在しない」)が表示されるが、「Syntax OK」と表示されれば正常で

ある。

# /usr/local/sbin/apachectl configtest

(2) ディレクトリの作成

バーチャルホストで使用するルートディレクトリを、バーチャルホストの設定に基づき

作成する。/usr/local/www/data は既にあるので、ここでは/root/www だけを作成する。

# mkdir -p /root/www

- 50 -

(3) Web ページの作成

ディレクトリを作成しただけでは、設定したアドレスにアクセスしても何も表示させる

ことができない。ここでは各自 ”index.html” という名前の HTML ファイルを、Emacs で作

成し、/root/www/ 以下のディレクトリに格納する。

(4) バーチャルホストの確認

Apache を再起動し、Web ブラウザのアドレスバーに次のアドレスをそれぞれ入力し、そ

の表示を確認する。

http:// srv0.labnet0.cslab.is.meisei-u.ac.jp/

http:// www.labnet0.cslab.is.meisei-u.ac.jp/

(文字化けして正常に表示されない場合は、文字コードの確認を行うこと。)

前者のアドレスでは Apache のテストページが、後者のアドレスでは各自が作成したファ

イルの内容が表示されればバーチャルホストの設定は正常に行われていると考えてよい。

6.6.6 外部クライアントからの動作確認

Windows マシンから Web ブラウザのアドレスバーに、6.6.4 節で行った確認に使用し

たアドレス(localhost の IP アドレスとホスト名以外)を入力し、その表示から、Web サーバ

の動作とバーチャルホストの設定が正常に行われているかを確認する。

このとき[ツール]→[インターネットオプション]→[接続]→[LAN の設定] (インターネット

エクスプローラの場合)で proxy が設定してある場合は、設定されている proxy をメモして

からチェックをはずす。(後で元に戻せるようにするため)

また、Apache のテストページは、サーバ側のマシンで表示したときと違い、日本語で表

示されるはずである。これは、MultiView 機能が有効になっているためである。MultiView

機能が有効になっていると、ブラウザの優先言語にあわせて ”index.html” の後に ".ja" や

".en" を自動で追加し、それらのファイルを表示する。インターネットエクスプローラの場

合、[ツール]→[インターネットオプション]→[全般]→[言語]で言語を追加し、その優先順位

を変更することで Apache のテストページの言語が変更される。

Page 29: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 51 -

第 7 章 メールサーバの導入

7.1 概要

近年ではインターネット上で電子メールのやり取りをすることが多くなった。この電子

メールの送受信を行う上で必要になるのがメールサーバである。

FreeBSD にはインストールを行うと同時に、標準的なメールサーバとして sendmail とい

う MTA(Message Transfer Agent)がインストールされる。本実験ではこれを廃止し、それに

代わるメールサーバとして、qmail という MTA を導入する。

7.2 メールサーバ

メールサーバは、ネットワーク上で行われる電子メールの送受信を管理するためのサー

バである。しかし、送信と受信に利用されるシステムは異なっており、メールサーバとは、

それらのシステムの総称となっている。

電子メールの送信に利用されるシステムは、一般的には SMTP(Simple Mail Transfer

Protocol)と呼ばれる通信規約が適用されたものである。SMTP を用いて、電子メールの送

信を管理するサーバを、SMTP サーバと呼ぶ。SMTP サーバは、通常 TCP のポート番号 25

を使用している。ただし、SSL(Secure Sockets Layer)や TLS(Transfer Layer Security) を

利用した SMTP サーバでは、ポート番号 465 が使用される。

電子メールの受信システムが現在用いている通信規約の主なものには、POP3(Post Office

Protocol) や IMAP4(Internet Message Access Protocol) がある。これらの通信規約を用い

て、ユーザからの電子メールの受信要求を受け付けるサーバを、それぞれ POP3 サーバ、

IMAP4 サーバという。通常、TCP のポート番号は、POP3 サーバでは 110 を、IMAP4 サー

バでは 143 をそれぞれ使用している。

7.3 qmail

MTA としては sendmail が標準的であるといえるが、sendmail は細かい設定が可能な反

面、その設定は複雑であり、はじめてメールサーバを運用するのに適しているとはいえな

い。qmail はそういった設定の複雑さを緩和し、また sendmail の抱えるその他の問題(保守

性や効率など) の解決を図ろうとアメリカの Daniel J. Bernstein 氏が開発した MTA である。

本実験では qmali1.03 をインストールし、SMTP サーバと POP3 サーバの導入を行う。

7.4 tcpserver

tcpserver は、qmail と同じく Daniel J. Bernstein 氏が開発したサーバ制御ツールである。

多くの UNIX システムには同様のサーバ制御ツールとして、inetd が標準でインストールさ

れているが、Dos 攻撃などを考えると、inetd では、セキュリティ上好ましくない点もある。

したがって、本実験では qmail の起動は tcpserver により行うことにする。

- 52 -

7.5 checkpassword

qmail の pop3 システムそのものにはユーザの認証機能が含まれておらず、その認証を行

う機能を提供するソフトウェアが必要となる。そこで、本実験ではパスワードを平文(暗号

化されていないデータ)として認証することを可能とする checkpassword を導入する。この

checkpasswordも、qmailや tcpserverと同様Daniel J. Bernstein 氏が開発したものである。

7.6 qmail の導入

7.6.1 プログラムのインストール

本実験で直接使用するプログラムは qmail,tcpserver,checkpassword の三つである。こ

こでは、Ports システムを利用して、それぞれのソフトウェアのインストールを行う。(Ports

システムにおけるソフトウェアのインストール方法については 4.5.1 節を参照)

(1) qmail のインストール

qmail のインストールは次のように行う。

# cd /usr/ports/mail/qmail/

# make

# make install

make コマンドを実行するとオプション画面が表示される。これらは主に機能を拡張する

ために必要な patch ファイルをあてるかどうかというものである。後々に機能を追加するこ

ととして、全てにチェックを入れてインストールを行う。

(2) tcpserver のインストール

tcpserver のインストールは次のように行う。

# cd /usr/ports/sysutils/ucspi-tcp

# make

# make install

make 時に表示されるオプション画面では MAN と RSS_DIFF だけを選択する。

(3) checkpassword のインストール

checkpassword のインストールは次のように行う。

# cd /usr/ports/security/checkpassword

# make

# make install

Page 30: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 53 -

全てのプログラムのインストールを終えたら、ハッシュテーブルを更新する。

# rehash

7.6.2 DNS の設定

メールを送信する際の宛先は、"アカウント名@マシンのホスト名+ドメイン名" の形とな

る。例えば、"srv0.labnet0.cslab.is.meisei-u.ac.jp" というドメイン名で DNS に登録されて

いるホストの root アカウントにメールを送信したい場合は、次のようなアドレスを指定す

る。

[email protected]

この宛先の"@" 以降のドメイン名は、DNS で設定を行うことで追加することが可能であ

る。その際に設定が必要なのは、メールのドメイン名として利用したいドメイン(ゾーン)

を管理しているゾーンファイルである。

labnet0.cslab.is.meisei-u.ac.jp を管理するゾーンファイルの一部

labnet0.cslab.is.meisei-u.ac.jp. IN MX 10 srv0.labnet0.cslab.is.meisei-u.ac.jp.

mail.labnet0.cslab.is.meisei-u.ac.jp. IN MX 10 srv0.labnet0.cslab.is.meisei-u.ac.jp.

例えば、上のようにゾーンファイルを設定した場合、root アカウントのメールアドレスと

して、次の三つを使用することができる。

[email protected]

[email protected]

[email protected]

これは、ゾーンファイル中の MX レコードの左辺に記述したドメイン宛てのメールが、

右辺に記述したサーバに送信されるという仕組みになっているためである。

本実験では 5.4.2 節の(3)ですでにこの設定を行っているため、この作業をする必要はない。

7.6.3 設定ファイルの作成

qmail では、いくつかの設定ファイルを次のように作成または編集を行う必要がある。

(1) コントロールファイルの作成

コントロールファイルと呼ばれる設定ファイルは、自身のホスト情報などの設定を行う

- 54 -

ためのファイルであり、/var/qmail/control/以下に格納される。コントロールファイルはいく

つかのファイルに分かれており、それぞれに定められた設定をする必要がある。下は、5.4.2

節の(3)で設定した正引きゾーンファイルに基づき編集を行った五つのコントロールファイ

ルとそれぞれの内容である。

補完されるドメイン名 [ /var/qmail/control/defaultdomain ]

labnet0.cslab.is.meisei-u.ac.jp

ローカル配送として処理するドメイン [ /var/qmail/control/locals ]

localhost

srv0.labnet0.cslab.is.meisei-u.ac.jp

labnet0.cslab.is.meisei-u.ac.jp

mail.labnet0.cslab.is.meisei-u.ac.jp

自サーバのホスト名 [ /var/qmail/control/me ]

srv0.labnet0.cslab.is.meisei-u.ac.jp

+で終わっている場合に補完されるドメイン名[ /var/qmail/control/plusdomain ]

labnet0.cslab.is.meisei-u.ac.jp

受信して処理を行うことを許可したドメインの一覧[ /var/qmail/control/rcpthosts ]

localhost

srv0.labnet0.cslab.is.meisei-u.ac.jp

labnet0.cslab.is.meisei-u.ac.jp

mail.labnet0.cslab.is.meisei-u.ac.jp

コントロールファイルには、上記の五つ以外に "datebytes" や "badmailfrom" などがあ

るが、本実験では使用しない。

また、上記の五つのファイルは、次のコマンドを実行することで、自動的に作成するこ

とができる。

# cd /var/qmail/configure/

# ./config

ただし、このコマンドを使用してコントロールファイルを作成した場合、ファイルの内

容が上記のコントロールファイルの内容と異なる場合があるので、必ずそれぞれのファイ

ル内容を確認し、上記コントロールファイルの内容と同じになるよう修正する。

Page 31: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 55 -

(2) alias の設定

qmail ではユーザ名(アカウント名)で始まっていないアドレス宛のメールを受信した場合、

alias という擬似ユーザが管理することになっている。それらの扱いを決定するのが

/var/qmail/alias/ 以下に格納する ".qmail-ユーザ名" というファイルである。本実験では次

の三つのファイルを Emacs や touch コマンドで作成する。

.qmail-mailer-daemon 宛て先不明(mailer-daemon 宛)のメール

.qmail-postmaster postmaster 宛のメール

.qmail-root root 宛のメール

これらのファイルの内容にメールアドレスを書き込むことで、それぞれに対応するメー

ルがそのメールアドレスに向けて転送される。アカウントがサーバ内にあるのなら"&ユー

ザ名"と書き込めばよい。また、ファイルが空の場合には/var/qmail/alias/に配送される。こ

こではそれぞれのファイルには何も記述しないでおく。

上記のファイルを全て作成したら、ファイルの属性を 0644 に変更する。

# chmod 0644 /var/qmail/alias/.qmail*

7.6.4 Maildir の作成

qmail では、共通のディレクトリにメールを配送する mbox 形式と、ユーザごとにホーム

ディレクトリに対してメールを配送する Maildir 形式を選択して運用することができる。本

実験では Maildir 形式で qmail を運用する。

Maildir 形式で qmail を運用するにあたって、すべてユーザのホームディレクトリに

"Maildir" というディレクトリを作成する必要がある。このディレクトリを作成することに

より POP アクセスでメールを受信することが可能になる。このディレクトリを作成するに

は、root を含めてすべてのユーザでログインし、次のコマンドを実行する。

% /var/qmail/bin/maildirmake ~/Maildir

【次の下線部は必ず実施すること】

次に、root を含めてすべてのユーザのホームディレクトリに ".qmail" という名前で次の

内容のファイルを作成する。

[ .qmail ]

./Maildir/

また、/usr/share/skel/ にも、"dot.qmail" という名前で、上記のファイルを作成し、保存し

ておく。

- 56 -

今後追加するユーザにここまでの操作が自動的に行われるように、/usr/share/skel/で、次

のコマンドを実行する。これらは root 権限で行う。

# cd /usr/share/skel

# /var/qmail/bin/maildirmake Maildir

さらに、各ユーザのホームディレクトリの他に、/var/qmail/alias/以下に "Maildir" を作成

する。/var/qmail/alias/Maildir を root 権限で作成後、"Maildir" 以下のすべてのディレクトリ

の所有者を次のコマンドにより仮想アカウント alias に変更しておく。

# cd /var/qmail/alias

# /var/qmail/bin/maildirmake ./Maildir

# chown -R alias: /var/qmail/alias/Maildir/

7.6.5 メール用アカウントの作成

1.6.2 節で行った「ユーザアカウントの追加」を参照して、メール用のアカウントを作成す

る。ただし、このときの uid とグループは、デフォルトの設定を適用する(wheel や operator

にはしない)。アカウントを作成したらそのユーザでログインし、ホームディレクトリに、

"Maildir" ディレクトリや、".qmail" のファイルがあるかを確認する。

7.6.6 不正中継に対する設定

メールサーバを運用していると、SPAM メールなどの中継サーバとして利用される恐れ

がある。これを回避するために、tcpserver を利用して、不正中継を防ぐ設定を行う。

まず root でログインし、/etc/ 以下に、次のファイルを Emacs で作成する。ファイルの

内容にある IP アドレスは中継を許可する IP アドレスである。(127.とした場合、127.*.*.*

のアドレスを許可することになる)

[ /etc/tcp.smtp ]

127.:allow,RELAYCLIENT=""

160.194.:allow,RELAYCLIENT=""

続いて、次のコマンドで、データベースファイルを作成する。

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

Page 32: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 57 -

7.6.7 起動スクリプトの作成

qmail の起動スクリプトである /usr/local/etc/rc.d/qmail.sh は /var/qmail/rc へのシンボリ

ックリンクとなっている。初期状態では /var/qmail/rc は存在しないため、次ページにある

起動スクリプトを自分で作成しなければならない。しかし、この起動スクリプトは記述が

複雑なため、この実験では、http://www.hino.meisei-u.ac.jp/is/iga/qmailrc.sample にあらか

じめ用意されている雛形のスクリプトを fetchコマンドを使ってダウンロードして使うこと

にする。

# fetch http://www. hino.meisei-u.ac.jp/is/iga/qmailrc.sample

なお、fetch コマンドのダウンロード先はカレントディレクトリとなるので、あらかじめ

/var/qmail/ のディレクトリに移動しておく必要がある。

ダウンロードした qmailrc.sample の##POP 項目中にある hostname.domain (srv0.

labnet0.cslab.is.meisei-u.ac.jp など)の部分は自分のマシンのホスト名とドメイン名に書き換

える。ファイルを修正したら rc というファイル名で保存し、chmod コマンドで実行許可の

属性を与える。

#chmod 755 rc

- 58 -

qmail の起動スクリプト [ /var/qmail/rc ] ※qmailrc.sample には日本語のコメントは含まれない

#!/bin/sh # Using splogger to send the log through syslog. # Using qmail-local to deliver messages to Maildir format by default # 変数 PID に qmail のプログラムのプロセス ID を格納 PID=`/bin/ps –afw | grep [q]mail-send | awk ‘{print $1}’` #引用符記号に注意!! # $1 の値が "esac" までのそれぞれの場合について動作指定($1 は第一引数) case "$1" in # case 文のはじまり # 第一引数が "start" start) if [ -z "$PID" ] ; then # if 文のはじまり echo "starting qmail." exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail & ##smtp ## 82 と 81 はそれぞれ # id –u qmaild # id –g qmaild で調べられる

/usr/local/bin/tcpserver -v -u 82 -g 81 \ -x /etc/tcp.smtp.cdb \ 0 smtp /var/qmail/bin/qmail-smtpd >/var/log/smtpd_log 2>&1 | \ /var/qmail/bin/splogger smtpd 3 & ##POP /usr/local/bin/tcpserver -v 0 pop3 \ /var/qmail/bin/qmail-popup hostname.domain \ /usr/local/bin/checkpassword \ /var/qmail/bin/qmail-pop3d Maildir >/var/log/pop3d_log 2>&1 | \ /var/qmail/bin/splogger pop3d 3 & else echo "qmail is already started." fi # if 文の終わり ;; # 第一引数が "stop" stop) if [ ! -z "$PID" ] ; then echo "shutting down qmail." killall qmail-send killall tcpserver else echo "qmail is not running." fi ;; # 第一引数が "restart" restart) $0 stop # $0 はこのシェルの実行名 sleep 1 $0 start ;; # 第一引数がその他 *) echo "Usage: `basename $0` {start|stop|restart }" >&2 exit 64 ;; esac # case 文の終わり

Page 33: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 59 -

7.7 sendmail の廃止

FreeBSD のインストール時から動いている sendmail を廃止する。

まず、/etc/rc.conf を Emacs で開き、次の行を挿入する。

sendmail_enable="NONE"

次のコマンドで/var/spool/mqueue の queue を確認する。

# mailq

もし残っていたら

# /usr/sbin/sendmail –q

で queue を全て削除する。

sendmail 関連のバイナリをリネームし、それ以前のファイルを /var/qmail/bin/sendmail

にシンボリックさせる。

# chmod 0 /usr/libexec/sendmail/sendmail

# chmod 0 /usr/sbin/sendmail

# mv /usr/libexec/sendmail/sendmail /usr/libexec/sendmail/sendmail.old

# mv /usr/sbin/sendmail /usr/sbin/sendmail.old

# ln -s /var/qmail/bin/sendmail /usr/libexec/sendmail/sendmail

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

後に、binmail を起動しないようにする。

# chmod 0 /usr/libexec/mail.local

7.8 qmail の起動と終了

qmail を起動するには次のコマンドを実行する。

# /usr/local/etc/rc.d/qmail.sh start

qmail の起動の確認は、次のコマンドで行うことができる。

# ps -ax | grep qmail

上記の実行結果として、次の表示が得られれば正常に起動していると考えてよい。

- 60 -

# ps -ax | grep qmail

805 v0 I 0:00.01 qmail-send

808 v0 I 0:00.01 /usr/local/bin/tcpserver -v 0 pop3 /var/qmail/bin/qma

810 v0 I 0:00.00 splogger qmail

811 v0 I 0:00.00 qmail-lspawn ./Maildir/

812 v0 I 0:00.00 qmail-rspawn

813 v0 I 0:00.00 qmail-clean

814 v0 I 0:00.01 qmail-todo

815 v0 I 0:00.00 qmail-clean

OS ブート時に自動的に qmail が起動するようにするには、/etc/rc.conf を Emacs で開き、

次の行を追加する。

qmail_enable="YES"

qmail を終了するには、次のコマンドを実行する。

# /usr/local/etc/rc.d/qmail.sh stop

qmail の各種設定ファイル(7.6.3 節および 7.6.6 節のファイル)を変更した際には、qmail

を再起動する必要がある。再起動は次のコマンドで行うこともできる。

# /usr/local/etc/rc.d/qmail.sh restart

7.9 qmail の動作確認

7.9.1 smtp の動作確認

サーバマシン上で smtp の動作を確認するためには、次のコマンドを実行する。

# echo to: root | /var/qmail/bin/qmail-inject

上のコマンドを実行し、/var/qmail/alias/Maildir/new 以下にファイルがあれば送信は成功

している。また、/var/log/maillog に次の一行があることでも送信は確認できる。

delivery *: success: *****

同様に root の部分をローカルの他のアカウントや外部のメールアドレス(その場で確認

できるもの、例えば自分の携帯メールアドレス)に変更して、正常に送信が行われるか確

認する。もし、正しく送信ができないようであれば /etc/tcp.smtp の内容を確認せよ。

Page 34: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 61 -

7.9.2 pop3 の動作確認

pop3 サーバの動作確認は telnet で行うことができる。

# telnet localhost 110

Trying ::1...

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

+OK < >

ここまで表示されたら、次のように入力して<Ent>キーを押す

user アカウントユーザ名

ユーザ名が正しければ、「+OK」と表示されるはずである。

さらに次のように入力して<Ent>キーを押す

pass アカウントユーザに対するパスワード

この時、パスワードは画面にそのまま表示される。「+OK」が表示されれば認証は正常に

行われている。telnet を終了させるには次のように入力して<Ent>キーを押す

quit

7.9.3 外部クライアントからの動作確認

Windows などのクライアントでメールソフトを用いてアカウントを設定し、送受信の確

認を行う。下記は Outlook Express での設定手順である。

(1) [ツール]→[アカウント]→[メールタブ]→[追加]→[メール]

(2) 表示名: ※適当で構わない

(3) 電子メールアドレス: ※root 以外のユーザ名(アカウント)@ホスト名.ドメイン名

(4) 受信メール、送信メール: ※サーバコンピュータの IP アドレス

(5) アカウント名、パスワード: ※アカウント名、アカウントのパスワード

設定が終了したら、新規にメールを作成し、自分自身や外部メール(すぐに確認できるメ

ールアドレス)にメールを送信し、また受信できるか確認する。この時、多少時間がかかる

ことがあるので、アカウントのプロパティで、サーバのタイムアウト時間を長めに設定し

ておくとよい。

- 62 -

第 8 章 プリンタの設定

8.1 概要

インストールした FreeBSD 上で作成したデータを印刷するには、プリンタの設定を行う

必要がある。ここではネットワークプリンタの設定を行い、プリンタにデータを出力でき

るようにする。

8.2 UNIX における印刷の仕組み

Windows などでプリンタを使用するには、そのプリンタに応じたドライバが必要となる。

このプリンタドライバは、印刷したいデータをプリンタが理解するコード(ページ記述言語)

に変換するためのプログラムである。プリンタドライバは、プリンタのメーカーによって

異なり、それぞれ独自のコードをプリンタに出力している。

UNIX では、多くの場合そのコードとして PostScript 言語が標準的に使用されており、こ

の言語を理解するプリンタであれば、特にドライバをインストールすることなく、直接印

刷をすることが可能となっている。

8.3 FreeBSD の印刷システム

FreeBSD ではラインプリンタデーモン(lpd)と呼ばれるサービスを使用することでプリン

タと通信を行うことができる。データを印刷する際には、このサービスにデータを渡せば、

自動的に次のような処理が行われる。

・印刷順番(印刷キュー)の管理

・プリンタにおける不具合発生時の待ち

・受け取ったデータのページ記述言語への変換と出力

8.4 プリンタの設定

プリンタの設定は、プリンタの接続方法によって多少異なる。本実験では、プリンタへ

の接続はネットワーク経由で行い、リモートアクセスによって印刷を行う。なお、実験で

使用するプリンタは LP9100(EPSON) であり、このプリンタは PostScript 言語に対応し、

また、プリンタサーバとしての機能を備えている。IP アドレスは「160.194.176.92」、ホス

ト名は「igalabps.is.meisei-u.ac.jp」となっている。

8.4.1 printcap の設定

lpd の設定ファイルは、/etc/printcap にある。このファイルは、プリンタの名前、接続方

法、印刷データの一時保存ディレクトリ、ページ記述言語を変換するプログラムの指定、

そしてファイルサイズの制限などのオプションを設定することができる。

このファイルを Emacs で開き、次の記述を追加する。なお、 終行の行末では必ず改行

すること。2 行目(:sh:mx#0:)以降の行頭は tab かスペースを付けて入力する。

Page 35: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 63 -

igaprn|lp|remote printer|igalabps printer :\

:sh:mx#0:\

:rm=160.194.176.92:rp=raw:\

:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:

この設定は、上から順に次のような意味をもっている。

1 行目: プリンタの名前の設定。”|” で区切ることで別名を設定できる。複数のプリンタ

を設定する場合、一つには ”lp” という別名をつけるべきである。(lp と付けたも

のがデフォルトとなるため)

2 行目: ヘッダページの禁止(:sh:)とページサイズの制限無視(:mx#0:)。

3 行目: リモートプリンタのホスト名(:rm=ホスト名:)とプリントデータの処理方法の指

定(:rp=プリンタ名.処理方法:)。”rp” のプリンタ名はデフォルトで ”lp” となって

いるので、デフォルトのプリンタの場合は記述する必要はない。処理方法は主

に ”raw” と ”text” があり、前者はプリンタに処理を任せ、後者はテキストデー

タとして処理することを設定する。処理方法は記述しなくても正常に動作する

場合もあるが、本実験では記述する必要がある。

4 行目: 一時保存ディレクトリであるスプールディレクトリ(:sd=スプールディレクト

リ:)とエラーログファイルの指定(:lf=エラーログファイル:)。スプールディレク

トリは、存在するかを確認して、存在しなければ新規に作成する必要がある。

8.4.2 プリンタデーモンの起動

本実験ではプリンタデーモンとして、lpd を使用する。OS 起動時に自動的に lpd を起動

させるために、/etc/rc.conf を emacs で開き、 終行に次の 1 行を書き加えて保存し、OS

をリブートする。

lpd_enable="YES"

printcap が正しく設定されていれば、上記により lpd が正常に起動するが、printcap 中に間

違いがあると lpd は起動しないので、念のため、次のコマンドにより lpd が起動しているか

を確認する。

# ps -ax | grep lpd

もし、lpd が起動していなかったら、printcap を見直し、間違いを修正し、次のコマンドに

より lpd を再起動する。

# /usr/sbin/lpd

- 64 -

lpd が起動しているにもかかわらず正しく印刷されない場合は、やはり printcap を見直し、

修正した上で、次のコマンドを実行して、printcap の変更を lpd に反映させる。

# lpc restart all

8.4.3 PostScript 形式への変換

本実験で使用するプリンタはプレーンテキストを送信しても印刷することが可能である。

しかし、それでは見栄えもよくないし、現在のプリンタにはほとんどないが、PostScript

形式だけしか受け付けないプリンタも存在する。そのため、プレーンテキストを PostScript

形式に変換するプログラムである「a2ps-j」を導入する。本実験では、このプログラムを

Ports システムを使ってインストールする。

# cd /usr/ports/japanese/a2ps/

# make

# make install

# rehash

8.4.4 ファイルの印刷

実際に印刷を行うには、次のようなコマンドを実行する。

# a2ps-j ファイル名 | lpr

上のコマンドを実行すると、まず「a2ps-j」でファイルデータが PostScript 形式に変換さ

れ、そして lpr と呼ばれる印刷ジョブを生成するユーティリティを通して lpd に渡される。

本実験では、ファイル名を「printtest.txt」とし、その内容に学籍番号と氏名(日本語)を記

述したファイルを上のコマンドを利用して印刷する。

8.5 プリンタ関連のコマンド

FreeBSD におけるプリンタ関係のコマンドとして、次の四つが主に使用される。

・lpr 印刷の実行

・lpq 印刷状態の確認

・lprm 印刷ジョブの削除

・lpc lpd の制御

これらの詳しい動作やオプションについては、man コマンドで調べることができる。

Page 36: テキスト - 明星大学イス選択画面からブートデバイスを選択できるようになっている場合もある。本実験で使 用するノート PC では、起動画面で

- 65 -

レポート課題

提出:第 4 週の実験終了の 1 週間後の 18:30 までに 27-1904 室に提出のこと。書式・様式は自由。

(1) 【インストール時のパーティション設定】

df -h コマンドを実行し、出力結果を示せ。出力結果について、各自の設定した各パー

ティションの使用状況を調べ、各パーティションのデバイスファイル名、領域サイズ、使

用量、残り量、使用率、マウント位置を調べ、説明せよ。

(2) 【DNS 問合せと名前解決】

次の二つの dig コマンドの実行結果について、どのような順序で名前の問合せが解決さ

れているか説明せよ。

# dig www.meisei-u.ac.jp +trace

# dig www.kantei.go.jp +trace

(3) 【Apache の設定】(下線部は各自のマシン名,ネットワーク名に置き換えること)

(3-1) apache の設定完了後、http://srv0.labnet0.cslab.is.meisei-u.ac.jp と

http://www.labnet0.cslab.is.meisei-u.ac.jp にはどのマシンからもアクセスできる状態になっ

ている。これを、http://srv0.labnet0.cslab.is.meisei-u.ac.jp には srv0 のマシンからのみアク

セスを許可し、他のマシンからのアクセスを拒否するようにするには httpd.conf をどのよう

に変更すればよいか。httpd.conf の変更部分を、タグを含めてすべて記述せよ。

ヒント 1: /usr/local/www/data ディレクトリへのアクセスを制限する。ディレクトリ

のアクセス制限は<Directory>タグである。なお、OptionsFollowsymboliclinks

は削除する。アクセスを拒否するには deny の行にホストのマシン名(ド

メインを含める)またはホストの IP アドレスを指定する。

ヒント 2: http://www.apache.jp/manual/howto/auth.html を読む。

(3-2) apache のすべての設定完了後、http://srv0.labnet0.cslab.is.meisei-u.ac.jp にアク

セスした際に表示されるページ(Document Root と呼ぶ)は /usr/local/www/data の

「index.html.**」となっている。この URL にアクセスしたとき、/root/www/ 以下に作成し

た”index.html” が表示されるようにするにはどうすればよいか。httpd.conf の変更部分を、

タグを含めてすべて記述せよ。

ヒント: 二つ設定した<VirtualHost>タグのどちらかの内容を変更する。

(4) 【全体】

この実習テーマを学習して,どのような専門的/技術的知識が得られたと考えるか。