CentOS 8 / RHEL 8 üzerine Zimbra Mail Server Kurulumu

Merhabalar,

Zimbra Collaboration Suite hakkında, aslında çoğumuzun Zimbra Mail Server olarak bildiğimiz yapı için güzel bir seriye başlamıştık. İlk makalemiz genel olarak teorik kısımları ve mimariyi özetleyen bir makale olmuştu. İlgili bilgilere aşağıdaki linkten ulaşabilirsiniz.

Bu makalemizde de tamamen teknik işlemler yer alacak ve baştan sona, bir Zimbra Mail sunucunun, CentOS ya da RedHat linux sistemi üzerine nasıl kurulacağını detaylı şekilde ele alacağız. Oldukça ayrıntılı ve basit bir anlatımla, aslında hiç de zor olmayacağını göreceksiniz. Burada asıl anlatmak istediğim, teknik işlerden ziyade bir mantık çerçevesinde, bu sistemlerin nasıl kurulup yapılandırılabileceğidir.

İlerleyen makalelerimde, bu sistemlerin sadece çalışma mantığıyla ilgili, algoritmalarla ve topoloji dizaynlarıyla, daha da detaylı bilgiler aktarmayı hedefliyorum.

Bu makaleyi yazdığım dönemde v9 duyurulmuştu fakat yayınlanmamıştı. Dolayısıyla kurulumu Zimbra 8.8 versiyonu için yapacağız.

Dilerseniz teknik işlerimize hızlıca başlayalım.

1. Sistem gereksinimleri:

Evaluation ve Test ortamları için:

  • Intel/AMD 64-bit CPU 1.5 GHz
  • RAM gereksinimleri:
    • Single server yüklemesi için, minimum 8GB RAM gereklidir
    • Multi-server yüklemesi için, Zimbra satış ekibinden destek alınız
  • Yazılım ve log alanı olarak 5 GB disk alanı
  • Yüklemeler ve upgrade’ler için temp alanı
  • Mail storage için ek disk alanı

Production ortam gereksinimleri:

  • Intel/AMD 2.0 GHZ+ 64-bit CPU : 4 CPU önerilmektedir
  • RAM gereksinimleri:
    • Single server yüklemesi için, minimum 8GB RAM gereklidir
    • Multi-server yüklemesi için, Zimbra satış ekibinden destek alınız
  • Yazılım ve log alanı olarak 5 GB disk alanı.
  • 10 GB boş disk alanı (Performans için SATA ya da SCSI, ve hata töleransı için RAID/Mirroring)
  • Mail storage için ek disk alanı
  • Temp dosya alanı: Zimbra-store, /opt/zimbra için 5GB alana ihtiyaç duyar. /opt >10GB – /opt/zimbra partition, ayrı bir partition olarak önerilmektedir.
  • Ek olarak, mail storage için de alan gereklidir.

Cloud Platforms

Aşağıdaki Cloud Platformları desteklenmektedir:

  • Oracle Cloud
  • VMware vCloud Director
  • VMware vCloud Air

Virtualization Platformları

Aşağıdaki hypervisor’lar desteklenmektedir:

  • VMware vSphere 6.x
  • VMware vSphere 5.x
  • VMware vSphere 4.x
  • XenServer 6.5
  • XenServer 6.2
  • KVM

İşletim sistemleri:

Aşağıdaki işletim sistemleri desteklenmektedir:

  • Red Hat® Enterprise Linux® 7 (64-bit)
  • CentOS Linux® 7 (64-bit)
  • Red Hat Enterprise Linux 6 (64-bit), patch level 4 veya üstü
  • CentOS Linux 6 (64-bit), patch level 4 veya üstü
  • Oracle Linux 7.2
  • Oracle Linux 6.6
  • Ubuntu 16.04 LTS Server Edition (64-bit), Zimbra Collaboration 8.7.1 ve üstü ile başladı
  • Ubuntu 18.04 LTS Server Edition (64-bit), Zimbra Collaboration 8.8.12 ve üstü ile başladı (Beta)

Disk: /opt >10GB – /opt/zimbra partition, ayrı bir partition olarak önerilmektedir.

DNS Kayıtları:

Mail Domain:  

  • MX kaydı, örneğin webmail.yusufisleyen.com.tr
  • MX kaydı için, bir de A kaydı gerekmektedir.

MX ve A kaydını, alan adınızı register ettiğiniz servis sağlayıcıdaki kontrol panelinizden açabilirsiniz. Eğer DNS sunucunuzu kendi yapınızda tutuyorsanız, bu kayıtları kendi sisteminiz üzerinde açmanız gerekmektedir.

2. Ön Hazırlıklar:

DNS kayıtlarının açılması, MX ve A kaydı nasıl açılır?

DNS, çok önemli bir konudur. Dolayısıyla bu kayıtların eksiksiz olması gerekmekte. Kayıtları açtığınız anda aktif olmayacağı ve belli bir süre de geçeceği için, bu kurulumlardan önce tüm kayıtları açmanızı öneriyorum.

com.tr domainleri için METUnic portalından işlem yapılmakta. Kendi panelimde, DNS kayıtları altında bu kayıtları açacağım. Sabit bir dış IP adresine sahip değilim. Dolayısıyla şu anki adresimi yazarak bu örneği açıklayacağım. Normalde sabit bir dış IP adresiniz olmalı. Yoksa IP adresiniz değiştiğinde spama düşebilirsiniz. 🙂 Bu arada, konuyla ilgili değil ama burada kullandığım örneğe istinaden belirtmekte fayda görüyorum, isimsoyisim.com.tr şeklindeki alan adlarınızı, çok uygun fiyatla register edebiliyorsunuz. Belgeye gerek kalmıyor ve sadece kimlik belgenizle kendi isimsoyisim.com.tr domaninizi alabiliyorsunuz.:) İsim benzerliği olma ihtimaline karşı bence hemen bunu sorgulayın. Dijital dünyada, isim hakkınızı da korumanızda fayda var. 🙂 Dolayısıyla, ön hazırlıklar safhasında, “kendiniz için yapacağınız ilk şeylerden biri bu olsun” önerisini sunmak istedim…

Gelelim kayıtlarımızı açma işlemine. Kullanacağım mail domain isimleri ve kayıt tipleri aşağıdaki gibi olacak. Tekrar belirtmekte fayda görüyorum, bu IP adresim, geçici bir adres. Şimdi bu IP’ye saldırı ya da tarama yapma fikri canlandıranları da görür gibi olduğum için tekrar etmekte fayda gördüm… Yaramazlık yok yani 😉

DNS kayıtlarınızı, bir servis sağlayıcı üzerinde tutuyorsanız, öncelikle yönetim panelinize bağlanın. Daha sonra DNS ayarlarınızın olduğu yönetim arayüzüne geçin.

Önce A kaydı açmak için, A sekmesinde iken, sunucu adı için webmail.yusufisleyen.com.tr yazıyorum ve yönlendirilecek yer kısmına da dış IP adresimi yazıp kayıt oluştur seçeneği ile işlemi bitiriyorum.

Aynı işlemi MX sekmesinde, mail  server ismini tanımlayarak tekrarlıyorum. Bu kayıt da webmail.yusufisleyen.com.tr olacak.

Kayıtların açılmış hali aşağıdadır. TTL değeri olarak default değeri bırakıyorum. İsterseniz, DNS kayıt değişikliklerinin daha hızlı ve sık aralıklarla güncellenmesi için, daha düşük bir değer yazabilirsiniz. Saniye cinsindendir ve benim yaptığım ayara göre, 1 saat sonra (60 dk.) dünya üzerindeki tüm DNS sunucu kayıtlarında güncellenmiş ve erişilebilir olacak.

DNS kayıtlarımız şimdilik yeterli. Farklı kayıtlar açılması gerektiğinde, ilgili sekmeler altından, kendi domain kayıtlarınızı bu şekilde oluşturabilirsiniz.

Hazır kayıtlarımız açılmışken, sunucumuzun host dosyasına da bu A kaydını yazalım.

echo “IP_Adresi  webmail.yusufisleyen.com.tr webmail” >> /etc/hosts

echo “IP_Adresi  yusufisleyen.com.tr” >> /etc/hosts (Bu satır, opsiyoneldir.)

echo “Local_IP_Adresi  webmail.yusufisleyen.com.tr webmail” >> /etc/hosts (Bu satır, opsiyoneldir.)

Bu komut, hosts dosyasının sonuna, “ “ içindeki satırı ya da değeri yazar.

cat /etc/hosts

Artık DNS kayıtlarıyla işimiz bitti. Eğer kayıtlarınızın güncellenmesini beklediyseniz ve yeterli süre geçmişse, aşağıdaki komutla DNS kayıtlarınızın kontrolünü de yapabilirsiniz. Minimal kurulumda, yüksek ihtimalle dig komutunuz yüklü olmayacaktır. Bu komut, bind-utils aracı ile gelmektedir. Bu komut bileşeni, ilerleyen adımlarda sisteme yüklenmiştir. Aşağıdaki görüntü de, bu komut yüklendikten sonra alınmıştır.

3. Sunucu gereksinimleri ve konfigürasyonları

Kullandığım sunucuda 4 CPU, 8 GB Memory var. Ayrıca /opt partition 10 GB üstü ve ayrı partition olması öneriliyor. Fakat ben, test ortamı olduğu için otomatik partitioning yaptım. Şu an /opt alanı ve kullanımı yeterli düzeyde.

free -h

df -hT /opt

Eğer manual partitioning yapmak isterseniz, bununla ilgili de çok detaylı bir makalem bulunmaktadır. Aşağıdaki linkten de bu detaylara ulaşabilirsiniz.

Aşağıdaki komut ile sunucu ismini tanımlıyoruz. Ben daha önceden bu ayarları, sunucumu kurarken yapmıştım ve görüntüler o ekrandan. Komut satırından hostname değişimi de bu şekildedir.

hostnamectl set-hostname webmail.yusufisleyen.com.tr

Kontrol sağlayalım.

Daha detaylı görebilmek için aşağıdaki komutu da kullanabilirsiniz.

hostnamectl

Sunucuyu full update yapalım. İlk kurulum sonrası full update yaptığım için, sunucumda yeni update görünmemekte. Sizin sunucuda, yüksek ihtimalle update bulunacak ve kurulumları yapılacaktır.

dnf update -y

Epel repository ve çeşitli araçları yükleyelim.

dnf install epel-release dnf-utils -y

dnf config-manager –enable PowerTools

Gerekli paketleri yükleyelim…

dnf install -y bash-completion vim curl wget unzip openssh-clients telnet net-tools sysstat perl-core libaio nmap-ncat libstdc++.so.6 bind-utils tar rsyslog

3.a. NTP ve Timezone ayarları

Bölgesel ayarlar ve saat bilgisi, en önemli konulardan bir tanesi. Bundan dolayı, doğru olduklarından emin olmalıyız, doğru değilse de uygun konfigürasyonu yapmalıyız. Ben sunucuyu ilk kurarken, tüm ayarları olması gerektiği gibi seçmiştim. Eğer ilk kurulumda bunları değiştirmediyseniz, aşağıdaki gibi değiştirebilirsiniz.

Şu anki bölgesel ayarlarınızı görmek için aşağıdaki komutu kullanalım.

timedatectl

Sizde farklı değerler görünüyorsa, aşağıdaki komutları sırasıyla çalıştırarak, kendi bölgesel ayarlarımızı tanımlayalım.

dnf install chrony -y
timedatectl set-timezone Europe/Istanbul
systemctl enable –now chronyd
chronyc sources

Tekrar ayarlarımızı kontrol edelim ve düzeldiğinden emin olalım.

timedatectl

Son olarak dil ve karakter setini görmek için aşağıdaki komutu kullanabilirsiniz. Ben genelde, uyumluluk sorunları ihtimaline karşı ingilizce olarak bırakıyorum.

localectl

3.b. Local Firewall devre dışı bırakma

Zimbra kurulumunda, local firewall devre dışı bırakılması önerilmekte. Bunu yapmazsanız, merkezi bir firewall’da ayar yapsanız bile, kurulum yaptığınız işletim sistemi içerisindeki local firewall için de ilgili servislere erişim kuralı yazmadığınız sürece erişim sağlayamazsınız. Dolayısıyla aynı anda iki yönetim arayüzünden iş yapmak zorunda kalıyorsunuz. Çoğu zaman local firewall’un açık olabileceğini de göz ardı ettiğinizi düşünürsek, problem çözme konusunda ayak bağı olabilir. Bizim için önemli olan, güvenliği merkezileştirmek ve tek bir yönetim arayüzünden konfigürasyon yapmak. Bundan dolayı, sadece merkezi firewall üzerinde erişim kuralları yazacağım için, local firewall devre dışı bırakacağım.

Aşağıdaki komutların ilki, firewall servisini durduracak, ikincisi ise disable duruma getirecektir.

systemctl stop firewalld
systemctl disable firewalld

3.c. SELinux devre dışı bırakma

SELinux genelde başımızı ağırttığı için, ben disable etmeyi uygun görüyorum. Merkezi firewall kullanacağım ve yukarıda açıkladığım sebeplerden dolayı da local güvenlik yapılandırmalarını devre dışı bırakmayı tercih ediyorum.

Aşağıdaki komut ile, SELinux çalışma durumunu görebiliriz.

sestatus

Enable durumda görünüyor ve aşağıdaki komut ile SELinux config dosyasında, disable duruma getiriyoruz.

vi /etc/selinux/config

SELINUX=disabled yapıyoruz ve kaydedip dosyadan çıkıyoruz.

Bu işlem, sunucu restart’ı gerektiriyor. Sunucumuzu restart ediyoruz.

systemctl reboot

4. Zimbra Server kurulumu

Buraya kadar yaptığımız işlemlerin tamamı, hazırlık işlemleriydi. Artık Zimbra Mail Server kurulumuna başlayabiliriz.

/tmp dizinde çalışmak istediğim için öncelikle bu dizine geçiş yapıyorum, sonra da aşağıdaki komutla kurulum dosyasını, bulunduğum dizine download ediyorum.

cd /tmp

wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3953.RHEL8_64.20200629025823.tgz

Tar dosyasını açalım.

tar xzvf zcs-8.8.15_GA_3953.RHEL8_64.20200629025823.tgz

zcs-8.8.15…… gibi uzunca bir dizin oluşturdu. Komut satırımda çok geniş bir alan kaplamaması için bu dizin ismini değiştirip ZimbraSetup yaparak kısaltacağım. Sonra da ZimbraSetup dizinine geçeceğim.

mv zcs-8.8.15_GA_3953.RHEL8_64.20200629025823 ZimbraSetup
cd ZimbraSetup

Bu dizin içeriği aşağıdaki gibidir.

README.txt – readme dosyasıdır. Yazılım hakkında genel bilgileri okuyabilirsiniz.
install.sh – Yükleme scriptidir.
bin/ – Yükleme sırasında kullanılacak binary dosyaları bulunur.
data/ – Yükleme verilerini içerir.
packages/ – ZCS rpms dosyalarını içerir. Zimbra’ya has yükleme paketleri burada bulunur.
docs/ – Zimbra için tüm dökümantasyon dosyaları bulunur.

Yükleme işlemine install.sh çalıştırarak başlıyoruz.

./install.sh

Anlaşmayı kabul edip devam etmek için Y tuşuna basıyoruz.

Zimbra repo’larını kullanmak için de Y tuşuna basıyoruz.

En alttaki zimbra-imapd BETA adımına kadar, tüm seçenekleri Y ile geçiyoruz. Sadece Enter tuşuyla devam etseniz de olur, çünkü default seçeneği zaten Yes olarak veriliyor.

zimbra-chat için de Y ile devam ediyoruz.

Sistemin modifiye edileceğine dair uyarıyı da Y ile kabul ediyoruz.

Gerekli bileşenler download edilir ve kurulum başlar.

Burada DNS hatası alabiliriz, fakat sorun yok. Çünkü webmail.yusufisleyen.com.tr için MX kaydı açılmıştı ve bunu çözdüğünü görebiliyoruz. Burada Zimbra Admin panelinde görünecek, domain isim belirleme işlemi yapıyoruz aslında. Eğer bu şekilde kullanırsam, admin panelde webmail.yusufisleyen.com.tr şeklinde görünecek. Ben domain bazlı görünmesini istiyorsam yusufisleyen.com.tr olarak bu ismi yeniden belirlemem gerekiyor.

Re-Enter donmain name : Yes

Create domain : yusufisleyen.com.tr

Konfigürasyon özeti, kullanılacak adres ve portlara dair bir menü görmekteyiz. Burada herşey tamam, fakat sadece ******** ile belirtilen Admin Password henüz belirlenmediğini anlıyoruz. Şimdi bu password tanımını yapacağız.

Bu menüye göre, password değiştirmek için 7. Maddeyi seçmem gerekiyor.

7. maddeye ait seçenekler açıldı ve şimdi de Admin password belirmek için 4. Maddeyi seçmem gerekiyor.

Burada bizden password istenecek, eğer enter ile geçersek, sistemin kendi atadığı parantez içindeki password kullanılacaktır. Ben burada test ortamı olduğu için Qwer1234* olarak belirledim.

Sonrasında, bir önceki menüye dönmek için r tuşuna basıyoruz.

Bir önceki menüye geri geldik. Eksik birşey kalmadığını görmekteyiz. Tüm bu ayarları uygulamak için a tuşuna basıyoruz.

Yaptığımız ayarların bir dosyaya kaydedilmesini istiyorsak Yes seçebiliriz. Default seçenek Yes olduğu için sadece Enter tuşuna basarak da geçilebilir.

En son kısımda, sistemin modifiye edileceğine dair uyarı çıkacak. Devam edebilmek için Yes yazıyoruz.

Kurulum ve konfigürasyon işlemleri başlıyor. Şimdi bir çay kahve alın ve kurulumun bitmesini bekleyin. 🙂

Tüm işlemlerin, sağlıklı şekilde bitmiş olması önemlidir. Yüklemeler bittiğinde, tüm adımların başarılı olduğunu teyit edip herhangi bir tuşa basarak, kurulum komut satırı arabiriminden çıkış yapabilirsiniz.

Zimbra servislerini kontrol edelim. Bunun için 2 yöntem var. ilki su komutuyla zimbra kullanıcı komut arabirimine geçiş yapabiliriz. Sonrasında kontrol komutumuzu çalıştırırız.

su zimbra

zmcontrol status

Tüm servisleri “running” görüyorsak problem yoktur. Eğer “running” göremiyorsanız, öncelikle sunucuyu restart etmeyi deneyebilirsiniz. Ben makalelerimi yazarken, problem çıkmasını ümit ederek işlemleri yapıyorum ki çıkacak problemlerin çözümünü de sizlerle paylaşayım. Şu an malesef ki problemli bir durum yok 🙂

Servis kontrolünde 2. yöntem ise zimbra kullanıcısına geçmeden direkt olarak kontrol komutunu çalıştırmak. Onu da aşağıdaki gibi kullanıyoruz.

su – zimbra -c “zmcontrol status”

Şimdi ise admin panelimize bağlanalım. E-mail sunucu URL ve sonuna 7071 portu yazarak login sayfamıza ulaşıyoruz.

Genel anlamda tüm servisleri ya da sadece belirli servisleri restart etmek istediğinizde, kullanacağınız komut şu şekildedir.

Örneğin tüm servisleri restart etmek istersek:

su – zimbra -c “zmcontrol restart”

zmcontrol komutunun kullanımını, zimbra kullanıcısına geçiş yaparak görebilirsiniz.

zmcontrol

https://mail_sunucu_URL:7071

Admin kullanıcımıza şifre belirlemiştik. Bu kullanıcıyla login oluyoruz.

Sunucu servislerimizi ve sunucu durumunu, Monitor arabiriminden takip edebiliriz. Sunucumuz, sağlıklı çalışmakta.

URL adresini port belirtmeden yazarsak, ilgili kullanıcının normal e-posta kutusuna, yani mail alıp gönderebileceği arayüze erişmiş oluyoruz.

Admin kullanıcısının posta kutusuna bağlanmış olduk.

5. Kurulum sonrası ayarlar:

Zimbra Collaboration Suite, zimbra adında, şifresi devre dışı bırakılmış bir işletim sistemi kullanıcısı oluşturur. Zimbra Collaborative Suite, ssh anahtarlarını kullanarak bu kullanıcıyla bağlantı kurar. Bu nedenle ssh anahtarlarını aşağıdaki gibi yapılandırmamız gerekiyor.

Bu işlemi zimbra kullanıcısı ile yapıyoruz.

su – zimbra
zmupdateauthkeys

Yönetim konsolunda sunucu istatistiklerini görüntülemek için, syslog yapılandırma dosyalarının aşağıdaki gibi değiştirilmesi gerekir.

Bu komutu da root kullanıcısı ile çalıştırmalıyız.

/opt/zimbra/libexec/zmsyslogsetup

ClamAV antivirüs kullanarak, e-posta eklerinin otomatik taranmasını etkinleştirmek için de aşağıdaki  komutu kullanıyoruz.

Bu komutları, zimbra kullanıcısı ile çalıştırıyoruz…

zmprov mcf zimbraAttachmentsScanURL clam://localhost:3310

zmprov mcf zimbraAttachmentsScanEnabled TRUE

Firewall’u, kurulum adımlarına başlamadan önce disable ettiğim için, zimbra için firewall konfigürasyonuna özellikle değinmiyorum. İstek olması haline, bu son kısma onları da ekleyebilirim.

Kurulum adımlarımızın tamamı bu şekildedir. oldukça basit ve detaylı aktarmış olduğuma inanıyorum. Sonraki makalelerimizde, ortamımıza göre ayarları yapmaya başlayacağız. Bunun dışında bazı ufak tefek problem çözümlerini de ayrı makaleler halinde sizlerle paylaşacağım.

Yararlı olması dileğiyle.

Yusuf İşleyen

One Reply to “CentOS 8 / RHEL 8 üzerine Zimbra Mail Server Kurulumu”

Comments are closed.