Abans de començar
Preparant el servidor (VPS)
MySQL
Configuració
Extres
Observacions
Hi ha moltes solucions que substitueixen Microsoft Exchange per una solució Linux, però totes van tenir un problema que no em va agradar molt. Quan rebia invitacions a reunions, arribaven com a fitxers adjunts als meus dispositius iOS i no s'obrien directament a l'aplicació de calendari. Zarafa va ser l'única solució que vaig provar que obriria esdeveniments de calendari a l'aplicació de calendari. Aquesta guia us ensenyarà com configurar Zarafa i Yaffas a CentOS 6.
Abans de començar
Fem les següents hipòtesis per facilitar la comprensió de la configuració. Tanmateix, hauríeu d'utilitzar els vostres valors reals per a aquests elements:
- El domini on vull rebre correu és "example.com". Els usuaris són com "usuari1@exemple.com", "usuari2@exemple.com".
- El nom d'amfitrió del servidor de correu és "pegasus", de manera que el nom de domini complet d'aquest servidor és "pegasus.example.com".
- Sempre que faig servir el terme "tauler de control del servidor", em refereixo al panell vultr.com .
Preparant el servidor (VPS)
Comenceu desplegant la vostra instància del servidor vultr.com. Vaig triar 1 GB VPS amb CentOS 6, 32 bits. Quan finalitzi la instal·lació, preparem el servidor perquè es converteixi en un servidor de correu.
A la pantalla "Els meus servidors" del tauler de control del servidor, feu clic a l'enllaç "Gestiona" al costat del servidor que acabeu de crear. A la pàgina que s'obre, podeu veure els detalls del vostre servidor. Feu clic a la pestanya IPv4 i, a continuació, feu clic al botó blau "Actualitza". Apareix un camp d'entrada de text i està predefinit amb alguna cosa com ".vultr.com". Substituïu aquesta entrada pel nom de domini complet del vostre servidor (exemple: pegasus.example.com) i premeu el botó blau "Actualitza".
Ara és el moment d'iniciar sessió al nou servidor. Obriu el vostre terminal ssh i connecteu-vos al vostre servidor. Alternativament, podeu fer clic al botó blau "Mostra la consola" per obtenir la finestra del navegador amb la pantalla d'inici de sessió del vostre servidor.
ssh root@your_ip_address
La your_ip_addresspart " " és l'adreça IP principal que es mostra al tauler de control del servidor. Si utilitzeu el navegador per connectar-vos al vostre servidor, només heu d'iniciar sessió com a root amb la vostra contrasenya d'arrel.
Primer, configurem el nom de domini correcte. Obriu el fitxer de configuració de xarxa.
nano /etc/sysconfig/network
Substituïu "vultr.guest" pel nom de domini complet del vostre servidor (Exemple: pegasus.example.com). Deseu el fitxer amb Ctrl + X i després Y .
El segon lloc que canviem és el /etc/hostsfitxer.
nano /etc/hosts
Afegiu la línia següent. Pot estar a la part superior del fitxer o a la segona línia.
127.0.1.1 pegasus.example.com pegasus
Deseu el fitxer amb Ctrl + X i després Y . M'agrada assegurar-me que tot funcioni després d'un reinici, així que reinicio el VPS després d'aquests canvis.
reboot
Doneu un moment a la màquina per reiniciar i, a continuació, connecteu-vos de nou.
ssh root@your_ip_address
Yaffas i Zarafa necessiten el repositori EPEL, que ja està instal·lat a les fonts dels servidors vultr.com. També necessiten el dipòsit RPMforge. Emet l'ordre següent per instal·lar aquest dipòsit.
Sistemes de 32 bits:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
Sistemes de 64 bits:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
A continuació, afegim el repositori Yaffas.
nano /etc/yum.repos.d/yaffas.repo
Enganxeu el text següent al fitxer acabat de crear:
[yaffas]
name = yaffas $releasever
baseurl = http://repo.yaffas.org/releases/latest/rhel/$releasever
enabled = 1
protect = 0
gpgcheck = 1
priority = 1
Deseu el fitxer amb Ctrl + X i després Y .
Per evitar problemes de compatibilitat, hem d'excloure alguns elements del repositori EPEL. Obriu el fitxer del repositori.
nano /etc/yum.repos.d/epel.repo
A continuació, a la [epel]secció, just a sota de la línia "gpgkey", introduïu el següent.
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*
La secció completa tindrà aquest aspecte:
[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*
Deseu el fitxer amb Ctrl + X i després Y .
Importeu la clau GPG per al dipòsit de Yaffas:
rpm --import http://repo.yaffas.org/repo.rpm.key
Ara, anem a netejar yum.
yum clean all
En aquest punt, hauríem d'estar tot preparat per a la instal·lació de Yaffas. Instal·leu-lo simplement introduint aquesta ordre.
yum install yaffas
Yum comprovarà les dependències i us farà un resum.
Install 359 Package(s)
Total download size: 260 M
Installed size: 639 M
Is this ok [y/N]:
Premeu Y i , a continuació, Intro/Retorn per iniciar la instal·lació.
La instal·lació trigarà una estona, així que regaleu-vos un cafè i una galeta mentre espereu que acabi la instal·lació.
MySQL
Abans de poder començar la configuració final, hem de configurar MySQL. Inicieu MySQL i comenceu la configuració segura.
service mysqld restart
mysql_secure_installation
Per iniciar sessió a MySQL per assegurar-lo, necessitarem la contrasenya actual per a l'usuari root. Si acabeu d'instal·lar MySQL i encara no heu establert la contrasenya d'arrel, la contrasenya estarà en blanc, així que només heu de prémer Enter/Return aquí.
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**
Configuració
Obriu un navegador web i aneu a l'URL següent.
http://your_ip_address:10000
#If you have a DNS entry already, use this instead.
http://server.example.com:10000
El nom d'usuari inicial és adminamb contrasenya yaffas.
Després d'iniciar sessió, veureu l'assistent de configuració. Té 5 passos. Premeu "Següent" per començar.
El primer pas és introduir una nova contrasenya d'administrador. Introduïu la nova contrasenya dues vegades. Assegureu-vos que sigui prou complicat per estar segur, però no ho oblideu. A continuació, feu clic a "Següent".
La següent pantalla configura el backend de MySQL. L'únic que heu d'introduir és la contrasenya que heu creat per a l'usuari root de MySQL.
A la quarta pantalla, configureu el vostre domini de correu. Introduïu "example.com" al camp del domini de correu principal. Aquest ha de ser el vostre propi domini. Premeu "Següent".
Crec que la cinquena pantalla és opcional, però només per estar segur, creeu un compte d'usuari que serà l'administrador de LDAP i feu clic a "Finalitza".
Passarà una estona fins que acabi la configuració. Un cop s'ha completat, apareixerà una finestra emergent que us indicarà que tot ha tingut èxit. Feu clic al botó "D'acord". Després d'un moment, tornareu a veure la pantalla d'inici de sessió. Podeu iniciar sessió com a administrador amb la nova contrasenya que vau crear durant la configuració.
Durant la instal·lació, es generen i s'instal·len alguns certificats generals autofirmats per a l'aplicació. Personalment, prefereixo tenir els meus propis certificats autofirmats per mostrar els valors que he introduït i també vull assegurar-me que totes les sol·licituds s'enviïn per HTTPS.
Zarafa inclou uns quants scripts per generar els vostres propis certificats. Aquests són, per descomptat, certificats autofirmats.
Fem una casa per a l'autoritat de certificació.
mkdir -p /etc/zarafa/ssl
chmod 700 /etc/zarafa/ssl
cd /etc/zarafa/ssl
... després executeu l'script:
sh /usr/share/doc/zarafa/ssl-certificates.sh server
El paràmetre "servidor" significa que el certificat que creem s'anomenarà 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
Veureu una petita activitat a la pantalla i, a continuació, us demanarà una contrasenya PEM. Aquesta és la contrasenya del server.pemfitxer que hem creat. Introduïu qualsevol cosa que vulgueu, però assegureu-vos que no ho oblideu. Per simplificar, utilitzarem "server-pem-phrase".
Enter PEM pass phrase:**server-pem-phrase**
Verifying - Enter PEM pass phrase:**server-pem-phrase**
Hora d'introduir els valors del server.pemfitxer.
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**
Alguna activitat a la pantalla mostra que el certificat està generat.
Sign the certificate? [y/n]:
Introduïu Y i premeu Intro/Retorn .
1 out of 1 certificate requests certified, commit? [y/n]
Introduïu Y i premeu Intro/Retorn .
Create public key from this certificate? [y]
Realment no el necessitem, però suposo que no està de més crear-lo. Simplement premeu Intro/Retorn .
Enter pass phrase for server.pem: **server-pem-phrase**
Ara és el moment de configurar el server.cfgfitxer per a Zarafa.
nano /etc/zarafa/server/cfg
Cerqueu l'entrada server_ssl_enabledi canvieu-ne el valor a "sí" (sense les cometes).
Cerqueu l'entrada server_ssl_porti confirmeu que és 237.
Cerqueu l'entrada server_ssl_key_filei establiu-ne el valor a " /etc/zarafa/ssl/server.pem" (sense les cometes).
Creeu l'entrada, server_ssl_key_passutilitzeu la frase de contrasenya que heu creat per al server.pemfitxer (exemple: server-pem-frase) com a valor.
Busca l'entrada server_ssl_ca_file. La documentació original de Zarafa suposa que el camí és /etc/zarafa/ssl/demoCA/cacert.pem, però a CentOS, el camí és /etc/pki/CA/cacert.pem. Actualitzeu aquest valor en conseqüència.
server_ssl_ca_file = /etc/pki/CA/cacert.pem
Reinicieu el servidor Zarafa.
service zarafa restart
Generem el certificat per a Apache.
cd /etc/zarafa/ssl
openssl req -nodes -newkey rsa:2048 -keyout zarafa-ssl.key -out zarafa-ssl.csr
Obtenim un altre formulari per crear un certificat.
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**
A continuació, signeu el certificat.
openssl x509 -req -in ./zarafa-ssl.csr -signkey zarafa-ssl.key -out zarafa-ssl.crt -days 9999
... i afegiu-lo a Apache.
cd /etc/httpd/conf.d
nano ssl.conf
Cerqueu la línia "SSLCertificateFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.crt" i canvieu-la a "SSLCertificateFile /etc/zarafa/ssl/zarafa-ssl.crt".
Cerqueu la línia "SSLCertificateKeyFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.key" i canvieu-la a "SSLCertificateKeyFile /etc/zarafa/ssl/zarafa-ssl.key"
Deseu el fitxer i sortiu.
Ara, obriu el zarafa-webapp.conffitxer.
nano /etc/httpd/zarafa-webapp.conf
Busca les 2 línies següents i descomenta-les.
#php_flag session.cookie_secure on
#php_flag session.cookie_httponly on
Afegiu les línies següents.
RewriteEngine On
RewriteCond % !=on
RewriteRule (.*) https://pegasus.example.com/webapp/ [R] (Of course use your own real domain here)
Deseu el fitxer i sortiu. A continuació, reinicieu Apache.
service httpd restart
Ara l'aplicació web sempre utilitzarà HTTPS. Podeu fer el mateix per zarafa-webapp.conf.
Quan vaig provar la instal·lació a CentOS, vaig notar alguns missatges d'error a causa de la falta de carpetes. Podeu solucionar-ho amb les ordres següents.
mkdir -p /var/run/policyd-weight/cores/master
mkdir -p /var/run/policyd-weight/cores/cache
chown -R polw /var/run/policyd-weight
Per utilitzar el vostre nou servidor de Zarafa com a servidor de correu del vostre domini, haureu de configurar tant un registre A com un registre MX per al vostre domini. Si ho desitgeu, podeu utilitzar el vostre motor de cerca preferit per trobar un assistent SPF, cosa que facilita la creació d'un registre SPF per al vostre domini.