特集1

卒業製作(研究)を指導して<6>

インターネットサーバ構築

―LinuxとWindowsNTserverの連携―

ポリテクカレッジ香川 藤田 紀勝

(香川職業能力開発短期大学校)

1.はじめに

 コンピュータが普及するに伴い,コンピュータネットワークの時代が訪れた。多くの企業がコンピュータネットワークを導入し,自社ネットワークをインターネットに接続している。本短大内においても業務にインターネットを使用している。会議の予定などは,インターネット経由で各職員に伝えられる。業務は,mailを見ることから始まるのである。これは,特別な例ではなくほとんどの企業がこのような形で業務を進めている。しかし多くの企業は,業務でインターネットを導入しながら社内でサーバを管理せず他の会社に委託している。こういったアウトソーシングの会社が多く設立されている。時代の要求としてインターネットサーバ管理者が必要となっているのである。

 そこで卒業製作ではインターネットサーバの構築を行い,将来インターネットサーバの管理者となれる人材を育成することを目的とした。今回ネームサーバ,メールサーバはLinuxを用い,データベースサーバはWindowsNTserver(以下「NT」という)を用いて構築を行った。データベースサーバのサービスとしてAccessによりデータベースを作成し,IDC(Internet Database Connector)によりWeb上で検索を行えるシステムの構築を行った。

 本稿では,インターネットサーバの完成に至る経緯と技術面を中心に報告する。

2.卒業製作の流れ

 インターネットの利用が広がる中で,フリーソフトが一層身近な存在となっている。しかし一般の人々は,フリーソフトと聞くと機能が乏しく,商業用のソフトに劣るため使う気にはなれないと思う人が多い。これは,間違いである。そもそもインターネットという巨大なネットワークを支えているのがBIND(Berkely Internet Name Domain)やSendmailといった数々のフリーソフトなのである。直接,間接を問わずこれらのソフトは,すでに私たちのコンピューティングに欠かせない存在となっている。大企業であってもフリーOSであるLinuxを用いてインターネットサーバを構築しているところも存在する。卒業製作をすべてフリーソフトで構築することも可能であるが,ネットワークをUNIX系OSとNTとを連携し管理しているところが多く存在するため,データベースサーバの1台はNTを用いた。

 卒業製作は3つのグループに分け,それぞれが役割分担し,インターネットサーバの構築を行う。図1に卒業製作の役割分担を示す。サポート部門としてNamazuを用いて全文検索システムの構築を行った。ここでインターネット構築時のトラブルのサポートを行うようにした。またインターネットサーバは,NTとLinuxが連携して運用を行う。

3.全文検索ソフトNamazuについて

 本格的な情報化社会に入り,情報量は増加の一途をたどっている。必要な情報を簡単に素早く手に入れる手段として「全文検索システム」の存在が注目されている。全文検索システムとは,検索したい語句が含まれている文書を瞬時に表示するシステムである。Namazuは,何十万件という文書ファイルであっても1秒未満の検索時間で結果が出力される。また比較的大規模な検索システムをNamazuを用いて構築が行える。現在報告されているNamazuを用いた検索システムとしては,対象文書が最大37万件である。今回は,Windows95上のプラットホームで,ローカル環境の全文検索システムの構築を行った。

 次に現在主流となっているリレーショナル型データベース(以下「RDBMS」という)との相違について記述する。RDBMSではキーワード入力により正確なデータが得られるが,システムを構築する際キーワードや要約を加える必要があり,データ量が膨大になるに従い労力が必要となる。一方,全文検索システムは,システムを構築するのは容易で検索用のディレクトリに検索したいファイルを保存しておけばよい。また全文検索システムは,検索速度も高速で大規模向けのデータベースシステムである。図2に検索速度の比較を示す。

 RDBMSでは文書群が増加するに従い検索速度も遅くなる。理由は検索する際,すべての文書にアクセスするためである。全文検索システムでは語句がindex化されているため,すべての文書にアクセスする必要はなく,文書数の増加に対して対数的に増加する。なぜ対数的に増加するかは,国語辞書と広辞苑で調べる時間がそれほど変わらないことから理解できる。短所としては,入力した語句が含まれるすべての文書を表示するため無関係な文書も表示することになり,絞り込みなどにより検索を行わなければならない点である。

 構築の容易さと検索速度が必要であれば,全文検索システムが適している。このような特徴から全文検索システムが注目されている。MacOS version 8.5では,全文検索ソフト(sherlock)が標準でインストールされ,これがMacOSの1つの特徴となっている。残念ながらWindows95上では,全文検索ソフトは標準でインストールされていないため別途インストールをし直さなければならない。参考文献の1)の付録CDにソフトが添付されている。本卒業製作では,このCD-ROMを使用した。

4.Access97を用いたWebサイトデータベースサーバ

 インターネットとデータベースは,これまで個別に利用されてきた。しかし,インターネットとデータベースを連携して利用する時代がやってきている。データベースサーバは,OSとしてNTを,データベースソフトとしてAccess97を用いた。 NTは,IIS(Internet Information Server)を用いることによりWebサーバとして利用することが可能である。IISはNT用のWebサーバソフトである。Access97は,NTを用いることによりインターネットとの連携が可能となる。その方法として,静的な方法と動的な方法とがある。

 静的な方法とは,事前にデータベースのテーブルやクエリーの実行を出力しておき,結果を含むHTMLファイルをWebサーバに配置する形のシステムである。動的な方法とは,ユーザーのリクエストに応じて,データベースからデータをWebに出力できるようにするシステムである。卒業製作では,動的なHTMLを実現するためにIDCを用いた。IDCとは,Microsoft社のWebサーバプログラムに搭載されているデータベースとの連係機能である。IDCの仕組みを図3に示す。

 IDCは,idcファイルとhtxファイルの2種類が必要である。idcファイルは,IDCが行うデータベース処理の内容が記述されている。htxファイルは,検索結果を表示するためのテンプレートである。ODBCは,アプリケーションとデータベースの接続を行う。クライアントのWebブラウザからデータベースサーバに問い合わせがあった場合の処理の流れを記述する。クライアントは,Webブラウザから検索要求を出す。これにより検索要求は,idcファイルに記述される。データベースとの接続は,ODBCにより行われる。検索結果はhtxファイルを用いてWebブラウザに表示される。

 データベースサーバのサービスとして,社員の検索を行えるようにした。図4に検索条件の入力画面を示す。社員コードのテキストボックスに検索可能なコードで入力することにより,入力コードと一致するデータを抽出することができる。検索結果を図5に示す。

 IDCの問題点として検索後ハイパーリンクによりジャンプを行うことができないことがあげられる。よって,検索により抽出されたデータから,Access以外のアプリケーションへジャンプを行うことが不可能である。この点が I DCの限界点である。検索後ハイパーリンクが必要な場合,CGI(Common Gateway Interface)などを用いなければならない。

5.Linuxを用いたインターネットサーバ構築

5.1 ネットワークの設計

 本卒業製作では,既存のLANをグローバルネットワークと見立て,インターネットサーバの構築を行う。構築したインターネットサーバによって,ホームページの閲覧とメールの送受信(LAN内)が行える。まず最初にサーバ機の仕様を表1に示す。

 サーバOSは,フリーUNIXであるLinuxを用いた。Linuxは,安定性,動作の快適性,マルチタスク能力,操作性を兼ね備えたOSである。さまざまな企業がLinuxを用いてインターネットサーバの構築を行っている。Linuxの配布パッケージとしてPlamo Linuxを使用した。Plamo Linuxは,日本で開発された配布パッケージであるため日本語入力がインストール直後から行える。またサーバ機に使用したソフトは,すべてPlamo Linuxに収録されている。Plamo Linuxは,月刊SoftwareDesignの付録CD(1998年12月号)を使用した。

 図6にネットワークの構成を示す。まず既存LANの構成について記述する。既存のLANのIPアドレスは192.168.xxx.xxxと190.50.1.xxx(このIPアドレスで外部に出た場合,同じIPが2つ存在することになり,不具合が生じる。このアドレスを192.168.xxx.xxx(ローカルアドレス)に直しているところがある)である。本短大は,JPNIC(日本ネットワークインフォメーションセンター)よりクラスCアドレスを与えられている。クラスCアドレスは254台のコンピュータを認識することが可能である。現在,当短大には,約200台のコンピュータがLANならびにインターネットと接続されている。しかしながら,本短大内のすべてのコンピュータにグローバルアドレスを割り振ることはせず,外部との接続時にPROXYサーバ経由とIPmasquerade経由によりインターネット接続を行っている。

 次に今回構築を行ったインターネットサーバの構成について記述する。本卒業製作で構築したインターネットサーバは,ネームサーバとメールサーバである。異なったネットワークの190.50.1.xxxと195.50.1.xxxをつなぐゲートウェイは,Linux上で2枚のネットワークカードを認識させることにより構築される。内部ネットワークのWindows95(195.50.1.150)とWindows98(195.50.1.151)は,IPmasquerade(自動的にIPの付け替えを行う機能)によって,外部ネットワークにアクセスすることが可能となる。以下インターネットサーバの構築方法について述べる。

5.2 Gatewayの構築

 Gatewayとは,外部ネットワークと内部ネットワークとを接続するための機器である。外部ネットワークと内部ネットワークを接続するには,LANカードが2枚必要となる。1つは,外部ネットワークと接続され,もう1つは内部のネットワークに接続される。2枚のLANカードを認識させるためには,kernelパラメータに記述する必要がある。Kernelパラメータは,/etc/lilo.confファイルにLANカードのIRQやI/Oアドレスなどをappend文により記述する。図7にlilo.confの設定ファイルを示す。2枚のLANカードが認識されると,それぞれのLANカードにIPアドレスを割り振り,Gatewayアドレス,経路指定情報を指定する。記述するファイルは,/etc/rc.d/rc.inet 1である。図8にrc.inet 1の設定ファイルを示す。LANカードの認識が行われないのであればGatewayアドレス,経路指定情報などを確認する必要がある。経路指定情報とは,あるノード(端末)から目的地(Destination)に行くための経路を指定した情報のことである。経路指定情報は,route addコマンドにより設定が行える(図8の下から2~5行目)。

 次にファイアーウォールの設定を行う。ファイアーウォールとは,内部ネットワークと外部ネットワークの間に構築され,外部からの侵入行為を防ぐためのGatewayシステムである。ファイアーウォールは,プロトコル,IPアドレス,ドメインネーム,ユーザーアクセスの制限が行える。卒業製作ではLinuxカーネルに実装されている「IP firewall機能」「IPmasquerade機能」を使用し,ファイアーウォールの構築を行った。ファイアーウォールの設定は,外部からの電子メールの受け取りとDNSの問い合わせのみを許可した。またIPmasquerade機能によりサーバ機のアドレスを擬似的に使用し,外部ネットワークとの接続を行った。

5.3 DNSサーバの構築

 DNS(Domain Name Server)は,ドメイン名とIPアドレスを相互変換するサーバである。Plamo Linux 1.3.0にはBINDというネームサーバソフトが組み込まれている。BINDは,ネームサーバソフトとして標準的に使用されている。本卒業製作においてもBIND(Version8.1.2)を使用した。BINDの設定ファイルは,ブートファイル,データファイル,ルートファイルである。ブートファイルは,設定ファイルがどこのディレクトリに格納されているかを示したファイルである。データファイルは,管理するコンピュータのIPアドレス,ホスト名のデータを記述したファイルである。ルートファイルは,上位サーバのIPアドレスとホスト名を記述したファイルである。図9にデータファイルetc/ns/system.zoneを示す。サーバ機を含め現在4台のコンピュータが登録されている。BINDの設定は,nslookupコマンドにより確認できる。

5.4 メールサーバの設定

 Plamo Linuxには,標準でSendmailというメールサーバ用のソフトが付属している。Sendmailは幅広い環境で動作し,現在標準のメールサーバ用ソフトである。卒業製作ではSendmailを用いてメールサーバの構築を行い,LAN内でメールのやり取りを行う。Sendmailは,Sendmail.cfファイルを参照し動作している。しかしながらSendmail.cfファイルは,情報量の多さと可読性の低さから設定が困難である。そのためSendmail.cf生成ソフトCF-3.7Wper2を用いた。CF-3.7Wper2は,Sendmail.defファイルをもとにSendmail.cfファイルの生成を行う。

 メールアカウントは,ログインアカウントを作成することにより作成される。メールアカウントを用いることによりmailの送受信が行われる。

 最後に図10に卒業製作で構築したシステムの全体写真を示す。手前のコンピュータは,インターネットサーバである。奥左がデータベースサーバである。隣2台がクライアント機である。

6.おわりに

 本稿では,インターネットサーバの完成に至る経緯と技術面を中心に報告を行った。卒業製作により,ホームページの閲覧,メールの送受信,データベースへの問い合わせが行えるようになった。クライアントは,IPmasquerade機能によりローカルなアドレスのまま外部に接続することが可能となった。また外部からの不正なログインを防ぐため,ファイアーウォールの構築を行った。

 現在インターネットは,社会に浸透し必要不可欠な存在となっている。学生は,卒業製作を通じインターネット技術を多く知ることができたと実感している。しかしながらインターネットサーバ管理者になるには,セキュリティー面についてさらに勉強しなければならない。今後卒業製作では,数々のハッキングツールを用いてセキュリティーの強化を行いたいと考えている。またさらなる目標としてATM技術,IPv6などの最新技術を導入したいと考えている。

 最後にインターネットサーバの構築にあたり多くの先生方にご助言をいただきました。末尾ながら厚くお礼申し上げます。

〈参考文献〉

1) 馬場肇:日本語全文検索システムの構築と活用,ソフトバンク.

2) 佐藤栄一:Access97 Webサイトデータベース,アクシオ株式会社.

3) 丸山竜也:つなぐ Access97,アプライドナレッジ.

4) 青山円:Access97で作るイントラネット,自由国民社.

5) Matt Welsh,他:RUNNING LINUX,O'REILLY.

6) 小山裕司,他:Linux入門,トッパン.

7) 小山裕司,他:Linuxネットワーク,トッパン.

8) 亀井久和:Sendmail Manual & Reference,秀和システム.

9) 高原尚志:Linux/FreeBSDサーバの全てが分かる本,ソシム.

10) Linuxによるインターネットサーバ構築入門,主婦の友社.

11) Paul Albitz,他:DNS & BIND,O'REILLY.

12) http://his.linux.or.jp/ML/fol.0/maillist.html#04569

13) 高山雅彦:ポリテクカレッジ香川のネットワーク環境の整備,香川職業能力開発短期大学校第11号紀要.

14) Software Design,12月号,技術評論社,1998.