Showing posts with label server. Show all posts
Showing posts with label server. Show all posts

Instalasi Mail Server Zimbra 8.6 Open Source pada CentOS 6.5

Assalamu'alaikum Wr. Wb.
Halo lagi semuanya.... Kali ini saya akan membagikan sebuah tutorial spesial untuk temen-temen, yaitu mengenai Instalasi Zimbra 8.6 Open Source pada CentOS 6.5. Zimbra Open Source Edition merupakan sebuah software untuk membuat email server secara gratis dan praktis. Dan di samping fungsi utamanya sebagai mail server, Zimbra juga memiliki banyak fitur lainnya seperti Calendar, Task Management, dll.
Zimbra sudah menjadi favorit saya mulai dari Zimbra versi 6 (saat hak paten Zimbra masih dimiliki Yahoo), hingga sekarang. Kalo dihitung, kurang lebih sudah 6 tahun saya "bermain" dengan Zimbra. Dan alhamdulillah sudah jutaan rupiah bisa saya dapatkan hanya dengan jasa instalasi dan konfigurasi Zimbra yang saya terapkan di beberapa perusahaan. Sekarang sudah saatnya saya bagikan salah satu ilmu andalan saya ini kepada temen-temen.

Kita langsung mulai saja. Bismillahirrohmanirrohim...

Requirements

Sebuah software pasti memiliki persyaratan teknis agar software tersebut dapat berjalan dengan optimal, termasuk spesifikasi hardware. Berikut merupakan hardware requirement yang dibutuhkan agar Zimbra dapat berjalan optimal :
- Processor Dual Core (minimal)
- RAM 2 GB (minimal). Lebih optimal jika menggunakan RAM 4 GB atau lebih.
- LAN Gigabit Ethernet (recomended). Tidak disarankan menggunakan FastEthernet untuk diimplementasikan pada LAN.
- Hard Disk > 100 GB (tergantung banyaknya user email)

Persiapan

Jika komputer dengan spesifikasi di atas sudah kita persiapkan. Selanjutnya kita install dengan CentOS 6.5 64bit. Disarankan untuk tidak menambahkan GUI pada instalasi CentOS karena dapat memberatkan kinerja sistem sehingga Zimbra tidak dapat berjalan optimal. Setelah itu, setting IP Address pada CentOS, misalnya kita set IP 10.10.10.2. Tidak lupa pastikan koneksi internet berjalan. Untuk melakukan instalasi Zimbra juga kita mesti menggunakan user root (superuser) pada CentOS.
Hal yang harus dipertimbangkan lagi yaitu penggunaan text editor. Di sini saya akan menggunakan text editor nano dibandingkan vi. Karena penggunaanya lebih mudah dibandingkan vi. Tapi jika temen-temen sudah terbiasa dengan vi pun tidak masalah, yang penting bisa edit file, hehe.. :D
Jika CentOS belum memiliki text editor nano, bisa kita install dengan perintah :
# yum install -y nano

Prainstalasi

Waduh masih belum ke tahap instalasi juga nih? Ya memang untuk membangun sebuah server terkadang membutuhkan banyak tahap persiapan meskipun tahap instalasinya sangat mudah. Tapi dengan persiapan yang matang, sebuah rencana dapat dijalankan dengan mulus :)

Konfigurasi Hostname & DNS

Seperti anak yang baru lahir, server yang baru diinstall juga harus diberi nama. Maka dari itu, kita harus menentukan hostname sehingga Zimbra dapat mengenali nama server kita. Edit file /etc/hosts dengan perintah :
# nano /etc/hosts
Tambahkan baris berikut pada bagian bawah dalam file tersebut :
10.10.10.2 mail.domain.com mail
*ubah mail.domain.com dan mail sesuai dengan host/domain yang akan digunakan
Save hasil perubahan dengan cara Ctrl+O > [Enter], dan exit dengan Ctrl+X (jika menggunakan nano). Setelah itu restart CentOS dengan perintah :
# reboot
Kita sudah memberi nama pada server, tapi nama tersebut masih belum bisa dikenali oleh komputer lain. Agar komputer lain dapat mengenali server kita, maka kita harus mendaftarkannya pada DNS Server. Kalo temen-temen belum memiliki DNS Server, bisa di-install dan dikonfigurasi langsung  pada server ini sebelum menginstall Zimbra. 
Gimana caranya bikin DNS Server? Gampang, cukup baca aja tutorial Konfigurasi Bind9 (DNS Server) pada CentOS 6.5 dengan Chroot.
Agar calon server zimbra kita dapat dikenali, wajib ditambahkan baris berikut pada record DNS-nya :
IN MX 10 mail.domain.com. 
mail IN A 10.10.10.2
Record DNS untuk server Zimbra sudah kita daftarkan, tapi juga harus kita gunakan. Artinya server Zimbra ini harus menjadi DNS Client juga yang mengacu kepada DNS Server tersebut. Saatnya edit file /etc/resolv.conf dengan perintah :
# nano /etc/resolv.conf
Tambahkan baris berikut : (contoh IP nameserver di bawah jika DNS Server berada pada Zimbra Server)
nameserver 10.10.10.2
Agar konfigurasi DNS Client dapat langsung bekerja, restart network dengan perintah :
# /etc/init.d/network restart

Disable Service

Tahapan ini diperlukan karena beberapa aplikasi dan sistem keamanan pada CentOS dapat menghambat proses instalasi Zimbra. Keamanan pada CentOS seperti Firewall dan SELinux untuk sementara kita harus disable dahulu dan bisa kita konfigurasi ulang setelah proses instalasi Zimbra. Cara mengamankan CentOS dan Zimbra mungkin akan saya bahas lain kali di luar tutorial ini.
Ikuti langkah-langkah berikut :
Disable Postfix dan iptables.
# service iptables stop
# service ip6tables stop
# service postfix stop
# chkconfig postfix off
# chkconfig iptables off
# chkconfig ip6tables off
Edit file /etc/selinux/config untuk disable SELinux.
# nano /etc/selinux/config
Cari dan ubah bagian berikut :
SELINUX=disabled
Edit file /etc/sudoers
# nano /etc/sudoers
Cari bagian berikut dan tambahkan tanda pagar (#) seperti contoh di bawah :
#Defaults    requiretty
Restart CentOS dengan perintah :
# reboot

Install Package yang dibutuhkan

Sebelum melakukan instalasi Zimbra, kita perlu melakukan instalasi package-package pada CentOS yang dibutuhkan oleh Zimbra. Jalankan perintah berikut :
# yum -y install perl perl-core wget screen w3m elinks unzip nmap sed nc sysstat libaio rsync telnet aspell libtool-ltdl compat-libstdc++*

Instalasi Zimbra 8.6 Open Source Edition

(Akhirnya...sampai juga pada tahap instalasi Zimbra :D)
Untuk melakukan instalasi Zimbra, kita harus download terlebih dahulu package Zimbra 8.6 Open Source Edition. Download package bisa dilakukan langsung dari CentOS atau download manual dari komputer lain.
Untuk download langsung melalui CentOS, bisa dicoba perintah berikut :
# wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.RHEL6_64.20141215151155.tgz
Atau jika ingin download secara manual, bisa klik link berikut : Download Zimbra Open Source Edition

Setelah kita download package Zimbra, extract file tersebut dengan perintah :
# tar -xzvf zcs-8.6.0_GA_1153.RHEL6_64.20141215151155.tgz
Jika proses extract sudah selesai, masuki direktori yang hasil extract package kemudian eksekusi file instalasi. Ikuti langkah berikut :
cd zcs-8.6.0_GA_1153.RHEL6_64.20141215151155/
# ./install.sh --platform-override
Tunggu sesaat, kemudian akan muncul pesan Terms & Agreement. ketik Y seperti contoh di bawah :
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.
License Terms for the Zimbra Collaboration Suite:
http://www.zimbra.com/license/zimbra-public-eula-2-5.html
Do you agree with the terms of the software license agreement? [N] Y
Setelah itu, akan muncul pilihan package Zimbra yang akan di-install. Jika belum yakin dengan package yang akan dipilih, sesuaikan dengan pilihan seperti contoh di bawah (Y jika ingin di-install, N jika tidak ingin di-install) :
Select the packages to install
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-dnscache [Y] N
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [Y] N
Install zimbra-proxy [Y] N
Ketik Y kembali untuk menyetujui pilihan package.
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.
Installing:
zimbra-core
zimbra-ldap
zimbra-logger
zimbra-mta
zimbra-snmp
zimbra-store
zimbra-apache
zimbra-spell
The system will be modified. Continue? [N] Y
Tunggu beberapa saat, hingga akan muncul error seperti contoh di bawah. Error ini terjadi karena secara default zimbra akan membuat domain email menggunakan hostname server kita (contoh : user@mail.domain.com) sedangkan kita membutuhkan alamat email dengan domain utama (contoh : user@domain.com). Berarti, pada tahap ini kita cukup pilih Yes untuk mengubah domain dan mengisinya dengan nama domain utama yang akan digunakan, seperti contoh di bawah :
DNS ERROR resolving MX for mail.domain.com
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]
Create domain: [mail.domain.com] domain.com
Setelah proses perubahan domain tadi, akan muncul Configuration Menu seperti contoh di bawah. Di sini kita hanya perlu menentukan password untuk user admin Zimbra. Ketik angka 6 dan [Enter] untuk masuk ke menu zimbra-store.
Main menu
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-logger: Enabled
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@domain.com
******* +Admin Password UNSET
+Anti-virus quarantine user: virus-quarantine.zcystwcsm@domain.com
+Enable automated spam training: yes
+Spam training user: spam.z7piyptt@domain.com
+Non-spam(Ham) training user: ham.zxtj5fxh8@domain.com
+SMTP host: mail.domain.com
+Web server HTTP port: 80
+Web server HTTPS port: 443
+Web server mode: https
+IMAP server port: 143
+IMAP server SSL port: 993
+POP server port: 110
+POP server SSL port: 995
+Use spell check server: yes
+Spell server URL: http://mail.domain.com:7780/aspell.php
+Configure for use with mail proxy: FALSE
+Configure for use with web proxy: FALSE
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email: admin@domain.com
+Version update source email: admin@domain.com
+Install mailstore (service webapp): yes
+Install UI (zimbra,zimbraAdmin webapps): yes
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
Address unconfigured (**) items (? - help) 6
Pada menu zimbra-store, ketik 4 dan [Enter], lalu masukkan password untuk admin Zimbra (misalnya: 4dm!nZ1mbr@). Setelah selesai memasukkan password admin, kembali ke menu sebelumnya dengan mengetik 'r' dan [Enter] seperti contoh berikut:
Store configuration
1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@domain.com
** 4) Admin Password UNSET
5) Anti-virus quarantine user: virus-quarantine.zcystwcsm@domain.com
6) Enable automated spam training: yes
7) Spam training user: spam.z7piyptt@domain.com
8) Non-spam(Ham) training user: ham.zxtj5fxh8@domain.com
9) SMTP host: mail.domain.com
10) Web server HTTP port: 80
11) Web server HTTPS port: 443
12) Web server mode: https
13) IMAP server port: 143
14) IMAP server SSL port: 993
15) POP server port: 110
16) POP server SSL port: 995
17) Use spell check server: yes
18) Spell server URL: http://mail.domain.com:7780/aspell.php
19) Configure for use with mail proxy: FALSE
20) Configure for use with web proxy: FALSE
21) Enable version update checks: TRUE
22) Enable version update notifications: TRUE
23) Version update notification email: admin@domain.com
24) Version update source email: admin@domain.com
25) Install mailstore (service webapp): yes
26) Install UI (zimbra,zimbraAdmin webapps): yes
Select, or 'r' for previous menu [r] 4
Password for admin@domain.com (min 6 characters): [iPZvUtXAno] 4dm!nZ1mbr@
Select, or 'r' for previous menu [r] r
Dari menu konfigurasi di atas, dapat kita sadari bahwa Zimbra membuat sebuah akun email admin@domain.com pada saat instalasi, yang berfungsi baik sebagai user email biasa, maupun sebagai user untuk urusan administrasi dan konfigurasi Zimbra.
Kembali ke Configuration Menu, ketik 'a' [Enter] untuk apply hasil konfigurasi password, kemudian ketik "Yes" dan [Enter] untuk save konfigurasi. Tekan [Enter] kembali untuk menyimpan file konfigurasi, lalu ketik 'Yes' dan [Enter] lagi untuk konfirmasi perubahan pada sistem. Lihat contoh di bawah :
*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes]
Save config in file: [/opt/zimbra/config.9907]
Saving config in /opt/zimbra/config.9907...done.
The system will be modified - continue? [No] Yes
Tunggu prosesnya hingga muncul permintaan notifikasi instalasi Zimbra. Ketik 'No' dan [Enter] seperti contoh berikut :
Notify Zimbra of your installation? [Yes] No
Tunggu kembali proses instalasinya hingga selesai, hingga muncul pesan berikut. Tekan [Enter].
Configuration complete - press return to exit
Alhamdulillah proses instalasi Zimbra akhirnya beres juga :D

Web Interface Zimbra

Admin Web Console

Setelah proses instalasi selesai, kita dapat langsung mengakses Zimbra Admin Console melalui browser dengan alamat https://10.10.10.2:7071 atau https://mail.domain.com:7071 jika menggunakan alamat domain (DNS). 
Jika ada security warning dari browser, abaikan saja. Hal ini terjadi karena Zimbra yang kita install tidak memiliki certificate HTTPS berbayar.
Login menuju Admin Console menggunakan user admin dengan password 4dm!nZ1mbr@ seperti yang sudah kita set pada saat instalasi. Berikut tampilan login dan halaman utama Admin Console :
Pada Admin Console ini kita bisa melakukan penambahan user dan group email (distribution list), melakukan konfigurasi server dan domain, serta dapat melakukan monitoring seperti service yang berjalan, antrian email, statistik penggunaan email, dll.

Web Mail Client

Web mail client dapat diakses oleh setiap pengguna melalui alamat http://10.10.10.2 atau http://mail.domain.com jika menggunakan alamat pada DNS. Berikut tampilan web mail client Zimbra :

Service Management Zimbra

Terkadang kita perlu melakukan restart, stop, atau start service secara manual setelah kita melakukan rekonfigurasi terhadap suatu aplikasi, begitu juga dengan Zimbra. Selain itu juga terkadang harus mengecek status suatu service apakah service tersebut berjalan atau tidak. Di sini saya akan memberitahukan cara untuk melakukan restart, start, stop, sekaligus melihat status service Zimbra.
Untuk mengatur service Zimbra dan melakukan konfigurasi lainnya melalui terminal pada sistem operasi (dalam bahasan ini berarti CentOS), Server Zimbra telah membuat sebuah akun khusus bernama 'zimbra'.
Kembali ke Server Zimbra, dan login sebagai root terlebih dahulu. Setelah login, gunakan user zimbra dengan cara :
# su zimbra
Setelah masuk ke mode user zimbra, lakukan perintah berikut untuk restart/start/stop seluruh service zimbra :
$ zmcontrol restart
$ zmcontrol start
$ zmcontrol stop
Untuk mengecek status service-service pada Zimbra, dapat dilakukan dengan cara :
$ zmcontrol status
Service Zimbra juga dapat diatur per-package, misalnya saya ingin melakukan restart terhadap service MTA Zimbra saja. Caranya seperti berikut :
$ zmmtactl restart
Berikut beberapa service yang dapat diatur dan dicek dengan cara serupa seperti contoh di atas yaitu :
- zmamavisdctl (Service Antivirus dan Antispam Zimbra)
- zmloggerctl (Zimbra Log File)
- zmmailboxdctl (Mailbox Service)
- zmmtactl (MTA Service)
- zmopendkimctl (OpenDKIM Service)
- zmsaslauthdctl (Zimbra Authentication Service)
- zmspellctl (Zimbra Spelling Service)
- zmstatctl (Zimbra Statistics Service)
- zmstorectl (Zimbra Store Service)
- zmswatchctl ( Zimbra Monitoring Service)

Log Monitoring Zimbra

Realtime Monitoring

Log Monitoring berfungsi untuk mengecek kelancaran sistem atau melakukan troubleshoot terhadap suatu kesalahan / error yang terjadi pada sistem. Untuk melakukan log monitoring terhadap zimbra secara realtime, cukup jalankan perintah berikut sebagai user root :
# tail -f /var/log/zimbra.log
Log lainnya selain berada pada /var/log/zimbra.log, juga banyak disimpan pada direktori /opt/zimbra/log/. Misalnya saya ingin melakukan monitoring terhadap konektivitas mailbox user zimbra :
# tail -f /opt/zimbra/log/mailbox.log

Filter Log

Melakukan filtering log sangat berguna juga untuk mencari log berdasarkan keyword tertentu. misalnya saya ingin melihat log email admin@domain.com seperti contoh di bawah :
# cat /var/log/zimbra.log |grep admin@domain.com
Cara filtering log ini juga berlaku untuk log yang lain.



Nampaknya segitu dulu tutorial mengenai Zimbra 8.6 Open Source Edition pada CentOS 6.5. Soalnya lumayan cape juga ngetik segitu banyak. Hehehe....(tutorial ini bukan hasil copas loh :D)
Kalo temen-temen mau tau lebih banyak tentang Zimbra atau ilmu yg lain, bisa tanya saya langsung lewat halaman kontak atau kolom komentar, atau boleh juga belajar secara privat asalkan domisilinya di Bandung. Hehehe...

Wassalamua'alaikum Wr. Wb.