webmail設置&imapの選び方
うちのサーバーでwebmailができるようにした。
熟考(とうほどでもないが)の結果土偶サーバーで採用されたのは、imapがWU-imap、webmailがSquirrelMailとなった。
Webmailに関してはSquirrelMailの他にActiveMailも候補に上がったのだが、これは職場でも採用しており、どうせならということでSquirrelMailを採用。
つーかロゴのリスがなんか良いという理由が一番かな。
メールアカウント欲しい方は引き続き募集ですえー。webmailもできるでー
で、以下はなぜimapにwu-imapを選んだかのどちらかといえば技術的なポリシーの話になる。
webmailもしくはimap導入予定の方は参考にしてください。
現在土偶サーバーではSMTPサーバーとしてpostfixが稼動している。
SMTPの配信方法はユーザーが問い合わせに来るまでメールスプールにメールをためておくmbox形式と、
ユーザーのホームディレクトリのMaildirディレクトリに直接配信するMaildir形式、さらにホームディレクトリ配信ではないcyrus形式のメールスプールがあるけど、シェル上からmailxコマンドでメールを確認できるのはmbox形式のみとなる。
確かにMaildir形式はセキュリティー的にも耐障害性の面でもmboxやcyrusのメールスプールに比べて有利なんやけど、日常的にSolarisのシェルを使う人間にとってははなはだ不便になるので土偶サーバーではmbox形式を採用している。
imapはユーザーが接続するとそのスプールを読みに行き、ホームディレクトリ上のMaildirにコピーして閲覧できるようにするシステムであるけど、(SMTPがMaildir配信の場合は直接Maildir上を読む)
シェルでーメールを読む場合もあればメールソフトを使って読む場合もあるので、土偶サーバーで採用されるべきimapの条件とすれば。
SMTPの配信形式を,シェル上のmailxコマンドでメールが読めるmbox形式を扱うために、配信方法をMaildir形式、もしくはcyrusのスプール形式に変えなくてもよい。
であり、
妥協点はメールの受信にAPOPも使用しているので、imapは内部ネットワーク内でしか使用せず、ユーザー名とパスワードの送信時に暗号化にそれほど気を使う必要はない。
ということになる。
で、具体的なimapの選択になるわけやけど、主にimapの有名どころはほぼ三つといってしまっていいと思う。
カーネギーメロン大学の開発プロジェクトによるCyrus IMAP
Courier-mtaの派生物のひとつ(なのか)のCourie-imap
ワシントン大学に開発プロジェクトのあるwu-imap
Cyrus-imapはCyrus-saslを使っている場合に、メールのみのユーザーとパスワードを共有できるので一番愛称がいいんやろうけど、先に述べたようにスプール形式がcyrusという独自形式でmailxコマンドが扱えないので却下。
ただ、シェルにログインしてメールを読むことがなく、システムユーザー以外で運用を考えるとこのCyrus-imapが最適だと思う。通信経路をすべて暗号化できることも大きなアドバンテージとなる。
認証方式での安全性を取ればこのIMAPになる。
Courie-imapはMildir配信のSMTPにのみ対応したimapで、最近はやりのようである。
メールのユーザーのホームディレクトリに直接配信するMaildir配信のどこがよいのかというと、共有スペースであるスプール上にメールを置くことで、SMTPサーバーやその他デーモンの乗っ取りなどで他人にメールを読まれるというリスクと、スプールがクラッシュすればすべてのメールが失われる、というリスクをある程度避けることができる。
これはImapの機能というよりはSMTPの機能にあたるわけで、courie-imapはそのセキュアなSMTPに対応したimapとなる。
システムレベルでのセキュリティーを考慮すればこのimapやけど、mbox形式ではなくシェルからメールを読むのに苦労するので却下。
wu-imapはIMAPのrfcの著者が開発元にいることもあり、Imap自体のリファレンス的な部分があるようだ。smtpでいえばsendmailの位置にあるような感じやけど、sendmaiほどの脆弱性は聞かない。
平文でアカウント&パスワードを流すけど、ローカルネットワーク上の運用なので、これはそれほど無問題。
これといった特別な機能はない代わりにunixを日常的に使う人には親和性が高いように思える。ということでこれが採用理由。
なんだかどこかの技術文書みたいになったけど、imapの運用を考えている人の参考になれば幸いです。
ただ、大きな勘違いをしているかもしれないので、間違えてるところがあったら教えてください。