WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

メールサーバーの構築 : Courier のインストール

さあ、今日からメールサーバーの構築作業に入ります。いよいよ実用的なサーバーになってきて、ワクワクします(^^)。自分でメールサーバーを立てれば、好きな名前のアカウントを作れますし、メールの転送なども自由自在です。その気になれば、送信されてきたメールをスクリプトで自動処理する、なんてこともできます。自宅サーバーを立てる醍醐味のひとつですね。

Linux で使えるメールサーバーとしては qmailPostfix が有名ですが、今回は Courier という別のメールサーバーを使用します。とくに日本ではあまりメジャーではありませんが、後発のソフトだけあって、最近のメール事情を踏まえた高機能で使いやすい設計になっています。SMTP サーバーのみならず POP3IMAP、果ては WebMail サーバーまでひとつのパッケージに含まれており、各種認証機能もすべてのサーバーに標準で内蔵されています。他のメールサーバーではいくつものプログラムを組み合わせないと実現できない環境が、Courier ひとつで実現できるのです。これは使わない手はありません。

また、Courier に関する日本語の資料はあまり多くないので、今後数回の記事はけっこう資料価値が高いかもしれませんよ!(^^;

前提

メールサーバーを動作させるには、ホストが DNS の MX レコードに適切に設定されていなければなりません。LAN 内のみでメールサーバー 1 台で運用するならとくに必要ないはずですが、外部からのメールを受け取る場合は、公開されている DNS サーバーが適切に設定されている必要があります。DNS サーバーの構築に関しては、DNS サーバーの構築を参照してください。

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

それでは早速、Courier のインストールに入りましょう。基本的にはいつもどおり、emerge を使ってインストールします。

ssmtp パッケージの削除

GentooLinux では、ssmtp(送信専用のシンプルな SMTP サーバー)がデフォルトでインストールされるようになっています。複数の SMTP サーバーをインストールをインストールしようとすると Portage にブロックされてしまいますので、ssmtp パッケージをアンインストールします。

emerge --unmerge ssmtp

これで Courier パッケージがインストールできるようになります。

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

Courier パッケージは emerge コマンドで普通にインストールできますが、berkdbgdbmUSEフラグが必須です。以下では明示的に gdbm を指定しています。もしデフォルトのUSEフラグにどちらかが含まれている場合は "USE=gdbm" の部分は不要です。

USE=gdbm emerge courier

おそらくいくつかのコンフィギュレーションファイルが更新されるはずなので、etc-update コマンドで適切にマージしてください。

GentooLinux 以外の環境に関して

GentooLinux 以外の環境でも、もしディストリビューション標準のパッケージが用意されているなら、そちらのほうを使ったほうが楽だと思います。ソースからインストールする場合は、こちらのページでインストール方法が説明されています。基本的には、Configure を使った普通の方法です。

インストール後の設定はほぼ共通だと思います。ただし、設定ファイルの場所が環境ごとに違うかもしれません。GentooLinux ではすべての設定ファイルが "/etc/courier" 以下にインストールされますが、ソースからコンパイルした場合は "/usr/lib/courier/etc" 以下がデフォルトです。

Courier の設定ファイル

Courier の設定ファイルはすべて "/etc/courier" 以下に収められており、多くのファイルで構成されています。

いくつかの設定ファイルは、特定のコマンドを実行してバイナリ形式のデータベースファイル(*.dat)を作成しなければなりません。この場合、Courier が実際に読み込むのはバイナリ形式のファイルのほうです。したがって、テキストファイルを書き換えただけでは設定が反映されません。設定を変更する場合には、まずテキスト形式のファイルを変更し、その後に適切なコマンドを実行する、という手順が必要です。

また、いくつかの(テキスト形式)設定ファイルはディレクトリになっています。設定ファイルがディレクトリだった場合、その中のファイルがすべて結合されてひとつの設定ファイルとして扱われます。おそらく、管理ツールなどを作りやすくするための配慮かと思われます。

以下に主な設定ファイルとその内容、それに設定を反映させるために実行するコマンドをリストアップします。

ファイル名機能実行するコマンド
courierdCourier 全体に関する設定なし
esmtpdSMTP サーバーの設定なし
pop3dPOP3 サーバーの設定なし
imapdIMAP サーバーの設定なし
sqwebmaildWebMail サーバーの設定なし
smtpaccessSMTP リレーの制御makesmtpaccess
aliasesアカウントの別名定義makealiases
localsローカル配信するドメインの指定makealiases
esmtpacceptmailfor.dir受信するドメインの指定makeacceptmailfor
hosteddomainsバーチャルドメインの指定makehosteddomains

これらの設定ファイルの内容は、必要に応じて説明していこうと思います。

基本設定

まずは、基本的なメール配信に関する設定を行います。

System alias の作成

Courier では、rootpostmaster, MAILER-DAEMON などに宛てたメールを受け取るメールアカウントを設定する必要があります。Courierroot ユーザーにはいかなるメールも配信しないので、一般ユーザーのアカウントを指定する必要があります。

アカウントを指定するには、"/etc/courier/aliases/system" を編集します。デフォルトでほとんどの設定は記述してあり、あとは "postmaster:" という行の末尾にメールを受け取るユーザーのログイン名を記述するだけです。たとえば、ログイン名が hokousya だった場合は、以下のように変更します。

postmaster: hokousya

前述のように、変更後に "makealiases" コマンドを実行しなくてはなりません。

中継(SMTP relay)の設定

SMTP の中継を許可するための設定ファイルが "/etc/courier/smtpaccess/default" です。今回は他のホストからのメール送信は SMTP 認証を用いて行う予定なので、ここでは localhost 以外からのメール中継を許可すべきではありません。デフォルトでは 10.n.n.n と 192.168.n.n からのメール中継を許可する設定が記述されているので、これをコメントアウトしておきます。

#10      allow,RELAYCLIENT
#192.168 allow,RELAYCLIENT

ファイルを変更したら、"makesmtpaccess" コマンドを実行します。

ローカルドメインの設定

ローカルユーザーに配信するドメインを指定するファイルが "/etc/courier/locals" です。Courier は、このファイルに記述したドメインへのメールを受信すると、そのアカウント(メールアドレスの @ より前の文字列)と同じログイン名のローカルユーザーを探し、もしあればそのユーザーのメールボックスにメールを配信します。

記述方法は 1 行 1 ドメインでドメイン名を列挙するだけです。ピリオドで始まるドメイン名は、すべてのサブドメインのワイルドカードとして扱われます。今回は、以下のように記述しました。

localhost
sourcewalker.com
.sourcewalker.com

こうすると、"localhost", "sourcewalker.com", そして "sourcewalker.com" のサブドメインすべてのメールがローカルユーザー宛として扱われます。"sourcewalker.com" 自体は ".sourcewalker.com" のワイルドカードに含まれない点に注意が必要ですね。

ファイルを変更したら、"makealiases" コマンドを実行します。

今日のところは、ここで止めておきます。明日は、サーバーごとの設定を行い、ローカルユーザーアカウントでのメールの送受信ができるようにしたいと思います。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles