Kolab
Kolab はストレージと連絡先やカレンダー、メールやファイルデータなどを同期する機能を備えたサーバーサイドデーモンで構成された統合コミュニケーション・コラボレーションシステムです。クライアントは vCard, iCal, XML, IMAP, LDAP などのフォーマットを使用して Kolab サーバーを使うことができます。
目次
インストール
Kolab サーバーは kolabAUR メタパッケージでインストールすることができます。このパッケージは Kolab の全てのコンポーネントと必要な外部サービスをインストールします: cyrus-imapdAUR, Postfix, 389-ds-base, MySQL, Amavis, ClamAV, SpamAssassin, Apache, PHP。
設定
最初に Kolab は FQDN (完全修飾ドメイン名) の使用を必要とします。以下のように追加してください:
/etc/hosts
192.168.1.101 kolab.example.org
同じドメイン名を /etc/hostname に書き出してください。DNS 設定と DNS の逆引きもチェックしてください。
Arch 固有の設定
Kolab はインストール先の環境に様々な前提条件を置いています。kolabAUR パッケージには Kolab のセットアップスクリプトが上手く動作するようにシステムを設定するスクリプトが付属しています。root で実行してください:
# arch-setup-kolab
以下の設定が行われます:
- FQDN のチェック (
--no-fqdn
オプションを追加することで省略できます) - ClamAV と SpamAssassin データベースの初期化と更新
- Cyrus IMAP キャッシュディレクトリの初期化
- Postfix エイリアスデータベース (aliases.db) の作成
- Amavis ディレクトリにアクセスできるように ClamAV を設定
- Apache の PHP モジュールを有効化
/etc/httpd/conf/extra/kolab.conf
で Apache に全ての Kolab アプリケーションを追加- Roundcube を Apache に追加
- 必要な PHP 拡張を有効化して
/etc/php/conf.d/kolab.ini
で include_path と open_basedir を設定 - Kolab に付属する SASL デーモンを使用するように libsasl を設定
- ローカルホスト用のダミー証明書 (
/etc/ssl/private/localhost.pem
) を作成してトラストアンカーとしてインストール (/etc/ca-certificates/trust-source/anchors/localhost.pem
)
Kolab の設定
Kolab には設定スクリプトが含まれています (pykolabAUR パッケージに入っています)。root で実行:
# setup-kolab
上記のコマンドで Kolab に必要な全ての設定が実行されます。設定時、パスワードなど複数の質問が聞かれます。以下の2つ以外はデフォルトで問題ありません:
- password for the LDAP Directory Manager はウェブ管理パネルにログインするときに使うパスワードです。
- MySQL についての質問には 1: Existing MySQL server を選択して MySQL のルートユーザーのパスワードを入力してください (デフォルトのパスワードは空です)。
setup-kolab help
で設定をリストアップして一部だけを選択的に実行することもできます。
初期設定
ユーザーの作成
ウェブ管理パネルは http://localhost/kolab-webadmin/
にあります。cn=Directory Manager
ユーザーとして、先に設定したパスワードでログインすることができます。パスワードは以下のコマンドで復元できます:
$ grep ^bind_pw /etc/kolab/kolab.conf
ユーザーを作成したらメールアドレスやユーザーの UID で http://localhost/roundcube/
からログインできます。
詳しくは Kolab のドキュメントを参照: [1]
TLS の有効化
Kolab の一部 (特に kolabd) は TLS を使って IMAP デーモンと通信するため、デフォルトでダミーのローカルホスト証明書が作成されます。しかしながら、ダミー証明書は外部クライアントから利用できません。正当な証明書をインストールするには以下のファイルを編集する必要があります:
/etc/postfix/main.cf
# TLS smtpd_tls_cert_file=/etc/ssl/private/localhost.pem smtpd_tls_key_file=/etc/ssl/private/localhost.pem
/etc/cyrus/imapd.conf
tls_cert_file: /etc/ssl/private/localhost.pem tls_key_file: /etc/ssl/private/localhost.pem
cert_file には証明書 (と中間 CA 証明書) が含まれた PEM ファイルを指定してください。key_file には PEM でエンコードされた秘密鍵を指定してください。
設定したら Postfix と Cyrus imapd を再起動:
# systemctl restart postfix cyrus-master
さらに、ローカルホストの代わりにドメイン名を使うために Roundcube の設定を変える必要があります。変更しなかった場合、証明書の検証が失敗してウェブインターフェイスが使えなくなります。Roundcube の設定の localhost をドメイン名に置き換えてください:
/etc/webapps/roundcubemail/config/config.inc.php
// IMAP Server Settings $config['default_host'] = 'tls://localhost'; // SMTP Server Settings $config['smtp_server'] = 'tls://localhost';
最後に、インストール時に生成されたダミーの証明書を処分してください:
# rm /etc/ssl/private/localhost.pem # rm /etc/ca-certificates/trust-source/anchors/localhost.pem # update-ca-trust
巨大なキーペアを使用している場合、Roundcube のパフォーマンスが落ちます。ローカル接続で TLS を無効化すると良いでしょう。
フロントエンド
Roundcubemail プラグイン
基本的な Roundcubemail のインストールと設定の他に、roundcubemail-plugins-kolabAUR プラグインパッケージをインストールすることで高度なグループウェア機能を使うことができます。
サービスの起動と停止
インストールによって全ての Kolab サービスが有効化・起動されます。Kolab は以下のサービスを使用します (systemctl で管理できます):
- 389-ds-base.target: 設定と認証のための LDAP ディレクトリ
- amavisd: Postfix から ClamAV と SpamAssassin のブリッジ
- clamd: ウイルススキャン
- cyrus-master: IMAP/PÔP3 サーバー
- httpd: Apache ウェブサーバー
- kolabd: Cyrus IMAP と LDAP 設定の同期 (メールボックスのリスト)
- kolab-saslauthd: Postfix の SASL 認証の管理
- mysqld: RoundCube と Kolab コンポーネントのデータベースエンジン
- postfix: SMTP サーバー
- wallace: グループウェアコンテンツのメールをスキャン
トラブルシューティング
PHP Error: required kolabformat module not found
/usr/share/php
が PHP 設定の include_path
と open_basedir
変数に含まれていることを確認してください。Roundcube の Apache 設定によって上書きされてしまうことがあります (/etc/httpd/conf/extra/roundcube.conf
)。
Roundcube でタスクが作成できなかったり同期されない
tasklist プラグインのデフォルト設定ではデータベースバックエンドを使ってタスクを保存します。arch-setup-kolab スクリプトによって設定は変更されます。手動で設定したい場合、/usr/share/webapps/roundcubemail/plugins/tasklist/config.inc.php.dist
を /etc/webapps/roundcubemail/config/tasklist.inc.php
にコピーしてください。
IMAP フォルダにアクセスするときウェブインターフェイスが遅い
デフォルト設定では IMAP サーバーとの全ての通信に TLS を使用します。巨大な証明書を使っている場合、速度の低下につながります。Cyrus IMAP サーバーを設定してローカルホストで tls を不要にできます。以下のように編集:
/etc/cyrus/cyrus.conf
SERVICES { # add or remove based on preferences imap cmd="imapd" listen="yourdomain:imap" prefork=5 imaps cmd="imapd -s" listen="imaps" prefork=1 imapl cmd="imapd" listen="localhost:imap" prefork=5
ローカルホストを listen する新しいサービス imapl を追加してください。また、imap サービスは外部アドレスだけを listen するように変更して、新しく作成したサービスと衝突しないようにします。
そして imapd.conf
に以下の行を追加してローカルホストからの接続時に平文認証を有効にします (imapl サービスを使用):
/etc/cyrus/imapd.conf
allowplaintext: no imapl_allowplaintext: yes
cyrus サービスを再起動:
# systemctl restart postfix cyrus-master
最後に roundcube で tls を無効化してください。デフォルトホストを localhost に設定します:
/etc/webapps/roundcubemail/config/config.inc.php
// IMAP Server Settings $config['default_host'] = 'localhost';
roundcube でのフォルダの変更が高速になり、リモート接続では TLS が使われます。