今回は、pop3 , imap によるメールの受信 を行うための dovecot の設定例です。
CentOS,Scientific Linuxに関しては、
で記載しましたが、Debian(Ubuntu)では、若干、異なるみたいです。
では、早速、簡単に解説してみます。
- 目次
- 履歴
2015年1月13日 Ubuntu14対応
2014年1月22日 サーバー証明書の指定誤り修正
2012年6月4日 初版
dovecotのインストールを行う
まずは、dovecotのインストールからです。
CentOSなどのRedhat系とは、パッケージ名が若干異なる?ようで、
インストールは、通常と同じyumを使いいます。
|
とすればOKです。
imap を使いたい方は、dovecot-imapd を
pop3 を使いたい方は、dovecot-pop3d を
それぞれインストールすることで対応することになっています。
dovecot-commonだけでは、認証機能を利用することができるようになっています。
dovecotの設定を行う
dovecotの設定といっても、やることは簡単です。
- 対応するプロトコルの設定
- メールの置き場所の指定
これだけです。
では、早速、簡単に解説してみます。
特に対応しない場合、 この文字色 の箇所は編集不要となっています。
前準備:サーバー証明書と秘密鍵の作成
Dovecotで POP3s,IMAPs ( STARTTLS or SSL/TLS ) に対応 する場合は、
SSLサーバー証明書ファイル 、SSLサーバー秘密鍵ファイル が必要になります。
そのSSLサーバー証明書などは、通常、会社などの公的な場面で管理・運営する場合は、公的なパブリック認証局から有料にて発行してもらうべきでしょう。
ただ、ここでは、サーバー証明書などを使った暗号化を利用したよりセキュアなDovecotの運用について解説したいだけですので、
プライベート認証局を自前で用意(もちろん無料)し、サーバー証明書を発行し使用するもとします。
大きな作成の流れは、以下のとおりです。
また、これらの作成手順は、プライベート認証局の証明書、サーバー証明書、クライアント証明書の作成方法について にて詳しく解説していますので、そちらを参照してください。
- OpenSSLをインストールします。→ 参照: OpenSSLのインストールする
- プライベート認証局の証明書を作成します。→ 参照: 認証局証明書を作成する
- サーバー証明書、秘密鍵を作成します。→ 参照: サーバー証明書を作成する。
ここでは、先の証明書作成解説記事 にて作成した PEM形式のものと利用するものとして、
以下のファイル名を使用して解説します。
(サーバー証明書作成時に、 Common Name に mail.exmaple.com を指定して作成したものとします。)
- SSLサーバー証明書ファイル ( ここで指定する証明書はPEM形式のものです ) :
ここでは、/etc/ssl/CA/certs/mail.example.com.pem を使用するものとします。
- SSLサーバー秘密鍵ファイル :
ここでは、/etc/ssl/CA/private/mail.example.com.key を使用するものとします。
各ディストリビューションのdovecot設定例
Debian 6, Ubuntu 12 の場合、
dovecot の設定ファイルは、/etc/dovecot/dovecot.conf に集約されていますので、それを編集すれば良いです。
|
Debian 7, Ubuntu 14 の場合、
dovecot のSSL関連設定ファイルは、/etc/dovecot/conf.d/10-ssl.conf になります。
旧バージョンは1つの設定ファイルでしたが、各機能毎に設定するファイルが異なることに注意してください。
|
また、上記の旧バージョンに合わせて、使用するプロトコルの設定は、/etc/dovecot/conf.d/10-master.conf になります。
|
さらに、メールボックスの設定は、/etc/dovecot/conf.d/10-mail.conf になります。
|
(おまけ)メールボックスの設定例解説
備忘録もかねて、少しだけ、メールボックスの設定について、詳細を解説しておきます。
よくある設定例として、dovecotが古いバージョンであれば、
|
あるいは、最近のバージョンでは、以下のように設定があります。
|
これだと、sendmail , postfix などのデフォルトのメールボックス設定では受信できないんことがあります。
上記のように INBOX の指定をすることで一般的な /var/mail 配下のメールを受信できるようになります。
ただし、1通もメールが無い状態では、ユーザのメールボックスとなるファイルさえないので、以下のエラーが/var/log/maillogに出力されます。
|
ユーザを追加した場合やdovecotの設定を変更した時は、必ず、テストメールを送信しておきましょう。そうすることで、確認もできますし、この問題も回避できます。
mailコマンドでも良いので、ちゃんと受信できるかテストメールを送っておきましょうね。
|
こんな感じでコマンドラインから送信できます。(:改行(Enter)の意味)
(おまけ)IPv6への対応の設定例解説
Debian 6(Ubuntu 12) あるいは CentOS 6では、デフォルトではIPv4に対応しています。
(Debian 7(Ubuntu 14) あるいは CentOS 7では、デフォルトではIPv4, IPv6 に対応しています。)
もし、IPv6への対応を行いたい場合は、
/etc/dovecot/dovecot.conf (CentoOS 6 では、/etc/dovecot.conf) を以下のように編集します。
|
[::]の設定でIPv6への対応のみということになります。
編集を終えたら、Dovecot を再起動し、Listen状態を確認したときに
|
|
このように
httpのポート80が、0.0.0.0:80 のようにIPv4 にのみ対応してポートをオープンしているのに対して
pop3のポート110が、:::110 のようにIPv6 に対応してポートをオープンしていることに注意してください。(IPv4にも対応しています)
IPv4への対応のみに設定の場合に、同じようにListen状態を確認してみると以下のように出力されるはずです。
|
dovecotの起動してみる
ここまでの設定を終えたら、dovecotの起動(再読み込み)してみましょう。
前準備としてポートを開く
iptableなどでメールの受信ポート(例えば 110など)を閉じている場合は、
PCなどからメール受信しようと思ってもできないですから、
まずは、使用するポートを開いておきます。
以下は、iptableによるポートの解放例です。
(本当に利用するポートだけ開くようにしましょう。)
|
dovecotを起動(再読み込み)する
最後にdovecotの起動です。これは、いつもパターンです。
|
Debian 7 あるいは Ubuntuでは、service コマンドを使うのが一般的です。
|
これでOK。
Debian(ubuntu)では、インストールした時点でシステム起動時にdovecotを起動するように設定してあります。
一応、確認だけはしておきましょう。
|
もし、上記が全てoffになっているようなら、onに設定しておきましょう。
|
これでOKです。
|
/etc/init.d/ からの起動は、さすがに古くなりつつあります。 今は、serviceでの起動が主流ですし、さらには、Ubuntu14では、Upstartへ移行していますから、
|
そのため、Ubuntu14では、sysv-rc-conf は使えません。 /etc/init/dovecot.conf にて runlevel を設定することになります。
|
メールクライアントからメールを受信してみる
メールの受信確認には、メールクライアントソフトを使って確認するのが間違いが少ないでしょう。
ここでは、フリーメールクライアントソフトのThunderBirdを使ってみます。
ThunderBirdでメールを受信してみる
メニューの[ ツール ] – [ アカウント設定 ]でアカウント設定画面を開きます。
アカウント設定画面から、テストに用いるメールアカウントの [ サーバー設定 ] を選択します。
- サーバー名:
正しいメールサーバー名あるいはIPアドレスを設定します。
ここでは、例としてmail.example.comを入力しています。 - ユーザ名:
メールの受信ユーザ名になります。
ここでは、例としてhogeを入力しています。 - ポート番号:
- pop3 の場合: 通常以下のようなポート番号の設定になります。
接続の保護: なし の場合は、110を設定します。
接続の保護: STARTTLS の場合は、110を設定します。
接続の保護: SSL/TLS の場合は、995を設定します。 - imap の場合: 通常以下のようなポート番号の設定になります。
接続の保護: なし の場合は、143を設定します。
接続の保護: STARTTLS の場合は、143を設定します。
接続の保護: SSL/TLS の場合は、993を設定します。
- pop3 の場合: 通常以下のようなポート番号の設定になります。
- 接続の保護:
ここでは、先のポート番号時と同様、なし、STARTTLS、SSL/TLSのいずれかを選択します。
- 認証方式:
ここでは、通常のパスワード認識を選択します。
編集を終えたら、OKボタンをクリックして変更内容を保存したら、適当な外部サーバーから(例えばYahoo!のフリーメールなど)ここで設定したメールアドレス宛てにメールを送信してみましょう。
メールクライアントでメールが受信できればOKです。
サーバー証明書に関する警告メッセージについて
接続の保護が、STARTTLS、SSL/TLSの場合、初回は、以下のようなメッセージが表示され、受信できないかもしれません。
このメッセージは、「証明書は、勝手に自前で作成した証明書なので、信用性がありません。」という趣旨のものです。
とりあえず、セキュリティ例外をクリックすると以降、メール送信できるようになります。
更に、その上のチェックボックスにチェックを入れておけば、それ以降、この画面は表示されません。
または、あらかじめ
プライベート認証局の証明書( こちらの記事 の例では、
CentOS : /etc/pki/CA/cacert.pem, Debian Ubuntu : /etc/ssl/CA/cacert.pem )を
あらかじめメールクライアントツールにインストールしておけば、上記のようなメッセージは表示されません。
以下は、ThunderBirdでの例です。先のプライベート認証局の証明書をダウンロード済として解説します。
- メニュー [ツール] – [オプション] をクリックします。
- オプション画面上の[詳細]をクリック、[証明書]タブを選択します。
[証明書を表示]ボタンをクリックします。
- 証明書マネージャ画面上の[認証局証明書]タブを選択します。
[インポート]ボタンをクリックし、先にダウンロードしたプライベート認証局の証明書を指定しインポートすれば OK です。
これで、インストールしたプライベート認証局で作成・発行したサーバー証明書を自動的に許容します。
ただし、先の記事 でサーバー証明書を作成する際に Common Name で指定した
サーバー名と一致していることが前提になります。
例えば、先の記事 のように www.exmple.com と指定したにもかかわらず、
メールサーバーのIPアドレスでメール受信しようとした場合は、上記と同様、警告メッセージが表示されることがありますので、十分、気をつけましょう。
受信できない場合のチェックポイント
もし、受信できない場合は、まず、ポートの確認をしてみましょう。
クライアント側で、telnetで 先のメールクライアントの設定で指定したポート番号( 以下の例は pop3のポート 110 )を確認してみましょう。
|
上記の例は、dovecotのIPアドレスが11.22.33.44だったとして記述しています。
これがOKの場合は、mail_location の設定に誤りがあるか、メールクライアントの設定に誤りがあるかも知れません。
もう一度、dovecot の設定、およびメールクライアントの設定を確認してみましょう。
これがNGの場合は、ポートがオープンされていないか、dovecotが起動していないでしょう。
ポートが開いているか確認するには、サーバー側で、iptablesを使うと良いでしょう。
|
tcp dpt:pop3の状態を確認します。ここでは、ACCEPTになっていますから、ポートはオープンされていることになります。
もし、開いていないようなら、pop3のポート(デフォルト110)を開くようにしましょう。
|
こんな感じです。
メール受信側は、メール送信以上に簡単でした。
STARTTLS とSSL/TLSとでは、メールの送信と同様に、SSL/TLSがよりセキュアです。
会社などのビジネスメールは、この程度のセキュリティは設定しておくできでしょうね。
もし、まだ設定していないなら、設定しましょうね。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :