在CentOS 6上设置Zarafa和Yaffas

有很多解决方案可以用Linux解决方案代替Microsoft Exchange,但是所有这些解决方案都有一个我真的不喜欢的问题。当我收到会议邀请时,它们将作为附件到达我的iOS设备上,而不是直接在日历应用中打开。Zarafa是我测试过的唯一可在日历应用程序中打开日历事件的解决方案。本指南将教您如何在CentOS 6上设置Zarafa和Yaffas。

开始之前

我们进行以下假设以使其更容易理解配置。但是,您应该对这些项目使用自己的真实值:

  • 我要在其上接收邮件的域是“ example.com”。用户就像“ [email protected]”,“ [email protected]”。
  • 邮件服务器的主机名是“ pegasus”,因此该服务器的完整域名是“ pegasus.example.com”。
  • 每当我使用“服务器控制面板”一词时,都是指vultr.com面板。

准备服务器(VPS)

首先部署您的vultr.com服务器实例。我选择了运行32位CentOS 6的1 GB VPS。安装完成后,我们准备将服务器变为邮件服务器。

在服务器控制面板的“我的服务器”屏幕中,单击新创建的服务器旁边的“管理”链接。在打开的页面上,您可以查看服务器的详细信息。单击IPv4选项卡,然后单击蓝色的“更新”按钮。出现一个文本输入字段,并预先设置了诸如“ .vultr.com”之类的内容。将该条目替换为服务器的完整域名(例如:pegasus.example.com),然后按蓝色的“更新”按钮。

现在该登录新服务器了。打开您的ssh终端并连接到服务器。或者,您可以单击蓝色的“ View Console”按钮以获取带有服务器登录屏幕的浏览器窗口。

ssh root@your_ip_address

your_ip_address”部分是服务器控制面板中列出的主要IP地址。如果使用浏览器连接到服务器,则只需使用root密码以root用户身份登录。

首先,我们设置正确的域名。打开网络配置文件。

nano /etc/sysconfig/network

将“ vultr.guest”替换为服务器的完整域名(例如:pegasus.example.com)。按Ctrl + X,然后按Y保存文件。

我们更改的第二个点是/etc/hosts文件。

nano /etc/hosts

添加以下行。它可以在文件的顶部或第二行。

127.0.1.1 pegasus.example.com pegasus

按Ctrl + X,然后按Y保存文件。我想确保重新启动后一切正常,因此在进行这些更改后,我重新启动了VPS。

reboot

请稍等一下计算机重新引导,然后重新连接。

ssh root@your_ip_address

Yaffas和Zarafa需要EPEL存储库,该存储库已安装在vultr.com服务器上的源代码中。他们也需要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 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**

组态

打开网络浏览器,然后转到以下URL。

http://your_ip_address:10000

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

初始用户名admin带有密码yaffas

登录后,您将看到安装向导。它有5个步骤。按“下一步”开始。

第一步是输入新的管理员密码。输入两次新密码。确保它足够复杂以确保安全,但不要忘记它。然后点击“下一步”。

下一个屏幕将配置MySQL后端。您唯一需要输入的是您为MySQL root用户创建的密码。

在第四个屏幕上,设置您的邮件域。在主要邮件域字段中输入“ example.com”。这必须是您自己的域。按“下一步”。

我相信第5个屏幕是可选的,但为了安全起见,请创建一个将成为LDAP管理员的用户帐户,然后单击“完成”。

设置过程需要一段时间。完成后,将显示一个弹出窗口,告诉您一切成功。点击“确定”按钮。片刻之后,您将再次看到登录屏幕。您可以使用在安装过程中创建的新密码以admin身份登录。

附加功能

在安装过程中,将生成并安装该应用程序的一些常规自签名证书。就个人而言,我更喜欢拥有自己的自签名证书来显示输入的值,并且我还想确保所有请求都通过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.

EnterReturn

出现的下一条消息是:

CA certificate filename (or enter to create)

EnterReturn键继续并创建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并按Enter / Return键

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

输入Y并按Enter / Return键

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并将其值更改为“是”(不带引号)。

找到该条目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

找到以下两行,并取消注释。

#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上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息