SqWebMailの導入

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail

おやじのメールシステムは、SMTP AUTH + TLSで理想的なSMTPサーバができましたが、POP/IMAPサーバの方のセキュリティ対策としてはCourier-IMAPのSSL化で対処してきました。しかし、Courier-IMAPのSSL化ではログイン認証はSSL化できず、使用しているメーラ(Outlook Express)の関係からPLAIN認証しか対応できないため、外部からメール送信した時のセキュリティ面で不満がありました。対策を検討した結果、(パケットキャプチャで確認したところ、問題なくSSL化されており、IDやパスワードを見ることはできません。) SqWebMailを使用すれば、WebがSSL対応していますのでセキュリティ面で問題なく使用できるのと、ファイヤウォールがありメーラで直接自宅メールサーバにアクセスできない環境からでも、アクセスできるようになることです。

SqWebMailは、Maildir形式メールボックスに対応した電子メールを送受信するためのWebのCGIクライアントで、Courieメールシステムに入っているものと同じものを個別パッケージかしたものだそうです。従って、SMTPには、sendmailは使用できず、PostfixかQmailになります。WWWサーバがSSLに対応していれば、セキュリティ面でも安心して使用できます。もちろん素のままでも使用できますが。

なお、おやじはこのとおりには設定しておりませんので、https://www.aconus.com/cgi-bin/sqwebmailにアクセスしてもアクセスできませんのであしからず。(記載内容は、バックアップ機で動作確認済みです。)

■SqWebMailのインストール

日本語対応 SqWebMail パッケージがありましたので、それを利用させてもらいましたが、いくつかカストマイズしないとうまくいきませんでした。
日本語対応 SqWebMail パッケージをこちらからダウンロードし、以下の手順でインストールします。(おやじがダウンロードしたのは、sqwebmail-3.3.7.japan.1.3.tar.gzで、場所はいつもの/usr/local/src配下) ソースファイルを展開し、configureを実行し、Makefileを作成しインストールします。
 $ cd /usr/local/src
 $ tar zxfv sqwebmail-3.3.7.japan.1.3.tar.gz
 $ cd sqwebmail-3.3.7
 $ ./configure --enable-mimecharset=iso-2022-jp --enable-cgibindir=/usr/local/apache2/cgi-bin --enable-imagedir=/home/image --enable-imageurl=/image --enable-draftname=Draft --disable-autorenamesent --enable-https
 $ make
 $ su
 # make install-strip
 # make install-configure
configureのオプションは、以下を選択しました。(./configureは複数行に表示されていますが、実際は1行です)

■SqWebMailの設定

使用するにあたっては、いくつか設定が必要です。おやじが設定した内容は以下のとおりですが、マニュアルにいろいろなカストマイズが載っているので、用途に合わせて設定すると良いでしょう。ここは、最低限のものを載せていますが、他にもいくつか変更しました。
  1. chacheのクリア

     chacheを毎日5時にクリアするよう、crontabに下記を追加した。1時間ごとの実行を推奨されているが、それほどのこともないと判断。

     # crontab -e
     0 5 * * * /usr/local/share/sqwebmail/cleancache.pl

  2. 認証用デーモンの常駐化

     起動時に認証用デーモンが常駐するように、/etc/rc.d/rc.localに下記を追加する。(内容はinstall-stripの最後のほうで表示される内容に従う)

      /usr/local/share/sqwebmail/libexec/authlib/authdaemond start

     しかし、デフォルトのままだとpgsqlとldapでの認証が選択され、おやじのシステムでは認証できない。おやじの環境で使用できるのは、PAMによるPLAIN認証なので変更した。SqWebMailからPAMが使えるようにする変更も必要だ。

    [PLAIN認証への変更]

     変更する方法はいくつかあるが、おやじは/usr/local/share/sqwebmail/authdaemonrcを編集し、authdaemond.plainを選択するようにした。
    version=""

        ↓ 追加

    version="authdaemond.plain"
    [SqWebMailからPAMが使えるようにする変更]

     SqWebMailはPAMモジュールが「webmail」で定義されているものを使用するということなので、/etc/pam.d/webmailファイルを下記内容で作成した。

     # vi /etc/pam.d/webmail
     #%PAM-1.0
     auth required pam_nologin.so
     auth required pam_stack.so service=system-auth
     account required pam_stack.so service=system-auth
     session required pam_stack.so service=system-auth

  3. リターンアドレスのカストマイズ

     デフォルトのままだと、リターンアドレスにシステムで定義されたホスト名が設定されてしまう。/usr/local/share/sqwebmail配下にリターンアドレスに設定したいドメイン名を記述したhostnameというファイルを設置することで、この内容で設定してくれる。

     # vi /usr/local/share/sqwebmail/hostname
     mail.aconus.com

■ブラウザからのテスト

改めて、書くほどのことはありません。ブラウザでSqWebMailのCGIを呼び出すだけです。ブラウザの設定は日本語が優先になるよう設定しておかないと文字化けすることがあります。

   http://www.aconus.com/cgi-bin/sqwebmail

意図的に、httpでアクセスしても、httpsにrewriteされますので、不用意に素でアクセスしてしまうこともありません。いろいろ試験してみましょう。
なお、日付が文字化けする場合は、下記でLOCALEの内容を「ja_JP」から「en_US」にすると直るようです。
 # vi /usr/local/share/sqwebmail/html/ja-jp/LOCALE
 ja_JP -> en_US

SqWebMailを使用し始めたところ、configure時にオプション(--disable-autorenamesent)をつけたはずなのに送信済みフォルダ内のメール本文が消えてしまう現象が発生しました。調査したところ、WWWサーバとしてApacheを利用している場合は、更にApache側に設定が必要なことが判明し、下記をhttpd.confに追加しました。これを設定しないと、移動されてしてしまいます。

  SetEnv SQWEBMAIL_AUTORENAMESENT no


Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail