トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

ネットワークアプリケーション

はじめに

この項目では,代表的なネットワークアプリケーションであるメールサーバとWWWサーバの構築法を習得するのが目的である.
メールの配送や転送を行なうMTA/MSPの設定と配送されたメールをクライアント側に取り
込むためのプロトコルであるPOP/IMAP の設定を行ったメールサーバと,apache のパッケージをインストールしたWWWサーバを構築する.

図1 のルータ兼サーバ機は,MTA/MSP,POP/IMAPサーバ 及びapache も起動させ,メールサーバ及びWWWサーバとして機能させる.

図1 想定するネットワーク

図2 のルータ機では,iep.sie.dendai.ac.jp のドメインを管理するDNS を起動しているものとする.

図2 想定するネットワーク(全体)

1. DNS

インターネットではIP アドレスとドメイン名を対応づけるサービスであるDNS (Domain Name System) が利
用されており,必須なサービスとなっている.また,ネットワークアプリケーションの多くは,DNS と連携して
動作する.ここでは,DNS のゾーン情報の取得法及びゾーン情報の構成について説明する.

host コマンド

host コマンドを用いれば,DNS の情報を引き出すことが出来る.
ホスト名からIP アドレスを確認する場合は,

host ホスト名(サーバ名)

と実行し,IP アドレスからホスト名を確認する場合は,

host IP アドレス(サーバ名)

と実行する.

また,MX,SOA,NS等のレコードの情報を得るためには,-tを用いる.

例えば,t0.iep.sie.dendai.ac.jpのMXレコードを得るためには,

host -t MX t1.iep.sie.dendai.ac.jp

と実行する.

測定

以下のコマンドを実行して,結果を記録せよ.

host server.t1.iep.sie.dendai.ac.jp (自身のルータ機の名前)
host 192.168.16.32 (自身のWAN側のアドレス)
host www.t1.iep.sie.dendai.ac.jp
host -t MX t1.iep.sie.dendai.ac.jp
host -t SOA iep.sie.dendai.ac.jp
host -t SOA 168.192.in-addr.arpa
host -t NS iep.sie.dendai.ac.jp
host -t NS 168.192.in-addr.arpa

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 ) ; Minimum

SOA (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 ルータ,サーバ
兼ルータを登録している.

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 が利用される.

2. メールサーバ(MTA/MSP)

ここでは,postfixを利用し,MTA/MSP とすることとする.

ここでは,MX レコードで設定したドメインのアドレスを受信出来るものとして設定法を説明する.

インストール

sudo apt-get update
sudo apt-get install postfix

とし,以下で,

パッケージの設定




                lqqqqqqqqqu Postfix Configuration tqqqqqqqqqk
                x メール設定の一般形式:                     x
                x                                           x
                x     設定なし                              x
                x     インターネットサイト                  x
                x     スマートホスト付きインターネット      x
                x     サテライトシステム                    x
                x     ローカルのみ                          x
                x                                           x
                x                                           x
                x         <了解>           <取消>           x
                x                                           x
                mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

インターネットサイトを選択し,以下では,

パッケージの設定

lqqqqqqqqqqqqqqqqqqqqqqqqqu Postfix Configuration tqqqqqqqqqqqqqqqqqqqqqqqqqk
x "メール名" はドメイン名が指定されていないときに「すべての」メールアドレ   x
x スを "修飾" するのに使われるドメイン名です。これは <root> への/からのメ   x
x ールを含みます: root@example.org で受け付けるようになっていない限り、     x
x root@example.org からのメールをあなたのマシンから送出しないようにしてく   x
x ださい。                                                                  x
x                                                                           x
x この名前はほかのプログラムによっても使われます。これは、メールがそこから  x
x 送出されることになる単一の完全修飾ドメイン名 (FQDN) にすべきです。        x
x                                                                           x
x そのため、たとえばローカルホストのメールアドレスが foo@example.org なら   x
x 、example.org がここでの適切な値となります。                              x
x                                                                           x
x システムメール名:                                                         x
x                                                                           x
x t1.iep.sie.dendai.ac.jp__________________________________________________ x
x                                                                           x
x                    <了解>                      <取消>                     x
x                                                                           x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

システムメール名をMXレコードで設定されているものとする.

また,mail(送信)コマンドが使えるようにmailutilsパッケージをインストールする.

sudo apt-get install mailutils

設定

以下の編集作業を行い,

sudo emacs /etc/postfix/main.cf

以下の行を追加する.

inet_protocols = ipv4

また,以下の編集作業を行い,

sudo emacs /etc/hostname

以下の様な,FQDNのホストネームに変更する.

server.t1.iep.sie.dendai.ac.jp

起動

起動には,以下のコマンドを入力する.

sudo systemctl start postfix

自動起動するためには,以下のコマンドを入力する.

sudo systemctl enable postfix

測定

ルータ兼サーバ機上でpostfix の設定を行い,動作を確認する.内容としては,グループのサブドメインによるメールの受信が行える設定する.
また,mail コマンドを用いて,他のユーザー間でメールの利用を行う.メールアドレスはアカウント名@サブドメイン名とする.

echo "This is test mail." | mail -s "test" test@t1.iep.sie.dendai.ac.jp

上記以外では,mail メールアドレスと実行し, Subject: と表示されるので,メールの件名を入力する.そして本文の作成に入り,最後の次の行に,.を入力し,ctrl-dとすると送信される.

3. メールサーバ(POP/IMAP server)

ここでは,devecot を利用し,サーバ機をPOP/IMAP サーバとすることとする.devecot はPOP (Post
Office Protocol)3 及びIMAP (Internet Message Access Protocol) を扱うことが出来るパッケージである.特にIMAP は,サーバでフォルダを一元管理する強力なプロトコルであり,同一のメールサーバを利用していれば,メールの閲覧ソフトやPC を変更した場合に,同一のフォルダの内容や構成が利用出来る.

/etc/postfix/main.cfの修正

mynetworks にRaspberry Piが所属しているLANのアドレスを指定して接続可能にする.

mynetworks = 127.0.0.0/8 192.168.1.0/24

インストール

pop/imapのパッケージdevecotをインストールする.

sudo apt-get update
sudo apt-get install dovecot-pop3d
sudo apt-get install dovecot-imapd

/etc/dovecot/dovecot.confの修正

初期状態では,平文の認証を受け付けてはくれないのでdisable_plaintext_authの設定を入れて平文を許可する.

disable_plaintext_auth = no

起動

起動には,以下のコマンドを入力する.

sudo systemctl start dovecet

メールの閲覧

自身のPC 上のメール閲覧ソフトを用いて,メールの送信及び閲覧をするには,図3 の様に以下のパラメータを与える.メールアドレスは,アカウント名@サブドメイン名を与える.図3(a)では,

05ie999@t1.iep.sie.dendai.ac.jp

を与えている.
そして,メールサーバのホスト名またはIP アドレスを与える.図3(b) では,192.168.1.1 として,LAN 上のサーバのIP アドレスを与えている.そして,プロトコルであるPOP またはIMAP を選択する.そして,サーバ上のアカウント名を与える.図3(c) では,05ie999 を与えている.

図3 メール閲覧ソフトの設定の例

メール閲覧ソフトでフリーのものとしては,Thunderbird等がある(設定は上記の図とは異なる).

https://www.mozilla.org/ja/thunderbird/

測定

ルータ兼サーバ機上でdevecetのインストールを行う.そして,POP/IMAP サーバの設定を行い,動作を確認する.

また,端末のメール閲覧ソフト用いて,メールの取得及び送信が可能であるか確認する.SMTP及びPOP/IMAPサーバの設定はルータ兼サーバ機を選択する.

4. WEBサーバ

apacheはWWWサーバの実装の一つである.ここでは,apacheを利用し,サーバ機をWWWサーバとすることとする.

apacheのインストール

sudo apt-get update
sudo apt-get install apache2

ユーザーのホームディレクトリにアクセス

ユーザのhomeのpublic_htmlにアクセス出来る様になるmoduleを有効にする.

sudo a2enmod userdir 

起動

起動には,以下のコマンドを入力する.

sudo systemctl start apache2

自動起動するためには,以下のコマンドを入力する.

sudo systemctl enable apache2

ユーザーが提供するコンテンツの配置

apache2を用いたwebサーバのデフォルトのルートディレクトリは/var/www/html/である.URLは,以下でアクセスする.

http://www.t1.iep.sie.dendai.ac.jp/

ユーザーがコンテンツを提供する場合は,ホームディレクトリにディレクトリpublic_html を生成する必要が
あり,そこに置かれたindex.html を基点にコンテンツを配置する.URL は,

http://ホスト名/~ユーザー名/

となる.
例えば,ユーザー15jk999,ホームディレクトリ/home/15jk999 であれば,ディレクトリ
/home/15jp999/public_html
に置かれたindex.html が,URL

http://www.t1.iep.sie.dendai.ac.jp/~15jk999/

となる.

測定(コンテンツ作成)

ルータ兼サーバ機上でapache のインストールを行う.そして,WWW サーバの設定を行い,動作を確認する.

各ユーザーへのリンクを張ったインデックスを作成し,URL のルートにはそれを配置する.また,各ユーザーごとにコンテンツを作成する.
また,自身で作成したコンテンツをブラウザに呼び出し記録する.

大島先生のページ