popサーバ、dovecot2のインストール

popサーバを構築する。

LAN内にゆるーく作るので、とにかく手軽に。

手軽にというのはたとえば、imapとか要らない。pop3でいい。ただネットワーク内をパスワードが平文で流れるのは勘弁。
わざわざMaildirにする必要もなく、mbox形式で結構。
FreeBSD handbook 29.2.4.1章を眺めて、dovecot2を選んだ。

http://en.wikipedia.org/wiki/Dovecot_%28software%29


インストールと設定


インストールはportsで、mail/dovecot2から。設定はそのままで。
後述するが、make cleanしないこと!


設定ファイルは下記だが。

/usr/local/etc/dovecot

READMEがポツリ。

Configuration files go to this directory. See example configuration files in
/usr/local/share/doc/dovecot/example-config/

ということでまるごとコピー。

# cd /usr/local/share/doc/dovecot/example-config/
# cp ./dovecot.conf /usr/local/etc/dovecot/
# cp -R ./conf.d /usr/local/etc/dovecot/


設定ファイルの書き換え。
受け付けるプロトコルの設定。dovecot.confにて。
pop3だけにした。

# Protocols we want to be serving.
#protocols = imap pop3 lmtp
protocols = pop3

メールボックスの場所

http://wiki2.dovecot.org/MailLocation のTypical settingsに沿う。
mboxで結構。

vi conf.d/10-mail.conf

以下を追加
#mail_location =
mail_location = mbox:~/mail:INBOX=/var/mail/%u


SSL設定

LAN内なので、オレオレ証明書で十分。

http://wiki2.dovecot.org/SSL/DovecotConfiguration
http://wiki2.dovecot.org/SSL/CertificateCreation
上記を読むと、dovecot2にはオレオレ証明書を作ってくれるスクリプト、mkcert.shがついてくるそうな。
これは便利。
しかしこのスクリプトはインストールされない。make cleanしてはいけないというのはそのため。もちろん、あとからでも取り出せるけど。

ただ、デフォルトでは/etc/sslの下に証明書を書き込むようだ。
FreeBSDを使っているんだし、/usr/local/etc/sslの下にしたい。
では設定と作成。

conf.d/10-ssl.confにて。

# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/ssl/certs/dovecot.pem
#ssl_key = </etc/ssl/private/dovecot.pem
ssl_cert = </usr/local/etc/ssl/certs/dovecot.pem
ssl_key = </usr/local/etc/ssl/private/dovecot.pem


pem作成。

再び、http://wiki2.dovecot.org/SSL/CertificateCreation

Self-signed certificate creation

Dovecot includes a script to build self-signed SSL certificates using OpenSSL. In the source distribution this exists in doc/mkcert.sh. Binary installations usually create the certificate automatically when installing Dovecot and don't include the script.


繰り返しになるが、doc/mkcert.shはインストールされない。
portsでdovecot2を作ったところに戻る。
make cleanしてしまった場合、portmaster等でインストールした場合には、慌てず/usr/ports/mail/dovecot2/で「make extract」すればOK。そして、

$ cd /usr/ports/mail/dovecot2/work/dovecot-2.0.16/doc/

ここでスクリプトを実行してもよいし、どこかにコピーしてもよい。
俺様は、なんだか別のことにも使えそうなので、ホームディレクトリにコピーしておいた。スクリプトdovecot-openssl.cnfを参照するのでこれもコピー。

$ cp ./mkcert.sh ~/bin/
$ cp ./dovecot-openssl.cnf ~/bin/


準備をして実行。以下はsh、あるいはbashでの例。

# mkdir /usr/local/etc/ssl
# mkdir /usr/local/etc/ssl/private
# mkdir /usr/local/etc/ssl/certs

# SSLDIR=/usr/local/etc/ssl sh ./mkcert.sh
Generating a 1024 bit RSA private key
..++++++
..............++++++
writing new private key to '/usr/local/etc/ssl/private/dovecot.pem'
-----

subject= /OU=IMAP server/CN=imap.example.com/emailAddress=postmaster@example.com
SHA1 Fingerprint=FF:FF:FF:FF:FF:FF:FF:FE:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF


では/etc/rc.confを修正して、サーバ起動。

# vi /etc/rc.conf
以下を追加
dovecot_enable="YES"

サーバ起動
# /usr/local/etc/rc.d/dovecot start

ログは/var/log/maillogにでる。



make cleanも忘れずに。

$ cd /usr/ports/mail/dovecot2/
# make clean