Перш ніж почати
Підготовка сервера (VPS)
MySQL
Конфігурація
Екстри
Зауваження
Існує багато рішень, які замінюють Microsoft Exchange рішенням для Linux, але в усіх була одна проблема, яка мені дуже не сподобалася. Коли я отримував запрошення на зустріч, вони надходили як вкладені файли на мої пристрої iOS і не відкривалися безпосередньо в програмі календаря. Zarafa була єдиним випробуваним мною рішенням, яке відкривало події календаря в програмі календаря. Цей посібник навчить вас, як налаштувати Zarafa і Yaffas на CentOS 6.
Перш ніж почати
Ми робимо наступні припущення, щоб полегшити розуміння конфігурації. Однак ви повинні використовувати власні, реальні значення для цих елементів:
- Доменом, на який я хочу отримувати пошту, є "example.com". Користувачі схожі на "[email protected]", "[email protected]".
- Ім’я хоста для поштового сервера – «pegasus», тому повне ім’я домену для цього сервера – «pegasus.example.com».
- Коли я використовую термін «панель керування сервером», я маю на увазі панель vultr.com .
Підготовка сервера (VPS)
Почніть з розгортання екземпляра сервера vultr.com. Я вибрав 1 ГБ VPS під керуванням CentOS 6, 32-розрядна версія. Після завершення встановлення ми готуємо сервер до того, щоб він став поштовим сервером.
На екрані «Мої сервери» панелі керування сервером натисніть посилання «Керувати» поруч із вашим щойно створеним сервером. На сторінці, що відкриється, ви можете побачити деталі вашого сервера. Натисніть на вкладку 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 .
Друге місце, яке ми змінюємо, - це /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 .
Імпортуйте ключ GPG для репозиторію Yaffas:
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. Єдине, що вам потрібно ввести, це пароль, який ви створили для користувача root MySQL.
На 4-му екрані налаштуйте свій поштовий домен. Введіть "example.com" у поле основного поштового домену. Це має бути ваш власний домен. Натисніть «Далі».
Я вважаю, що 5-й екран необов’язковий, але щоб бути в безпеці, створіть обліковий запис користувача, який буде адміністратором LDAP, а потім натисніть «Готово».
It will take a while until the setup finishes. Once it completes, a popup appears that tells you everything was successful. Click the "OK" button. After a moment, you will see the login screen again. You can login as admin with the new password that you created during the setup.
During the installation, some general self-signed certificates for the app are generated and installed. Personally, I prefer to have my own self-signed certificates to show the values that I entered and I also want to make sure that all requests are sent over HTTPS.
Zarafa comes with a few scripts to generate your own certificates. These are of course self-signed certificates.
Let's make a home for the certificate authority.
mkdir -p /etc/zarafa/ssl
chmod 700 /etc/zarafa/ssl
cd /etc/zarafa/ssl
... then run the script:
sh /usr/share/doc/zarafa/ssl-certificates.sh server
The parameter "server" means the certificate we create will be called server.pem
.
You will be greeted with the following message.
No Certificate Authority Root found in current directory.
Press enter to create, or ctrl-c to exit.
Press Enter or Return.
The next message that appears is:
CA certificate filename (or enter to create)
Press Enter or Return to continue and create the CA Certificate.
After a little activity on the screen, you will get a prompt to enter the PEM passphrase. Enter any passphrase for the CA certificate, but make sure that you don't forget it, as you will need it later. For simplicity's sake, let's assume we chose the passphrase "ca-root-pem".
Answer the questions to generate the certificate. The answers here are my examples, so replace them with the correct values for yourself.
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**
Next, it will ask you for the passphrase of the cakey.pem
file. This is the passphrase that you created earlier.
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
Знайдіть наступні 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
Тепер веб-додаток завжди використовуватиме 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 Wizard, який спрощує створення запису SPF для вашого домену.