情報環境プラクティス A/B ネットワークコース
ネットワークアプリケーション
概要
この項目では,代表的なネットワークアプリケーションであるメールサーバと WWW サーバの構築法を習得す るのが目的である. メールの配送や転送を行なう MTA/MSP である sendmail の設定と配送されたメールをクライアント側に取り 込むためのプロトコルである POP/IMAP の設定を行ったメールサーバと,apache のパッケージをインストール した WWW サーバを構築する.1
想定するネットワーク
図 1 のルータ兼サーバ機は,sendmail,uw imap 及び apache も起動させ,メールサーバ及び WWW サーバと して機能させる. subnet1: 192.168.1/24 host router & server IF1:192.168.1.1 host IF2:192.168.0.32 subnet2: 192.168.0/24 mail and WWW 図 1: 想定するネットワーク
図 2 のルータ機では,iep.sie.dendai.ac.jp のドメインを管理する DNS を起動しているものとする. router & server router & server router The Internet IF1:192.168.1.1 IF2:192.168.0.32 mail and WWW subnet1: 192.168.1/24 subnet3 IF: 192.168.0.1 DNS subnet2: 192.168.0/24 mail and WWW
host host host host
2
DNS
インターネットでは IP アドレスとドメイン名を対応づけるサービスである DNS (Domain Name System) が利 用されており,必須なサービスとなっている.また,ネットワークアプリケーションの多くは,DNS と連携して 動作する.ここでは,DNS のゾーン情報の取得法及びゾーン情報の構成について説明する.
2.1
host
コマンド
hostコマンドを用いれば,DNS の情報を引き出すことが出来る. ホスト名から IP アドレスを確認する場合は,図 3 の様に, host ホスト名 (サーバ名) と実行し,IP アドレスからホスト名を確認する場合は, host IPアドレス (サーバ名) と実行する.また,ドメイン全体の情報を得る場合は,図 3 の様に, host -l ドメイン名 (サーバ名) と実行する.特に逆引きの場合は, host -l 168.192.in-addr.arpa (サーバ名) の様に,ネットワークアドレスを逆順にしたものに in-addr.arpa を与えて実行する. また,レコードの全てを得るには, host -a ドメイン名 (サーバ名) と実行する.特に逆引きの場合は, host -a 168.192.in-addr.arpa (サーバ名) の様に,ネットワークアドレスを逆順にしたものに in-addr.arpa を与えて実行する. 図 3: host コマンド2.2
DNS
のゾーン情報
まずは,ドメインネーム iep.sie.dendai.ac.jp の正引きのゾーン情報について説明する. $TTL 3600 @ IN SOA core.iep.sie.dendai.ac.jp. root.core.iep.sie.dendai.ac.jp. ( 2005052500 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; MinimumSOA (Start Of Authority)レコードの記述である.ゾーンデータに関連するパラメータが記述されている.
IN NS core.iep.sie.dendai.ac.jp.
NS (Name Server)レコードの記述である.ネームサーバの FQDN(Fully Qualified Domain Name) を指定してい る. core IN A 192.168.0.1 server.t1 IN A 192.168.1.1 IN A 192.168.0.32 A (Address)レコードの記述である.FQDN とアドレスとの対応を指定している.ここでは core ルータ,サーバ 兼ルータを登録している.サーバ兼ルータ機は 2 つのネットワークインタフェースがあるので,2 つの A レコー ドを登録している. www.t1 IN CNAME server.t1
CNAME (Canonical Name)レコードの記述である.別名を登録している.ここでは,サーバ兼ルータ機の別名を wwwとして登録している.
次に,ネットワークアドレス 192.168 の逆引きのゾーン情報について説明する. $TTL 3600 @ IN SOA core.iep.sie.dendai.ac.jp. root.core.iep.sie.dendai.ac.jp. ( 2005052500 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS core.iep.sie.dendai.ac.jp. SOAレコード及び NS レコードは上述と同様である. 1.0 IN PTR core.iep.sie.dendai.ac.jp. 1.1 IN PTR server.t1.iep.sie.dendai.ac.jp. 32.0 IN PTR server.t1.iep.sie.dendai.ac.jp. PTR (Pointer)レコードの記述である.アドレスと FQDN の対応を指定している.ここでは core ルータ,サーバ 兼ルータを登録している.
3
メールサーバの構築
3.1
MX
レコード
DNSのゾーンファイルの A レコードに記述されている情報で,メールの配送を行うことは可能である.しかし, メールアドレスのドメインには,ホスト名が付かないドメイン名,またはそれと異なるドメイン名を利用すること が多い.その様なドメイン名を利用するための仕組みとして,MX (Mail eXchange) レコードが用意されている. MXレコードは,SOA レコードの下に,以下の様に記述されている. t1 IN MX 10 server プリファレンス値の次に来るホスト名は A レコードの情報として記述されなければならない. IN MXに続く値はプリファレンス値と呼ばれる.同じドメインの MX レコードがある場合は,プリファレン ス値が小さいものが優先的に利用される. t1 IN MX 10 server IN MX 20 server2 上の例では,server が故障または保守等でサービスを停止している場合には,次に小さな値を持った server2 が 利用される.3.2
sendmail
の設定
ここでは FreeBSD に標準でインストールされている sendmail[2] を利用し,MTA/MSP とすることとする. sendmailの設定は,/etc/mail に置かれている設定ファイル sendmail.cf で行われる.しかし,sendmail.cf は 非常に設定が難解であるため,近年では m4 と呼ばれるマクロ言語プロセッサで生成できる様になっている.ま た,FreeBSD では Makefile が用意されているので,m4 のコマンドも直接触らずに sendmail.cf を作成すること が出来る. ここでは,MX レコードで設定したドメインのアドレスを受信出来るものとして設定法を説明する. まず,設定ファイル/etc/mail/local-host-names を編集し, t1.iep.sie.dendai.ac.jp と,受信すべきドメインを列挙し記述する. 次に LAN (192.168.1/24) 上から,メールの転送を可能とする設定である.設定ファイル/etc/mail/access.sample を/etc/mail/access とコピーし,これの内容を参考に記述する.ここでは, 192.168.1 RELAY とする. これらの設定が終了後,ディレクトリ/etc/mail 上で make と実行する.実行後,ファイルホスト名.cf で sendmail.cf の内容のファイルが出来上がる.これを, make install とすることで,適切なファイル名に変換し,インストールされる.
3.3
sendmail
の起動
ファイル/etc/rc.conf に下の記述を追加する. sendmail_enable="YES"sendmail enableは sendmail を利用可能にするための記述である.
sendmailを起動するには,
/etc/rc.d/sendmail start
3.4
uw imap
の導入及び設定
ここでは,uw imap[3] を利用し,サーバ機を POP/IMAP サーバとすることとする.uw imap は POP (Post Office Protocol)2/3及び IMAP (Internet Message Access Protocol) を扱うことが出来るパッケージである.特 に IMAP は,サーバでフォルダを一元管理する強力なプロトコルであり,同一のメールサーバを利用していれば, メールの閲覧ソフトや PC を変更した場合に,同一のフォルダの内容や構成が利用出来る. パッケージ形式による導入とソースコードからビルドする中間の手段である ports を利用する方法がある.こ こでは ports を利用したインストール方法を説明する.ports を用いれば,パッケージ導入と同様に,他の依存関 係のあるパッケージの ports によるインストールやそれらのデータベースが自動的に構築される.次に,ports か らのインストール法を示す.ports は/usr/ports/以下にカテゴリ別にディレクトリが配置されている. まず,作業ディレクトリを/usr/ports/mail/cclient とし,そこで,
make WITH SSL AND PLAINTEXT=yes install
と実行する.次に,作業ディレクトリを/usr/ports/mail/imap-uw とし,同様に
make WITH SSL AND PLAINTEXT=yes install
と実行する.
POP及び IMAP を使用するためのサーバの設定は,/etc/inetd.conf を,
pop3 stream tcp nowait root /usr/local/libexec/ipop3d ipop3d imap4 stream tcp nowait root /usr/local/libexec/imapd imapd と変更し,inetd を起動または再起動する.再起動は
/etc/rc.d/inetd restart
3.5
メールの閲覧
自身の PC 上のメール閲覧ソフトを用いて,メールの送信及び閲覧をするには,図 4 の様に以下のパラメータ を与える. メールアドレスは,アカウント名@サブドメイン名を与える.図 4 (a) では,[email protected] を与えている. そして,メールサーバのホスト名または IP アドレスを与える.図 4 (b) では,192.168.1.1 として,LAN 上 のサーバの IP アドレスを与えている.そして,プロトコルである POP または IMAP を選択する. そして,サーバ上のアカウント名を与える.図 4 (c) では,05ie999 を与えている.1 (a) (b) (c) 図 4: メール閲覧ソフトの設定 1パスワードも与えることが出来るが,セキュリティ上は与えない方がよい.4
WWW
サーバの構築
apacheは WWW サーバの実装の一つである.ここでは,apache [4] を利用し,サーバ機を WWW サーバと することとする.4.1
apache
のインストール
今回はパッケージで導入した apache22 を用いることとする. ファイル/etc/rc.conf に以下の記述を追加する. apache22_enable="YES"apache22 enableは apache を利用可能にするための記述である.
apacheを起動するには,
/usr/local/etc/rc.d/apache22 start
と実行する.ちなみに,stop は停止,restart は再起動である.
また,再起動すれば自動的に起動する.インストール直後にルート2にアクセスした場合は,図 5 の表示が得ら
4.2
httpd.conf
の設定
apacheには,幾つかの設定ファイルがある.ports,またはパッケージで導入した場合は,ディレクトリ /usr/local/etc/apache22以下に設定ファイル httpd.conf 等がインストールされる.今回は,設定ファイル httpd.confを主に変更し設定を行うものとする.httpd.conf は設定項目が多岐に亘るため,主なもののみを列挙 する. ServerRoot "/usr/local" httpdの設定ディレクトリの指定である.特に変更する必要はない. Listen 80 Listen 8080 httpdが使用するポートの指定である.複数列挙して使用することもできる. #ServerAdmin [email protected] ServerAdmin [email protected] httpdに問題があった場合に送られるメールのアドレスを指定する.webmaster がいれば, [email protected]とすることもある. #ServerName www.example.com:80 ServerName www.t1.iep.sie.dendai.ac.jp WWWサーバの名前である.DNS で登録されているものを利用する. DocumentRoot /usr/local/www/apache22/data URLのルート3となるドキュメント (コンテンツ) を置くディレクトリである.標準の設定では,そこに置かれた index.htmlがルートとなる. # Language settings Include etc/apache22/extra/httpd-languages.conf 上の行のコメントを外し,言語の設定を有効にする.# User home directories
Include etc/apache22/extra/httpd-userdir.conf
上の行のコメントを外し,ホームディレクトリの設定を有効にする.
以下は,日本語のコンテンツを利用するための設定である.ここでは,ファイル/usr/local/etc/apache22/extra/httpd-languages.confを修正する. # DefaultLanguage nl DefaultLanguage ja 標準言語を日本語とする設定である. #LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW 言語が不明な場合の優先順位を決定する設定である.ここでは,先頭に ja を移動させている.
4.3
ユーザーが提供するコンテンツの配置
ユーザーがコンテンツを提供する場合は,ホームディレクトリにディレクトリ public html を生成する必要が あり,そこに置かれた index.html を基点にコンテンツを配置する.URL は, http://ホスト名/˜ ユーザー名/ となる. 例えば,ユーザー 05ie999,ホームディレクトリ/home/05ie999 であれば,ディレクトリ /home/05ie999/public html に置かれた index.html が,URL http://www.t1.iep.sie.dendai.ac.jp/˜ 05ie999/ となる.演習内容
以下の内容の実習を行うこと.作業内容,結果は適切に記録しておくこと.また,実習に関しては文献 [5],[6] が 参考になる. 今回は各種サーバを図 6 の構成で配置する.DNS は,iep.sie.dndai.ac.jp を管理する DNS として設定は為され ているものとする.今回は,各グループが各 LAN セグメントで動作するメール及び WWW の各サーバを構築す ることとする.具体的には,以下の作業を行うこと. PC router & server PC router & server DNS mail and WWW subnet LAN PC 図 6: 構築するネットワークの構成図 (抜粋) 1. hostコマンドを用いて DNS のゾーン情報の取得を行う. 2. ルータ兼サーバ機上で sendmail の設定変更を行い,動作を確認する.内容としては,グループのサブドメ インによるメールの受信が行える設定や,LAN 上の端末からメールの転送が行える設定を追加する. また,mail コマンドを用いて,他のユーザー間でメールの利用を行う.メールアドレスはアカウント名@サ ブドメイン名とする.mailコマンド4については, mailメールアドレスと実行し, Subject: と表示されるので,メールの件名
を入力する.そして本文の作成に入り,最後の次の行に,.を入力する. 3. ルータ兼サーバ機上で uw-imap のインストールを行う.そして,POP/IMAP サーバの設定を行い,動作を 確認する. また,端末のメール閲覧ソフト用いて,メールの取得及び送信が可能であるか確認する.SMTP 及び POP/IMAP サーバの設定はルータ兼サーバ機を選択する. 4. ルータ兼サーバ機上で apache のインストールを行う.そして,WWW サーバの設定を行い,動作を確認 する. 4文献 [7] を参照すると良い.
各ユーザーへのリンクを張ったインデックスを作成し,URL のルートにはそれを配置する.また,各ユー ザーごとにコンテンツを作成する.コンテンツ作成については,文献 [7] を参照するとよい.
また,自身で作成したコンテンツをブラウザに呼び出し記録する.
参考文献
[1] ISC : “ISC BIND”, http://www.isc.org/sw/bind/ [2] Sendmail.org : “Sendmail”, http://www.sendmail.org/
[3] University of Washington : “IMAP Information Center”, http://www.washington.edu/imap/ [4] The Apache Software Foundation : “The Apache HTTP Server Project”, http://httpd.apache.org/ [5] W.リチャード. スティーヴンス著:「詳解 TCP/IP Vol.1」, ピアソンエデュケーション, ISBN4-89471-320-9,
2000
[6] Douglas Comer著,村井 純,楠本 博之 訳:「TCP/IP によるネットワーク構築 Vol.I 第 4 版」, 共立出版, ISBN4-320-12054-X, 2002