1月 302008
 

JailBreak をやめた iPod に「ソフトウェアアップグレード」したら SSH トンネルが使えないので imap4 を SSL 化する必要がでてきた。

と、言うことで自宅のサーバを imap4-SSL に対応にしてみた。

うちで動作しているサーバは FreeBSD の 6 系 STABLE で ports は 最新の ports-current を追いかけている。動作しているメール環境は sendmail+procmail と courier-imap。つまり、Maildir 形式を利用していることになります。

メールの送信はこの際やめておこう(つまり sendmail の SSL 化は止めておこうと言う意味です(^^;)。iPod Touch でもメールの送信が可能で SMTP サーバを設定する項目はあるのだけど、無線アクセスポイントを利用したときにメールを送信する可能性が有るのかと言えば、あんまりない・・。メールの送信は携帯でやることにしよう(^^;;。

と、言うことで imap4 サーバと pop3 サーバのみを SSL 化することにした。

さてと courier-imap を SSL 対応するのだけど、あまりにも簡単なので驚いた。sendmail+procmail で Maildir 形式に対応した後 ports から courier-imap をインストールするんだけど、courier-authlib と courier-authlib-base も合わせてインストールされます。

全部で以下がインストールされます。courier-imap ってどっかのバージョンで認証方法ががらっと変わったので設定方法も思いっきり変わりました。今回は courier-imap-4.3.0 についてです。

courier-authlib-0.60.2
courier-authlib-base-0.60.2
courier-imap-4.3.0,2

ふつーの imapd と pop3d は現在ではもう既に動いているのですが、インストールは ports を make install しただけで動き出します。すごいっ!! そして Maildir 形式にするには procmail もインストールして /usr/local/etc/procmailrc は以下のように一行だけ書く必要がるんだけど・・。

DEFAULT=$HOME/Maildir/

 
けど、そーすると sendmail.cf も procmail に対応する必要があるなぁ。/etc/mail/freebsd.mc に以下の行を追加して、/etc/mail で make を実行すれば新しい sendmail.cf と submit.cf ができますので、これで sendmail は MDA に procmail を利用して Maildir に配達てくれるようになるでしょう。

# procmail を利用するための設定
FEATURE(`local_procmail',`/usr/local/bin/procmail',`procmail -a $h -d $u')

 
make install したらすぐに使える courier-imap だけど imapd の設定は一ヶ所だけ直しました。Thunderbird を使っているとセッションが足りないとか言われるので同一 IP から受け付ける imap のセッション数を増やす必要があります。以下の設定にすれば大丈夫。

#MAXPERIP=4
MAXPERIP=20

 
続いて imap-SSL と pop3d の設定についてですが、こぉれもちょー簡単。結局なぁんもやること無く動き出してしまった。と、言うのは語弊があるんだけど /usr/local/etc/courier-imap/ の下の imapd.cnf と pop3d.cnf を書いてあげる必要があります。これは SSL の証明書を記述するファイルです。自分のサーバに合ったものに書き直してあげましょう。

二つのファイルが準備できたら後は以下のコマンドを実行します。

# cd /usr/local/share/courier-imap/
# ./mkimapdcert
# ./mkpop3dcert

 
上記コマンドを実行すると /usr/local/share/courier-imap/ 内に imapd.pem と pop3d.pem と言う証明書が作成されます。後は /usr/local/etc/rc.d/ にある courier-imap-imapd-ssl.sh と courier-imap-pop3d-ssl.sh を実行して起動するだけ。あ、当然、/etc/rc.conf は編集してね;-)。

iPod Touch で接続する前に、まず Thunderbird などで SSL 接続できるか、また、証明書の塩梅を確認してみるのが良いでしょう。非常に簡単に iPod Touch 対応の imap-SSL サーバができてしまいました;-)。

と、言うことで認証のことを書くのを忘れてしました(^^;;。courier-imap の認証部分は courier-authlib がやってくれています。僕はメールを受信するユーザを作成しているので認証は /etc/passwd でやることになります。認証の設定は /usr/local/etc/authlib/authdaemonrc でやるのですが、/etc/passwd で認証するのであればどこも変更する必要はありません。

ただ、/etc/passwd の方ではメールを受信するだけのユーザの場合は shell の設定は /sbin/nologin にしておいたほうが安心でしょう。後は /etc/mail/alias を上手に使うと言う感じですかねぇ。