Există multe soluții care înlocuiesc Microsoft Exchange cu o soluție Linux, dar toate au avut o problemă pe care mi-a plăcut cu adevărat. Când am primit invitații la ședințe, aceștia vor ajunge ca atașamente pe dispozitivele mele iOS și nu se vor deschide direct în aplicația din calendar. Zarafa a fost singura soluție pe care am testat-o, care va deschide evenimentele din calendar în aplicația calendaristică. Acest ghid vă va învăța cum să configurați Zarafa și Yaffas pe CentOS 6.
Înainte de a începe
Facem următoarele presupuneri pentru a facilita înțelegerea configurației. Cu toate acestea, ar trebui să folosiți propriile valori reale pentru aceste articole:
- Domeniul pe care vreau să primesc e-mail este „exemplu.com”. Utilizatorii sunt ca „[email protected]”, „[email protected]”.
- Numele de gazdă pentru serverul de poștă este "pegasus", deci numele de domeniu complet pentru serverul respectiv este "pegasus.example.com".
- Ori de câte ori folosesc termenul „panou de control al serverului”, mă refer la panoul vultr.com .
Pregătirea serverului (VPS)
Începeți prin a implementa instanța de server vultr.com. Am ales 1 GB VPS care rulează CentOS 6, pe 32 de biți. După terminarea instalării, pregătim serverul să devină un server de poștă.
În ecranul „Serversii mei” din panoul de control al serverului, faceți clic pe linkul „Gestionați” de lângă serverul dvs. recent creat. Pe pagina care se deschide, puteți vedea detaliile pentru serverul dvs. Faceți clic pe fila IPv4, apoi faceți clic pe butonul albastru „Actualizare”. Apare un câmp de introducere a textului și este pre-setat cu ceva de genul „.vultr.com”. Înlocuiți acea intrare cu numele complet de domeniu al serverului dvs. (exemplu: pegasus.example.com) și apăsați butonul albastru „Actualizare”.
Acum este timpul să vă conectați la noul server. Deschideți-vă terminalul ssh și conectați-vă la server. În mod alternativ, puteți face clic pe butonul albastru „View Console” pentru a obține fereastra browserului cu ecranul de conectare al serverului dvs.
ssh root@your_ip_address
Partea " your_ip_address" este adresa IP principală, astfel cum este listată în panoul de control al serverului. Dacă utilizați browserul pentru a vă conecta la serverul dvs., atunci pur și simplu conectați-vă ca root cu parola root.
În primul rând, setăm numele de domeniu corect. Deschideți fișierul de configurare a rețelei.
nano /etc/sysconfig/network
Înlocuiți „vultr.guest” cu numele de domeniu complet al serverului dvs. (Exemplu: pegasus.example.com). Salvați fișierul cu Ctrl + X , apoi Y .
Al doilea spot pe care îl schimbăm este /etc/hostsfișierul.
nano /etc/hosts
Adăugați următoarea linie. Poate fi în partea de sus a fișierului sau a doua linie.
127.0.1.1 pegasus.example.com pegasus
Salvați fișierul cu Ctrl + X , apoi Y . Îmi place să mă asigur că totul funcționează după o repornire, așa că repornesc VPS-ul după aceste modificări.
reboot
Oferă mașinii un moment pentru a reporni, apoi conectați-vă din nou.
ssh root@your_ip_address
Yaffas și Zarafa au nevoie de depozitul EPEL, care este deja instalat în sursele de pe serverele vultr.com. Au nevoie și de depozitul RPMforge. Emite următoarea comandă pentru a instala acel depozit.
Sisteme pe 32 de biți:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
Sisteme pe 64 de biți:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
În continuare, adăugăm depozitul Yaffas.
nano /etc/yum.repos.d/yaffas.repo
Inserați următorul text în fișierul nou creat:
[yaffas]
name = yaffas $releasever
baseurl = http://repo.yaffas.org/releases/latest/rhel/$releasever
enabled = 1
protect = 0
gpgcheck = 1
priority = 1
Salvați fișierul cu Ctrl + X , apoi Y .
Pentru a evita problemele de compatibilitate, trebuie să excludem unele elemente din depozitul EPEL. Deschideți fișierul de depozitare.
nano /etc/yum.repos.d/epel.repo
Apoi, în [epel]secțiune, chiar sub linia "gpgkey", introduceți următoarele.
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*
Secțiunea completă va arăta astfel:
[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*
Salvați fișierul cu Ctrl + X , apoi Y .
Importați cheia GPG pentru depozitul Yaffas:
rpm --import http://repo.yaffas.org/repo.rpm.key
Acum, hai să curățăm yum.
yum clean all
În acest moment, ar trebui să fim pregătiți pentru instalarea Yaffas. Instalați-o prin simpla introducere a acestei comenzi.
yum install yaffas
Yum va verifica dependențele și vă va oferi un rezumat.
Install 359 Package(s)
Total download size: 260 M
Installed size: 639 M
Is this ok [y/N]:
Apăsați Y , apoi Enter / Return pentru a începe instalarea.
Instalarea va dura un timp, așa că tratați-vă la o cafea și un cookie în așteptarea finalizării instalării.
MySQL
Înainte de a putea începe configurarea finală, trebuie să configurăm MySQL. Porniți MySQL și începeți configurarea sigură.
service mysqld restart
mysql_secure_installation
Pentru a vă conecta la MySQL pentru ao securiza, vom avea nevoie de parola curentă pentru utilizatorul root. Dacă tocmai ați instalat MySQL și nu ați setat încă parola rădăcină, parola va fi goală, așa că trebuie doar să apăsați Enter / Return aici.
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**
configurație
Deschideți un browser web și accesați următoarea adresă URL.
http://your_ip_address:10000
#If you have a DNS entry already, use this instead.
http://server.example.com:10000
Numele de utilizator inițial este admincu parola yaffas.
După conectare, veți vedea expertul de configurare. Are 5 trepte. Apăsați „Următorul” pentru a începe.
Primul pas este introducerea unei noi parole de admin. Introduceți noua parolă de două ori. Asigurați-vă că este suficient de complicat pentru a fi în siguranță, dar nu uitați. Apoi faceți clic pe „Următorul”.
Următorul ecran configurează backendul MySQL. Singurul lucru pe care trebuie să-l introduci este parola pe care ai creat-o pentru utilizatorul rădăcină MySQL.
Pe ecranul 4, configurați-vă domeniul de e-mail. Introduceți „exemplu.com” în câmpul domeniului de mail principal. Acesta trebuie să fie propriul dvs. domeniu. Apăsați „Următorul”.
Consider că al cincilea ecran este opțional, dar doar pentru a fi în siguranță, creați un cont de utilizator care va fi administratorul LDAP, apoi faceți clic pe „Finalizează”.
Va dura ceva până se termină configurarea. După ce se completează, apare un pop-up care vă spune că totul a avut succes. Faceți clic pe butonul „OK”. După un moment, veți vedea din nou ecranul de conectare. Vă puteți autentifica ca admin cu noua parolă creată în timpul instalării.
În timpul instalării, sunt generate și instalate unele certificate generale autofirmate pentru aplicație. Personal, prefer să am propriile certificate certificate pentru a arăta valorile pe care le-am introdus și, de asemenea, vreau să mă asigur că toate solicitările sunt trimise prin HTTPS.
Zarafa vine cu câteva scripturi pentru a vă genera propriile certificate. Acestea sunt desigur certificate auto-semnate.
Să facem o casă pentru autoritatea de certificare.
mkdir -p /etc/zarafa/ssl
chmod 700 /etc/zarafa/ssl
cd /etc/zarafa/ssl
... apoi executați scriptul:
sh /usr/share/doc/zarafa/ssl-certificates.sh server
Parametrul „server” înseamnă că certificatul creat de noi va fi apelat server.pem.
Veți fi întâmpinat cu următorul mesaj.
No Certificate Authority Root found in current directory.
Press enter to create, or ctrl-c to exit.
Apăsați Enter sau Return .
Următorul mesaj care apare este:
CA certificate filename (or enter to create)
Apăsați Enter sau Return pentru a continua și crea certificatul CA.
După o mică activitate pe ecran, veți primi o solicitare de introducere a parolei PEM. Introduceți orice parolă pentru certificatul CA, dar asigurați-vă că nu o uitați, deoarece veți avea nevoie mai târziu. Pentru simplitate, să presupunem că am ales fraza „ca-root-pem”.
Răspundeți la întrebări pentru a genera certificatul. Răspunsurile de aici sunt exemplele mele, deci înlocuiți-le cu valorile corecte pentru voi.
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**
În continuare, vă va solicita fraza de acces a cakey.pemfișierului. Aceasta este fraza de acces creată anterior.
Enter pass phrase for /etc/pki/CA/private/./cakey.pem:ca-root-pem
Veți vedea o mică activitate pe ecran, apoi vă va solicita o parolă PEM. Aceasta este fraza de acces pentru server.pemfișierul creat de noi. Introduceți orice doriți, dar asigurați-vă că nu uitați. Pentru simplitate vom folosi „fraza server-pem”.
Enter PEM pass phrase:**server-pem-phrase**
Verifying - Enter PEM pass phrase:**server-pem-phrase**
Timpul pentru a introduce valorile pentru server.pemfișier.
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**
Unele activități de pe ecran arată că certificatul este generat.
Sign the certificate? [y/n]:
Introduceți Y și apăsați Enter / Return .
1 out of 1 certificate requests certified, commit? [y/n]
Introduceți Y și apăsați Enter / Return .
Create public key from this certificate? [y]
Chiar nu avem nevoie de el, dar cred că nu doare să-l creăm. Pur și simplu apăsați Enter / Return .
Enter pass phrase for server.pem: **server-pem-phrase**
Acum este timpul să configurați server.cfgfișierul pentru Zarafa.
nano /etc/zarafa/server/cfg
Găsiți intrarea server_ssl_enabledși schimbați valoarea acesteia în „da” (fără ghilimele).
Găsiți intrarea server_ssl_portși confirmați că este 237.
Găsiți intrarea server_ssl_key_fileși setați valoarea acesteia pe " /etc/zarafa/ssl/server.pem" (fără ghilimele).
Creați intrarea server_ssl_key_passfolosind fraza de acces pe care ați creat-o pentru server.pemfișier (exemplu: server-pem-fraza) ca valoare a acestuia.
Găsiți intrarea server_ssl_ca_file. Documentația originală pentru Zarafa presupune că calea este /etc/zarafa/ssl/demoCA/cacert.pem, totuși, pe CentOS, calea este /etc/pki/CA/cacert.pem. Actualizați această valoare în consecință.
server_ssl_ca_file = /etc/pki/CA/cacert.pem
Reporniți serverul Zarafa.
service zarafa restart
Să generăm certificatul pentru Apache.
cd /etc/zarafa/ssl
openssl req -nodes -newkey rsa:2048 -keyout zarafa-ssl.key -out zarafa-ssl.csr
Obținem un alt formular pentru a crea 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 []: **[email protected]**
Apoi, semnează certificatul.
openssl x509 -req -in ./zarafa-ssl.csr -signkey zarafa-ssl.key -out zarafa-ssl.crt -days 9999
... și adăugați-l la Apache.
cd /etc/httpd/conf.d
nano ssl.conf
Găsiți linia „SSLCertificateFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.crt” și schimbați-o în „SSLCertificateFile /etc/zarafa/ssl/zarafa-ssl.crt”.
Găsiți linia "SSLCertificateKeyFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.key" și schimbați-o în "SSLCertificateKeyFile /etc/zarafa/ssl/zarafa-ssl.key"
Salvați fișierul și renunțați.
Acum, deschideți zarafa-webapp.conffișierul.
nano /etc/httpd/zarafa-webapp.conf
Găsiți următoarele 2 rânduri și dezlipiți-le.
#php_flag session.cookie_secure on
#php_flag session.cookie_httponly on
Adăugați următoarele rânduri.
RewriteEngine On
RewriteCond % !=on
RewriteRule (.*) https://pegasus.example.com/webapp/ [R] (Of course use your own real domain here)
Salvați fișierul și renunțați. Apoi reporniți Apache.
service httpd restart
Acum aplicația web va folosi întotdeauna HTTPS. Puteți face același lucru pentru zarafa-webapp.conf.
Când testam instalarea pe CentOS, am observat unele mesaje de eroare din cauza folderelor lipsă. Puteți să o rezolvați cu următoarele comenzi.
mkdir -p /var/run/policyd-weight/cores/master
mkdir -p /var/run/policyd-weight/cores/cache
chown -R polw /var/run/policyd-weight
Pentru a utiliza noul dvs. server Zarafa ca server de e-mail pentru domeniul dvs., va trebui să configurați atât o înregistrare A, cât și o înregistrare MX pentru domeniul dvs. Dacă doriți, puteți utiliza motorul dvs. de căutare preferat pentru a găsi un Expert SPF, ceea ce face ușoară crearea unei înregistrări SPF pentru domeniul dvs.