CentOS 6でのZarafaとYaffasのセットアップ

Microsoft ExchangeをLinuxソリューションに置き換えるソリューションは数多くありますが、それらすべてに、私が本当に嫌いな問題が1つありました。会議の招待状を受け取ったとき、それらは私のiOSデバイスに添付ファイルとして届き、カレンダーアプリで直接開かれませんでした。Zarafaは、カレンダーアプリでカレンダーイベントを開くために私がテストした唯一のソリューションでした。このガイドでは、CentOS 6でZarafaとYaffasをセットアップする方法を説明します。

始める前に

構成を理解しやすくするために、次のことを前提としています。ただし、これらの項目には独自の実際の値を使用する必要があります。

  • メールを受信したいドメインは「example.com」です。ユーザーは「[email protected]」、「[email protected]」のようなものです。
  • メールサーバーのホスト名は「pegasus」であるため、そのサーバーの完全なドメイン名は「pegasus.example.com」です。
  • 「サーバーコントロールパネル」という用語を使用するときはいつでも、vultr.comパネルを指しています。

サーバーの準備(VPS)

まず、vultr.comサーバーインスタンスをデプロイします。CentOS 6、32ビットを実行する1 GB VPSを選択しました。インストールが完了したら、サーバーをメールサーバーにする準備をします。

サーバーコントロールパネルの[マイサーバー]画面で、新しく作成したサーバーの横にある[管理]リンクをクリックします。開いたページで、サーバーの詳細を確認できます。[IPv4]タブをクリックし、青い[更新]ボタンをクリックします。テキスト入力フィールドが表示され、「。vultr.com」などが事前に設定されています。そのエントリをサーバーの完全なドメイン名(例:pegasus.example.com)に置き換え、青い[更新]ボタンを押します。

次に、新しいサーバーにログインします。sshターミナルを開き、サーバーに接続します。または、青色の[コンソールの表示]ボタンをクリックして、サーバーのログイン画面が表示されたブラウザウィンドウを表示することもできます。

ssh root@your_ip_address

your_ip_address」の部分は、サーバーのコントロールパネルに表示されるメインIPアドレスです。ブラウザを使用してサーバーに接続する場合は、rootパスワードを使用してrootとしてログインします。

まず、正しいドメイン名を設定します。ネットワーク構成ファイルを開きます。

nano /etc/sysconfig/network

"vultr.guest"をサーバーの完全なドメイン名に置き換えます(例:pegasus.example.com)。Ctrl + X、次にYでファイルを保存します。

変更する2番目の場所は/etc/hostsファイルです。

nano /etc/hosts

次の行を追加します。ファイルの先頭または2行目に置くことができます。

127.0.1.1 pegasus.example.com pegasus

Ctrl + X、次にYでファイルを保存します。再起動後にすべてが機能することを確認したいので、変更後にVPSを再起動します。

reboot

マシンが再起動するまで待ってから、再度接続してください。

ssh root@your_ip_address

YaffasとZarafaには、vultr.comサーバーのソースにすでにインストールされているEPELリポジトリが必要です。RPMforgeリポジトリも必要です。次のコマンドを発行して、そのリポジトリをインストールします。

32ビットシステム:

rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

64ビットシステム:

rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

次に、Yaffasリポジトリを追加します。

nano /etc/yum.repos.d/yaffas.repo

新しく作成したファイルに次のテキストを貼り付けます。

[yaffas]
name = yaffas $releasever
baseurl = http://repo.yaffas.org/releases/latest/rhel/$releasever
enabled = 1
protect = 0
gpgcheck = 1
priority = 1

Ctrl + X、次にYでファイルを保存します。

互換性の問題を回避するには、EPELリポジトリから一部のアイテムを除外する必要があります。リポジトリファイルを開きます。

nano /etc/yum.repos.d/epel.repo

次に[epel]、「gpgkey」行のすぐ下のセクションに次のように入力します。

exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*

完全なセクションは次のようになります。

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1 
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*

Ctrl + X、次にYでファイルを保存します。

YaffasリポジトリーのGPGキーをインポートします。

rpm --import http://repo.yaffas.org/repo.rpm.key

では、yumをクリーンアップしましょう。

yum clean all

この時点で、Yaffasインストールの準備はすべて整っているはずです。このコマンドを入力するだけでインストールできます。

yum install yaffas

Yumは依存関係をチェックし、概要を提供します。

Install 359 Package(s)

Total download size: 260 M
Installed size: 639 M
Is this ok [y/N]:

Yを押してからEnter / Returnキーを押して、インストールを開始します。

インストールには時間がかかるので、インストールが完了するのを待つ間、コーヒーとクッキーを用意してください。

MySQL

最終的なセットアップを開始する前に、MySQLを構成する必要があります。MySQLを起動し、安全なセットアップを開始します。

service mysqld restart
mysql_secure_installation

MySQLにログインしてセキュリティを確保するには、rootユーザーの現在のパスワードが必要です。MySQLをインストールしたばかりで、まだrootパスワードを設定していない場合、パスワードは空白になるため、ここでEnter / Returnキーを押すだけです。

Enter current password for root (enter for none): **{press Enter/Return}**

[...]

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] **Y**

New password: **{enter super secret password}**
Re-enter new password: **{enter super secret password again}**

Remove anonymous user? [Y/n] **Y**

Disallow root login remotely? [Y/n] **Y**

Remove test database and access to it? [Y/n] **Y**

Reload privilege tables now? [Y/n] **Y**

構成

Webブラウザーを開き、次のURLにアクセスします。

http://your_ip_address:10000

#If you have a DNS entry already, use this instead.
http://server.example.com:10000

最初のユーザー名はadminパスワード付きですyaffas

ログイン後、セットアップウィザードが表示されます。5つのステップがあります。「次へ」を押して開始します。

最初のステップは、新しい管理者パスワードを入力することです。新しいパスワードを2回入力します。安全のために十分複雑であることを確認してください。ただし、忘れないでください。次に「次へ」をクリックします。

次の画面でMySQLバックエンドを構成します。入力する必要があるのは、MySQL rootユーザー用に作成したパスワードだけです。

4番目の画面で、メールドメインを設定します。プライマリメールドメインのフィールドに「example.com」と入力します。これあなた自身のドメインでなければなりません。「次へ」を押します。

5番目の画面はオプションだと思いますが、念のため、LDAP管理者となるユーザーアカウントを作成し、[完了]をクリックします。

セットアップが完了するまでしばらく時間がかかります。完了すると、すべてが成功したことを示すポップアップが表示されます。「OK」ボタンをクリックします。しばらくすると、ログイン画面が再び表示されます。セットアップ中に作成した新しいパスワードで管理者としてログインできます。

エクストラ

インストール中に、アプリの一般的な自己署名証明書がいくつか生成され、インストールされます。個人的には、入力した値を表示するために独自の自己署名証明書を用意し、すべての要求がHTTPS経由で送信されるようにしたいと思っています。

Zarafaには、独自の証明書を生成するためのスクリプトがいくつか付属しています。これらはもちろん自己署名証明書です。

認証局の家を作ってみましょう。

mkdir -p /etc/zarafa/ssl
chmod 700 /etc/zarafa/ssl
cd /etc/zarafa/ssl

...次にスクリプトを実行します。

sh /usr/share/doc/zarafa/ssl-certificates.sh server

パラメータ「サーバー」は、作成する証明書が呼び出されることを意味しますserver.pem

次のメッセージが表示されます。

No Certificate Authority Root found in current directory.
Press enter to create, or ctrl-c to exit.

EnterキーまたはReturn キーを押します。

次に表示されるメッセージは次のとおりです。

CA certificate filename (or enter to create)

EnterキーまたはReturn キーを押して続行し、CA証明書を作成します。

画面上で少しアクティビティを行うと、PEMパスフレーズの入力を求めるプロンプトが表示されます。CA証明書のパスフレーズを入力しますが、後で必要になるため、忘れないようにしてください。簡単にするために、パスフレーズ「ca-root-pem」を選択したとします。

質問に答えて証明書を生成します。ここでの回答は私の例ですので、正しい値に置き換えてください。

Country Name (2 letter code) [XX]: **MY**
State or Province Name (full name) []:**Selangor**
Locality Name (eg, city) [Default City]: **Shah Alam**
Organization Name (eg, company) [Default Company Ltd]: **ELMIMA-Systems**
Organizational Unit Name (eg, section) []: **Certificate Authority**
Common Name (eg, your name or your server's hostname) []:**server.example.com** **Must be the full domain name of your server**
Email Address []: **[email protected]**

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: **Enter/Return**
An optional company name []: **Enter/Return**

次に、cakey.pemファイルのパスフレーズを要求します。これは、以前に作成したパスフレーズです。

Enter pass phrase for /etc/pki/CA/private/./cakey.pem:ca-root-pem

画面に小さなアクティビティが表示され、PEMパスフレーズの入力を求められます。これは、server.pem作成したファイルのパスフレーズです。好きなものを入力しますが、忘れないようにしてください。簡単にするために、「server-pem-phrase」を使用します。

Enter PEM pass phrase:**server-pem-phrase**
Verifying - Enter PEM pass phrase:**server-pem-phrase**

server.pemファイルの値を入力する時間。

Country Name (2 letter code) [XX]: **MY**
State or Province Name (full name) []:**Selangor **
Locality Name (eg, city) [Default City]: **Shah Alam**
Organization Name (eg, company) [Default Company Ltd]: **ELMIMA-Systems**
Organizational Unit Name (eg, section) []: **Server SSL Certificate**
Common Name (eg, your name or your server's hostname) []: **server.example.com** **Must be the full domain name of your server**
Email Address []: [email protected]


Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: **Enter/Return**
An optional company name []: **Enter/Return**

Enter pass phrase for /etc/pki/CA/private/cakey.pem:ca-root-pem **Replace with your own passphrase**

画面上の一部のアクティビティは、証明書が生成されたことを示しています。

Sign the certificate? [y/n]:

入力Yと押して/リターンを入力します

1 out of 1 certificate requests certified, commit? [y/n]

入力Yと押して/リターンを入力します

Create public key from this certificate? [y]

実際には必要ありませんが、作成しても問題はないと思います。Enter / Returnを押すだけです。

Enter pass phrase for server.pem: **server-pem-phrase**

次にserver.cfg、Zarafa のファイルを構成します。

nano /etc/zarafa/server/cfg

エントリserver_ssl_enabledを見つけて、その値を "yes"(引用符なし)に変更します。

エントリserver_ssl_portを見つけて、237であることを確認します。

エントリserver_ssl_key_fileを見つけて、その値を " /etc/zarafa/ssl/server.pem"(引用符なし)に設定します。

ファイルserver_ssl_key_pass用に作成したパスフレーズserver.pem(例:server-pem-phrase)を値として使用して、エントリを作成します。

エントリを見つけますserver_ssl_ca_file。Zarafaの元のドキュメントはパスが/etc/zarafa/ssl/demoCA/cacert.pemであることを前提としていますが、CentOSではパスは/etc/pki/CA/cacert.pemです。この値を適宜更新してください。

server_ssl_ca_file = /etc/pki/CA/cacert.pem

Zarafaサーバーを再起動します。

service zarafa restart

Apacheの証明書を生成しましょう。

cd /etc/zarafa/ssl
openssl req -nodes -newkey rsa:2048 -keyout zarafa-ssl.key -out zarafa-ssl.csr

証明書を作成する別のフォームを取得します。

Country Name (2 letter code) [XX]: **MY **
State or Province Name (full name) []: **Selangor**
Locality Name (eg, city) [Default City]: **Shah Alam**
Organization Name (eg, company) [Default Company Ltd]: **ELMIMA-Systems**
Organizational Unit Name (eg, section) []: **Zarafa Web Services**
Common Name (eg, your name or your server's hostname) []: **server.example.com** **Must be the full domain name of your server**
Email Address []: **[email protected]**

次に、証明書に署名します。

openssl x509 -req -in ./zarafa-ssl.csr -signkey zarafa-ssl.key -out zarafa-ssl.crt -days 9999

...そしてそれをApacheに追加します。

cd /etc/httpd/conf.d
nano ssl.conf

「SSLCertificateFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.crt」という行を見つけて、「SSLCertificateFile /etc/zarafa/ssl/zarafa-ssl.crt」に変更します。

「SSLCertificateKeyFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.key」という行を見つけて、「SSLCertificateKeyFile /etc/zarafa/ssl/zarafa-ssl.key」に変更します

ファイルを保存して終了します。

次に、zarafa-webapp.confファイルを開きます。

nano /etc/httpd/zarafa-webapp.conf

次の2行を見つけて、コメントを外します。

#php_flag session.cookie_secure on
#php_flag session.cookie_httponly on

次の行を追加します。

RewriteEngine On
RewriteCond % !=on
RewriteRule (.*) https://pegasus.example.com/webapp/ [R] (Of course use your own real domain here)

ファイルを保存して終了します。次に、Apacheを再起動します。

service httpd restart

これで、Webアプリは常にHTTPSを使用します。についても同じことができますzarafa-webapp.conf

備考

CentOSでインストールをテストしたところ、フォルダが見つからないためにいくつかのエラーメッセージが表示されました。以下のコマンドで修正できます。

mkdir -p /var/run/policyd-weight/cores/master
mkdir -p /var/run/policyd-weight/cores/cache
chown -R polw /var/run/policyd-weight

新しいZarafaサーバーをドメインのメールサーバーとして使用するには、ドメインのAレコードとMXレコードの両方を設定する必要があります。必要に応じて、お気に入りの検索エンジンを使用してSPFウィザードを見つけることができます。これにより、ドメインのSPFレコードを簡単に作成できます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。