Prije nego što počnemo
Priprema poslužitelja (VPS)
MySQL
Konfiguracija
Dodaci
Opaske
Postoje mnoga rješenja koja zamjenjuju Microsoft Exchange rješenjem za Linux, ali sva su imala jedan problem koji mi se stvarno nije sviđao. Kad sam primio pozivnice za sastanke, stigle bi kao privici na moje iOS uređaje i ne bi se otvarale izravno u aplikaciji kalendar. Zarafa je bila jedino rješenje koje sam testirao i koje bi otvaralo kalendarske događaje u aplikaciji kalendar. Ovaj vodič će vas naučiti kako postaviti Zarafu i Yaffas na CentOS 6.
Prije nego što počnemo
Izrađujemo sljedeće pretpostavke kako bismo lakše razumjeli konfiguraciju. Međutim, trebali biste koristiti vlastite, stvarne vrijednosti za ove stavke:
- Domena na koju želim primati poštu je "example.com". Korisnici su poput "user1@example.com", "user2@example.com".
- Ime hosta za poslužitelj pošte je "pegasus", tako da je puni naziv domene za taj poslužitelj "pegasus.example.com".
- Kad god koristim izraz "upravljačka ploča poslužitelja", mislim na ploču vultr.com .
Priprema poslužitelja (VPS)
Započnite postavljanjem instance poslužitelja vultr.com. Odabrao sam 1 GB VPS s CentOS 6, 32-bit. Kada je instalacija gotova, pripremamo poslužitelj da postane poslužitelj pošte.
Na zaslonu "Moji poslužitelji" upravljačke ploče poslužitelja kliknite na vezu "Upravljanje" pored vašeg novostvorenog poslužitelja. Na stranici koja se otvori možete vidjeti pojedinosti za svoj poslužitelj. Kliknite karticu IPv4, a zatim kliknite plavi gumb "Ažuriraj". Pojavljuje se polje za unos teksta i unaprijed je postavljeno na nešto poput ".vultr.com". Zamijenite taj unos punim imenom domene vašeg poslužitelja (primjer: pegasus.example.com) i pritisnite plavi gumb "Ažuriraj".
Sada je vrijeme da se prijavite na novi poslužitelj. Otvorite svoj ssh terminal i povežite se sa svojim poslužiteljem. Alternativno, možete kliknuti plavi gumb "Prikaz konzole" da biste dobili prozor preglednika sa zaslonom za prijavu vašeg poslužitelja.
ssh root@your_ip_address
Dio " your_ip_address" je glavna IP adresa kako je navedena na upravljačkoj ploči poslužitelja. Ako koristite preglednik za povezivanje sa svojim poslužiteljem, jednostavno se prijavite kao root sa svojom root lozinkom.
Prvo postavljamo ispravan naziv domene. Otvorite datoteku mrežne konfiguracije.
nano /etc/sysconfig/network
Zamijenite "vultr.guest" punim imenom domene vašeg poslužitelja (Primjer: pegasus.example.com). Spremite datoteku s Ctrl + X , onda Y .
Drugo mjesto koje mijenjamo je /etc/hostsdatoteka.
nano /etc/hosts
Dodajte sljedeći redak. Može biti na vrhu datoteke ili u drugom retku.
127.0.1.1 pegasus.example.com pegasus
Spremite datoteku s Ctrl + X , onda Y . Volim biti siguran da sve radi nakon ponovnog pokretanja, pa ponovno pokrećem VPS nakon tih promjena.
reboot
Dajte stroju trenutak da se ponovno pokrene, a zatim se ponovno povežite.
ssh root@your_ip_address
Yaffas i Zarafa trebaju EPEL repozitorij, koji je već instaliran u izvorima na poslužiteljima vultr.com. I njima je potrebno RPMforge spremište. Izdajte sljedeću naredbu za instalaciju tog spremišta.
32-bitni sustavi:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
64-bitni sustavi:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
Zatim dodajemo Yaffas repozitorij.
nano /etc/yum.repos.d/yaffas.repo
Zalijepite sljedeći tekst u novostvorenu datoteku:
[yaffas]
name = yaffas $releasever
baseurl = http://repo.yaffas.org/releases/latest/rhel/$releasever
enabled = 1
protect = 0
gpgcheck = 1
priority = 1
Spremite datoteku s Ctrl + X , onda Y .
Kako bismo izbjegli probleme s kompatibilnošću, moramo isključiti neke stavke iz EPEL repozitorija. Otvorite datoteku spremišta.
nano /etc/yum.repos.d/epel.repo
Zatim u [epel]odjeljku, odmah ispod retka "gpgkey", unesite sljedeće.
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*
Kompletan odjeljak će izgledati ovako:
[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*
Spremite datoteku s Ctrl + X , onda Y .
Uvezite GPG ključ za Yaffas repozitorij:
rpm --import http://repo.yaffas.org/repo.rpm.key
Sada, počistimo njam.
yum clean all
U ovom trenutku, trebali bismo biti spremni za instalaciju Yaffasa. Instalirajte ga jednostavnim unosom ove naredbe.
yum install yaffas
Yum će provjeriti ovisnosti i dati vam sažetak.
Install 359 Package(s)
Total download size: 260 M
Installed size: 639 M
Is this ok [y/N]:
Pritisnite Y , zatim Enter/Return za početak instalacije.
Instalacija će potrajati, stoga se počastite kavom i kolačićima dok čekate završetak instalacije.
MySQL
Prije nego što počnemo s konačnim postavljanjem, moramo konfigurirati MySQL. Pokrenite MySQL i započnite sigurno postavljanje.
service mysqld restart
mysql_secure_installation
Kako bismo se prijavili na MySQL kako bismo ga osigurali, trebat će nam trenutna lozinka za root korisnika. Ako ste upravo instalirali MySQL, a još niste postavili root lozinku, lozinka će biti prazna, pa trebate samo pritisnuti Enter/Return ovdje.
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**
Konfiguracija
Otvorite web-preglednik i idite na sljedeći URL.
http://your_ip_address:10000
#If you have a DNS entry already, use this instead.
http://server.example.com:10000
Početno korisničko ime je adminsa lozinkom yaffas.
Nakon prijave, vidjet ćete čarobnjaka za postavljanje. Ima 5 koraka. Pritisnite "Dalje" za početak.
Prvi korak je unos nove lozinke administratora. Unesite novu lozinku dvaput. Provjerite je li dovoljno komplicirano da bude sigurno, ali nemojte to zaboraviti. Zatim kliknite "Dalje".
Sljedeći zaslon konfigurira MySQL pozadinu. Jedina stvar koju trebate unijeti je lozinka koju ste kreirali za MySQL root korisnika.
Na 4. zaslonu postavite svoju domenu e-pošte. Unesite "example.com" u polje primarne domene pošte. Ovo mora biti vaša vlastita domena. Pritisnite "Dalje".
Vjerujem da je 5. zaslon neobavezan, ali samo da biste bili sigurni, stvorite korisnički račun koji će biti LDAP administrator, a zatim kliknite "Završi".
Proći će neko vrijeme dok se postavljanje ne završi. Kada se završi, pojavljuje se skočni prozor koji vam govori da je sve bilo uspješno. Kliknite gumb "U redu". Nakon nekog trenutka ponovno ćete vidjeti zaslon za prijavu. Možete se prijaviti kao administrator s novom lozinkom koju ste kreirali tijekom postavljanja.
Tijekom instalacije generiraju se i instaliraju neki opći samopotpisani certifikati za aplikaciju. Osobno, više volim imati vlastite samopotpisane certifikate za prikaz vrijednosti koje sam unio i također želim biti siguran da se svi zahtjevi šalju putem HTTPS-a.
Zarafa dolazi s nekoliko skripti za generiranje vlastitih certifikata. To su naravno samopotpisani certifikati.
Napravimo dom za certifikacijsko tijelo.
mkdir -p /etc/zarafa/ssl
chmod 700 /etc/zarafa/ssl
cd /etc/zarafa/ssl
... zatim pokrenite skriptu:
sh /usr/share/doc/zarafa/ssl-certificates.sh server
Parametar "poslužitelj" znači da će se certifikat koji kreiramo zvati 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
Na zaslonu ćete vidjeti malu aktivnost, a zatim će od vas zatražiti PEM pristupnu frazu. Ovo je šifra za server.pemdatoteku koju smo kreirali. Unesite sve što želite, ali pazite da to ne zaboravite. Radi jednostavnosti koristit ćemo "server-pem-phrase".
Enter PEM pass phrase:**server-pem-phrase**
Verifying - Enter PEM pass phrase:**server-pem-phrase**
Vrijeme je za unos vrijednosti za server.pemdatoteku.
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**
Neka aktivnost na zaslonu pokazuje da je certifikat generiran.
Sign the certificate? [y/n]:
Unesite Y i pritisnite Enter/Return .
1 out of 1 certificate requests certified, commit? [y/n]
Unesite Y i pritisnite Enter/Return .
Create public key from this certificate? [y]
Nama baš i ne treba, ali pretpostavljam da ne škodi stvoriti ga. Jednostavno pritisnite Enter/Return .
Enter pass phrase for server.pem: **server-pem-phrase**
Sada je vrijeme da konfigurirate server.cfgdatoteku za Zarafu.
nano /etc/zarafa/server/cfg
Pronađite unos server_ssl_enabledi promijenite njegovu vrijednost u "da" (bez navodnika).
Pronađite unos server_ssl_porti potvrdite da je 237.
Pronađite unos server_ssl_key_filei postavite njegovu vrijednost na " /etc/zarafa/ssl/server.pem" (bez navodnika).
Izradite unos server_ssl_key_passkoristite šifru koju ste kreirali za server.pemdatoteku (primjer: server-pem-phrase) kao njezinu vrijednost.
Pronađite unos server_ssl_ca_file. Izvorna dokumentacija za Zarafu pretpostavlja da je put /etc/zarafa/ssl/demoCA/cacert.pem, međutim na CentOS-u je put /etc/pki/CA/cacert.pem. U skladu s tim ažurirajte ovu vrijednost.
server_ssl_ca_file = /etc/pki/CA/cacert.pem
Ponovno pokrenite Zarafa poslužitelj.
service zarafa restart
Generirajmo certifikat za Apache.
cd /etc/zarafa/ssl
openssl req -nodes -newkey rsa:2048 -keyout zarafa-ssl.key -out zarafa-ssl.csr
Dobivamo još jedan obrazac za izradu certifikata.
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**
Zatim potpišite certifikat.
openssl x509 -req -in ./zarafa-ssl.csr -signkey zarafa-ssl.key -out zarafa-ssl.crt -days 9999
... i dodajte ga u Apache.
cd /etc/httpd/conf.d
nano ssl.conf
Pronađite redak "SSLCertificateFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.crt" i promijenite ga u "SSLCertificateFile /etc/zarafa/ssl/zarafa-ssl.crt".
Pronađite redak "SSLCertificateKeyFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.key" i promijenite ga u "SSLCertificateKeyFile /etc/zarafa/ssl/zarafa-ssl.key"
Spremite datoteku i zatvorite.
Sada otvorite zarafa-webapp.confdatoteku.
nano /etc/httpd/zarafa-webapp.conf
Pronađite sljedeća 2 retka i dekomentirajte ih.
#php_flag session.cookie_secure on
#php_flag session.cookie_httponly on
Dodajte sljedeće retke.
RewriteEngine On
RewriteCond % !=on
RewriteRule (.*) https://pegasus.example.com/webapp/ [R] (Of course use your own real domain here)
Spremite datoteku i zatvorite. Zatim ponovno pokrenite Apache.
service httpd restart
Sada će web aplikacija uvijek koristiti HTTPS. Isto možete učiniti za zarafa-webapp.conf.
Prilikom testiranja instalacije na CentOS-u primijetio sam neke poruke o greškama zbog nedostajućih mapa. Možete ga popraviti pomoću sljedećih naredbi.
mkdir -p /var/run/policyd-weight/cores/master
mkdir -p /var/run/policyd-weight/cores/cache
chown -R polw /var/run/policyd-weight
Da biste koristili svoj novi Zarafa poslužitelj kao poslužitelj e-pošte za svoju domenu, morat ćete postaviti i A zapis i MX zapis za svoju domenu. Ako želite, možete koristiti svoju omiljenu tražilicu za pronalaženje SPF čarobnjaka, što olakšava stvaranje SPF zapisa za vašu domenu.