Før vi starter
Klargjøring av serveren (VPS)
MySQL
Konfigurasjon
Ekstrautstyr
Merknader
Det er mange løsninger der ute som erstatter Microsoft Exchange med en Linux-løsning, men alle hadde ett problem jeg virkelig mislikte. Når jeg mottok møteinvitasjoner, kom de som vedlegg på iOS-enhetene mine og åpnet ikke direkte i kalenderappen. Zarafa var den eneste løsningen jeg testet som ville åpne kalenderhendelser i kalenderappen. Denne guiden vil lære deg hvordan du konfigurerer Zarafa og Yaffas på CentOS 6.
Før vi starter
Vi gjør følgende forutsetninger for å gjøre det lettere å forstå konfigurasjonen. Du bør imidlertid bruke dine egne, virkelige verdier for disse elementene:
- Domenet jeg ønsker å motta e-post på er "example.com". Brukere er som "bruker1@example.com", "bruker2@example.com".
- Vertsnavnet for e-postserveren er "pegasus", så det fullstendige domenenavnet for den serveren er "pegasus.example.com".
- Når jeg bruker begrepet "serverkontrollpanel", refererer jeg til vultr.com- panelet.
Klargjøring av serveren (VPS)
Start med å distribuere vultr.com-serverforekomsten. Jeg valgte 1 GB VPS som kjører CentOS 6, 32-bit. Når installasjonen er ferdig, forbereder vi serveren til å bli en e-postserver.
I "Mine servere"-skjermen på serverkontrollpanelet klikker du på "Administrer"-koblingen ved siden av den nyopprettede serveren. På siden som åpnes kan du se detaljene for serveren din. Klikk på IPv4-fanen, og klikk deretter på den blå "Oppdater"-knappen. Et tekstinntastingsfelt vises og det er forhåndsinnstilt med noe sånt som ".vultr.com". Erstatt denne oppføringen med det fullstendige domenenavnet til serveren din (eksempel: pegasus.example.com) og trykk på den blå "Oppdater"-knappen.
Nå er det på tide å logge på den nye serveren. Åpne ssh-terminalen og koble til serveren din. Alternativt kan du klikke på den blå "View Console"-knappen for å få nettleservinduet med påloggingsskjermen til serveren din.
ssh root@your_ip_address
" your_ip_address"-delen er hoved-IP-adressen som er oppført i serverens kontrollpanel. Hvis du bruker nettleseren til å koble til serveren din, logger du bare på som root med root-passordet.
Først setter vi opp riktig domenenavn. Åpne nettverkskonfigurasjonsfilen.
nano /etc/sysconfig/network
Erstatt "vultr.guest" med det fullstendige domenenavnet til serveren din (eksempel: pegasus.example.com). Lagre filen med Ctrl + X , så Y .
Det andre stedet vi endrer er /etc/hostsfilen.
nano /etc/hosts
Legg til følgende linje. Det kan være øverst i filen eller den andre linjen.
127.0.1.1 pegasus.example.com pegasus
Lagre filen med Ctrl + X , så Y . Jeg liker å sørge for at alt fungerer etter en omstart, så jeg starter VPS på nytt etter disse endringene.
reboot
Gi maskinen et øyeblikk til å starte på nytt, og koble til igjen.
ssh root@your_ip_address
Yaffas og Zarafa trenger EPEL-depotet, som allerede er installert i kildene på vultr.com-servere. De trenger RPMforge-depotet også. Utfør følgende kommando for å installere det depotet.
32-biters systemer:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
64-biters systemer:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
Deretter legger vi til Yaffas-depotet.
nano /etc/yum.repos.d/yaffas.repo
Lim inn følgende tekst i den nyopprettede filen:
[yaffas]
name = yaffas $releasever
baseurl = http://repo.yaffas.org/releases/latest/rhel/$releasever
enabled = 1
protect = 0
gpgcheck = 1
priority = 1
Lagre filen med Ctrl + X , så Y .
For å unngå kompatibilitetsproblemer, må vi ekskludere noen elementer fra EPEL-depotet. Åpne depotfilen.
nano /etc/yum.repos.d/epel.repo
Skriv deretter inn følgende i [epel]seksjonen, rett under "gpgkey"-linjen.
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*
Hele delen vil se slik ut:
[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*
Lagre filen med Ctrl + X , så Y .
Importer GPG-nøkkelen for Yaffas-depotet:
rpm --import http://repo.yaffas.org/repo.rpm.key
Nå, la oss rydde opp nam.
yum clean all
På dette tidspunktet bør vi være klare for Yaffas-installasjonen. Installer den ved å skrive inn denne kommandoen.
yum install yaffas
Yum vil sjekke avhengighetene og gi deg et sammendrag.
Install 359 Package(s)
Total download size: 260 M
Installed size: 639 M
Is this ok [y/N]:
Trykk Y og deretter Enter/Return for å starte installasjonen.
Installasjonen vil ta litt tid, så unn deg en kaffe og en kake mens du venter på at installasjonen skal fullføres.
MySQL
Før vi kan starte det endelige oppsettet, må vi konfigurere MySQL. Start MySQL og start det sikre oppsettet.
service mysqld restart
mysql_secure_installation
For å logge på MySQL for å sikre det, trenger vi det gjeldende passordet for root-brukeren. Hvis du nettopp har installert MySQL, og du ikke har satt root-passordet ennå, vil passordet være tomt, så du bør bare trykke Enter/Retur her.
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**
Konfigurasjon
Åpne en nettleser og gå til følgende URL.
http://your_ip_address:10000
#If you have a DNS entry already, use this instead.
http://server.example.com:10000
Det opprinnelige brukernavnet er adminmed passord yaffas.
Etter pålogging vil du se oppsettsveiviseren. Den har 5 trinn. Trykk "Neste" for å starte.
Det første trinnet er å skrive inn et nytt administratorpassord. Skriv inn det nye passordet to ganger. Sørg for at det er komplisert nok til å være trygt, men ikke glem det. Klikk deretter på "Neste".
Den neste skjermen konfigurerer MySQL-backend. Det eneste du trenger å skrive inn er passordet du opprettet for MySQL root-brukeren.
På den fjerde skjermen konfigurerer du e-postdomenet ditt. Skriv inn "example.com" i det primære e-postdomenefeltet. Dette må være ditt eget domene. Trykk "Neste".
Jeg tror den femte skjermen er valgfri, men for å være på den sikre siden, opprett en brukerkonto som skal være LDAP-administrator, og klikk deretter på "Fullfør".
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 []: **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
Du vil se litt aktivitet på skjermen, så vil den be deg om en PEM-passordfrase. Dette er passordfrasen for server.pemfilen vi opprettet. Skriv inn alt du vil, men pass på at du ikke glemmer det. For enkelhets skyld vil vi bruke "server-pem-frase".
Enter PEM pass phrase:**server-pem-phrase**
Verifying - Enter PEM pass phrase:**server-pem-phrase**
På tide å legge inn verdiene for server.pemfilen.
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**
Noe aktivitet på skjermen viser at sertifikatet er generert.
Sign the certificate? [y/n]:
Skriv inn Y og trykk Enter/Retur .
1 out of 1 certificate requests certified, commit? [y/n]
Skriv inn Y og trykk Enter/Retur .
Create public key from this certificate? [y]
Vi trenger det egentlig ikke, men jeg antar at det ikke skader å lage det. Bare trykk på Enter/Retur .
Enter pass phrase for server.pem: **server-pem-phrase**
Nå er det på tide å konfigurere server.cfgfilen for Zarafa.
nano /etc/zarafa/server/cfg
Finn oppføringen server_ssl_enabledog endre verdien til "ja" (uten anførselstegn).
Finn oppføringen server_ssl_portog bekreft at den er 237.
Finn oppføringen server_ssl_key_fileog sett verdien til " /etc/zarafa/ssl/server.pem" (uten anførselstegn).
Opprett oppføringen server_ssl_key_passbruk passordfrasen du opprettet for server.pemfilen (eksempel: server-pem-frase) som verdien.
Finn oppføringen server_ssl_ca_file. Den originale dokumentasjonen for Zarafa antar at banen er /etc/zarafa/ssl/demoCA/cacert.pem, men på CentOS er banen /etc/pki/CA/cacert.pem. Oppdater denne verdien tilsvarende.
server_ssl_ca_file = /etc/pki/CA/cacert.pem
Start Zarafa-serveren på nytt.
service zarafa restart
La oss generere sertifikatet for Apache.
cd /etc/zarafa/ssl
openssl req -nodes -newkey rsa:2048 -keyout zarafa-ssl.key -out zarafa-ssl.csr
Vi får et annet skjema for å lage et sertifikat.
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**
Deretter signerer du sertifikatet.
openssl x509 -req -in ./zarafa-ssl.csr -signkey zarafa-ssl.key -out zarafa-ssl.crt -days 9999
... og legg den til Apache.
cd /etc/httpd/conf.d
nano ssl.conf
Finn linjen "SSLCertificateFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.crt" og endre den til "SSLCertificateFile /etc/zarafa/ssl/zarafa-ssl.crt".
Finn linjen "SSLCertificateKeyFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.key" og endre den til "SSLCertificateKeyFile /etc/zarafa/ssl/zarafa-ssl.key"
Lagre filen og avslutt.
Nå åpner du zarafa-webapp.conffilen.
nano /etc/httpd/zarafa-webapp.conf
Finn de følgende to linjene og fjern kommentarene.
#php_flag session.cookie_secure on
#php_flag session.cookie_httponly on
Legg til følgende linjer.
RewriteEngine On
RewriteCond % !=on
RewriteRule (.*) https://pegasus.example.com/webapp/ [R] (Of course use your own real domain here)
Lagre filen og avslutt. Start deretter Apache på nytt.
service httpd restart
Nå vil nettappen alltid bruke HTTPS. Du kan gjøre det samme for zarafa-webapp.conf.
Da jeg testet installasjonen på CentOS, la jeg merke til noen feilmeldinger på grunn av manglende mapper. Du kan fikse det med følgende kommandoer.
mkdir -p /var/run/policyd-weight/cores/master
mkdir -p /var/run/policyd-weight/cores/cache
chown -R polw /var/run/policyd-weight
For å bruke din nye Zarafa-server som e-postserver for domenet ditt, må du sette opp både en A-post og en MX-post for domenet ditt. Om ønskelig kan du bruke din favorittsøkemotor for å finne en SPF Wizard, som gjør det enkelt å lage en SPF-post for domenet ditt.