メールサーバーの構築 : Courier のインストール
さあ、今日からメールサーバーの構築作業に入ります。いよいよ実用的なサーバーになってきて、ワクワクします(^^)。自分でメールサーバーを立てれば、好きな名前のアカウントを作れますし、メールの転送なども自由自在です。その気になれば、送信されてきたメールをスクリプトで自動処理する、なんてこともできます。自宅サーバーを立てる醍醐味のひとつですね。
Linux で使えるメールサーバーとしては qmail や Postfix が有名ですが、今回は Courier という別のメールサーバーを使用します。とくに日本ではあまりメジャーではありませんが、後発のソフトだけあって、最近のメール事情を踏まえた高機能で使いやすい設計になっています。SMTP サーバーのみならず POP3 や IMAP、果ては 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 コマンドで普通にインストールできますが、berkdb か gdbm のUSEフラグが必須です。以下では明示的に 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 が実際に読み込むのはバイナリ形式のファイルのほうです。したがって、テキストファイルを書き換えただけでは設定が反映されません。設定を変更する場合には、まずテキスト形式のファイルを変更し、その後に適切なコマンドを実行する、という手順が必要です。
また、いくつかの(テキスト形式)設定ファイルはディレクトリになっています。設定ファイルがディレクトリだった場合、その中のファイルがすべて結合されてひとつの設定ファイルとして扱われます。おそらく、管理ツールなどを作りやすくするための配慮かと思われます。
以下に主な設定ファイルとその内容、それに設定を反映させるために実行するコマンドをリストアップします。
ファイル名 | 機能 | 実行するコマンド |
---|---|---|
courierd | Courier 全体に関する設定 | なし |
esmtpd | SMTP サーバーの設定 | なし |
pop3d | POP3 サーバーの設定 | なし |
imapd | IMAP サーバーの設定 | なし |
sqwebmaild | WebMail サーバーの設定 | なし |
smtpaccess | SMTP リレーの制御 | makesmtpaccess |
aliases | アカウントの別名定義 | makealiases |
locals | ローカル配信するドメインの指定 | makealiases |
esmtpacceptmailfor.dir | 受信するドメインの指定 | makeacceptmailfor |
hosteddomains | バーチャルドメインの指定 | makehosteddomains |
これらの設定ファイルの内容は、必要に応じて説明していこうと思います。
基本設定
まずは、基本的なメール配信に関する設定を行います。
System alias の作成
Courier では、root や postmaster, MAILER-DAEMON などに宛てたメールを受け取るメールアカウントを設定する必要があります。Courier は root ユーザーにはいかなるメールも配信しないので、一般ユーザーのアカウントを指定する必要があります。
アカウントを指定するには、"/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" コマンドを実行します。
今日のところは、ここで止めておきます。明日は、サーバーごとの設定を行い、ローカルユーザーアカウントでのメールの送受信ができるようにしたいと思います。
詳しくはこちらの記事をどうぞ!
この記事にコメントする