dovecot によるセキュア(安全な)メールサーバ構築

dovecot?

 Fedora Core 4 で標準搭載されているメール受信サーバ、つまり pop3 pop3s imap imaps メール受信サーバ(MRA=Mail Retrieval Agent=メール配送エージェント)です。  Fedora Core 4 でメールを扱うには dovecot を使う方法と Cyrus-imapd を用いる方法、ソースから qpopper をセットアップする方法があります。せっかく標準搭載されている dovecot なので、使いこなしてみましょ!というのがこのページの趣旨。

 Fedora Core 3 だと、ん〜面倒だけど Cyrus-imapd 使うかな〜それとも qpopper インストールするかなぁ、と悩むところでした。けれども dovecot はセットアップが簡単なので速攻使うことが出来ます。

 ところで、dovecot ってなんて発音するんですか?ご存じの方、教えてください……。

なんで Fedora Core 4 では dovecot なの?

 これまで Fedora Core 3 で環境を構築された方は、おそらく Cyrus-imapd の設定を経験されたと思います。Cyrus 上では「メール用アカウント」が「linux サーバ用のアカウント」と独立して扱うことが出来ます。Maildir 形式でファイルが保存されるので、メールボックスが破損しずらくなっています(対 mbox 形式)。でも、設定がちょっと独特で面倒な気がしませんでしたか?機能的には申し分ないのですけど……。

 Cyrus-imapd のメリットは逆にデメリットにもなります。多くの linux システムでは、linux 用のログインアカウント=メールアカウントという形式が見られました。まだ日本でも Slackware Linux が全盛だった頃のお話です。つまり、古くから linux に親しんでるユーザにとっては Cyrus-imapd が優れていると分かっていても、なかなかとっつき辛かったのではないでしょうか。

 そんな中に登場したのが dovecot です。dovecot は Cyrus-imapd のようなセキュリティを確立しつつ、旧来との互換性(mbox形式のメールを読み取る)を保っています。

 蛇足ですが、dovecot の登場により qpopper の導入を行う必要は無くなるでしょう。機能としては dovecot で申し分ありません。もし qpopper を用いた POP before SMTP を設定する場合・APOP 認証でいきえたい!という場合には、もちろん qpopper の利用をされてもいいと思います(POP before SMTP にしても、sendmail の SASL 認証=SMTP 認証を用いるようにすることで、不要となるでしょう)。

 とりあえず、今 Fedora Core 4 からは dovecot を用いるという選択肢が増えました。

セットアップ

インストールされているか確認する

 次のコマンドを入力することで、dovecot がセットアップされているかどうか確認可能です。

$ rpm -q dovecot
dovecot-0.99.14-4.fc4

 セットアップされていれば、上記のようにバージョン番号が表示されます。

パッケージ dovecotw はインストールされていません

 なんて表示された場合はセットアップが必要です。

# yum install dovecot

 こちらの yum コマンドを使ってセットアップしておけば下準備 OK です。

設定ファイルの調整 /etc/dovecot.conf

 dovecot の設定ファイルは【 /etc/dovecot.conf 】です。

 まず、7行目と8行目の確認です。

#  imap imaps pop3 pop3s
protocols = imap imaps pop3 pop3s

 この『 protocols 』がどのようなプロトコルを使用するか決めることができます。imap なんて使わない pop3 だけでいいや、という場合には

protocols = pop3

のように書き換えることも出来ます。良く分からないや、という場合はとりあえずそのままでもOKです。

 さて、このままだと、

# /sbin/service dovecot start
Dovecot Imap を起動中:                                     [失敗]

 こんな感じでサービスの起動を行うことが出来ません……。

 SELinux が有効だと使えないようです。strict, targeted どちらのポリシーでも起動させることは出来ません。SELinux を無効にしてから起動出来ます。

 とりあえず手っ取り早く SELinux を無効にするには

# /usr/sbin/setenforce 0

 です。/etc/selinux/config ファイルも 【 SELINUX=disabled 】にしておきましょう。

 あとは、起動をテストしてみます。

# /sbin/service dovecot start
Dovecot Imap を起動中:                                     [  OK  ]

 ポートの応答状況も確認できます。【 QUIT 】 で抜けることが出来ます。

# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK dovecot ready.
QUIT
+OK Logging out
Connection closed by foreign host.

 imap のチェックはポート 143 番です。【 数字 LOGOUT 】で抜けることができます。

# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
* OK dovecot ready.
1 LOGOUT
* BYE Logging out
1 OK Logout completed.
Connection closed by foreign host.

 あとは、実際にメーラーから受信して動作確認です。

 えぇ、これだけで良いんです、シンプルですね……。MTA も sendmail の最低限の設定さえしておけば、直ぐに利用可能です。SELinux では適切なポリシーを自分で考えなくてはいけないので……(沈黙)……えー、時間があるときにでも取り組みます。。

自動起動設定

 サーバの起動時に dovecot も自動起動するように調整が必要です。

 次の手順で有効化・確認を行います。

# /sbin/chkconfig dovecot on

 chkconfig を使って有効にしました。有効になっているかどうかは --list オプションをつけます。

# /sbin/chkconfig --list dovecot
dovecot         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 このようにランレベル3(普通サーバとして使うとき),5(X Windowsが動いてるとき)いずれも動作することが確認できます。

その他の dovecot を運用するために必要な知識。

初期状態のメール保存ディレクトリ

 初期状態で dovecot が認識するメール保存ディレクトリは【 /var/mail 】です。

 初めから組み込まれている MTA は sendmail ですが、sendmail がローカル配送するファイルが "/var/mail/ユーザ名" ファイルです。たとえば akane アカウントにメールを送ると、メールが保存されるのは /var/mail/akane ファイルになります。dovecot はユーザ毎に分かれたファイルを直接参照させています。

pop3, pop3s

 標準で pop3, pop3s プロトコルに対応しています。pop3, pop3s 共に、ユーザ確認パスワードは linux のアカウントと同じものです。パスワードの変更を行いたいときは、シェル上で passwd コマンドを実行して変更をかけます。

IMAP

 特に設定しなくても、速攻利用可能です。/var/mail(/var/spool/mail)以下の mbox 形式のファイルを読んでいますが、ちゃんと IMAP でリアルタイムにファイルを取得できます。

IMAPS

 Becky を使って IMAPS でのログインを行う場合は、メールボックスの設定の【詳細】タブ(見出し)にある"SSL/TLS関連"の項目にある【証明書を検証しない(S)】にチェックを入れておく必要があります。

 チェックさえ入れておけば、あとは普通に IMAPS による通信が可能です。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Fri, 07 Mar 2008 16:18:03 JST (3428d)