Πριν ξεκινήσουμε
Προετοιμασία διακομιστή (VPS)
MySQL
Διαμόρφωση
Πρόσθετα
Παρατηρήσεις
Υπάρχουν πολλές λύσεις εκεί έξω που αντικαθιστούν το Microsoft Exchange με μια λύση Linux, αλλά όλες είχαν ένα πρόβλημα που δεν μου άρεσε πολύ. Όταν λάμβανα προσκλήσεις σε σύσκεψη, έφταναν ως συνημμένα στις συσκευές μου iOS και δεν άνοιγαν απευθείας στην εφαρμογή ημερολογίου. Η Zarafa ήταν η μόνη λύση που δοκίμασα ότι θα άνοιγε συμβάντα ημερολογίου στην εφαρμογή ημερολογίου. Αυτός ο οδηγός θα σας διδάξει πώς να ρυθμίσετε τα Zarafa και Yaffas στο CentOS 6.
Πριν ξεκινήσουμε
Κάνουμε τις ακόλουθες υποθέσεις για να διευκολύνουμε την κατανόηση της διαμόρφωσης. Ωστόσο, θα πρέπει να χρησιμοποιήσετε τις δικές σας πραγματικές τιμές για αυτά τα στοιχεία:
- Ο τομέας στον οποίο θέλω να λαμβάνω αλληλογραφία είναι "example.com". Οι χρήστες είναι όπως "user1@example.com", "user2@example.com".
- Το όνομα κεντρικού υπολογιστή για τον διακομιστή αλληλογραφίας είναι "pegasus", επομένως το πλήρες όνομα τομέα για αυτόν τον διακομιστή είναι "pegasus.example.com".
- Όποτε χρησιμοποιώ τον όρο "πίνακας ελέγχου διακομιστή", αναφέρομαι στον πίνακα vultr.com .
Προετοιμασία διακομιστή (VPS)
Ξεκινήστε με την ανάπτυξη της παρουσίας του διακομιστή vultr.com. Επέλεξα 1 GB VPS με CentOS 6, 32-bit. Όταν ολοκληρωθεί η εγκατάσταση, προετοιμάζουμε τον διακομιστή να γίνει διακομιστής αλληλογραφίας.
Στην οθόνη "Οι διακομιστές μου" του πίνακα ελέγχου του διακομιστή, κάντε κλικ στο σύνδεσμο "Διαχείριση" δίπλα στον νέο διακομιστή σας. Στη σελίδα που ανοίγει, μπορείτε να δείτε τις λεπτομέρειες για τον διακομιστή σας. Κάντε κλικ στην καρτέλα 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 bit:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
Συστήματα 64 bit:
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.
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 σκαλοπάτια. Πατήστε "Επόμενο" για να ξεκινήσετε.
Το πρώτο βήμα είναι να εισαγάγετε έναν νέο κωδικό πρόσβασης διαχειριστή. Εισαγάγετε τον νέο κωδικό πρόσβασης δύο φορές. Βεβαιωθείτε ότι είναι αρκετά περίπλοκο για να είναι ασφαλές, αλλά μην το ξεχνάτε. Στη συνέχεια, κάντε κλικ στο "Επόμενο".
Η επόμενη οθόνη διαμορφώνει το backend της MySQL. Το μόνο πράγμα που πρέπει να εισαγάγετε είναι ο κωδικός πρόσβασης που δημιουργήσατε για τον ριζικό χρήστη της MySQL.
Στην 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" σημαίνει ότι το πιστοποιητικό που δημιουργούμε θα ονομάζεται 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 []: **admin@example.com**
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αρχείο που δημιουργήσαμε. Εισαγάγετε οτιδήποτε θέλετε, αλλά φροντίστε να μην το ξεχάσετε. Για απλότητα θα χρησιμοποιήσουμε "διακομιστής-pem-φράση".
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 []: admin@example.com
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αρχείο (παράδειγμα: διακομιστής-pem-φράση) ως τιμή της.
Βρείτε την καταχώρηση 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 []: **admin@example.com**
Στη συνέχεια, υπογράψτε το πιστοποιητικό.
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, ο οποίος διευκολύνει τη δημιουργία μιας εγγραφής SPF για τον τομέα σας.