Cara Membuat & Konfigurasi Mail Server Postix di Ubuntu 20.04
Membuat mail server memiliki tingkat kesulitan yang lebih tinggi jika dibandingkan dengan server lain. Hal tersebut dikarenakan mail server memiliki banyak komponen yang harus dikonfigurasi. Namun jangan khawatir! Di sini saya akan membahas secara lengkap dengan contoh konfigurasi yang bisa langsung dipraktikkan.
Mail server memiliki 2 komponen penting agar dapat berjalan yaitu SMTP dan IMAP. SMTP berfungsi untuk mengirim e-mail antar server oleh karena itu SMTP juga disebut MTA (Mail Transfer Agent). Sedangkan IMAP berfungsi untuk mengambil e-mail dari server oleh user, IMAP biasa juga disebut MUA (Mail User Agent). Kita akan menggunakan software Postfix untuk SMTP dan software Dovecot untuk IMAP.
Selain 2 komponen tersebut nantinya kita juga akan install beberapa komponen lain agar e-mail kita dipercaya oleh server lain. Komponen tersebut adalah SPF dan DKIM dan SSL untuk enkripsi.
Pada tutorial ini kita akan membuat mail server beserta webmail yang tidak asal “it works” saja. Tetapi juga terenkripsi dan memiliki signature agar e-mail kita tidak dianggap spam oleh server lain. Nah, mari kita awali dengan instalasi Postfix sebagai SMTP atau MTA pada mail server yang akan kita bangun. Namun sebelumnya anda harus melakukan beberapa prasyarat di bawah ini.
Prasyarat:
- Telah melakukan pengaturan awal ubuntu server. Silahkan baca pada tulisan saya tentang konfigurasi awal Ubuntu Server 20.04.
- Sudah memiliki domain. Tutorial ini untuk implementasi secara online pada server dedicated atau VPS.
- Telah menghubungkan Domain ke Server atau VPS dan mengatur record MX (Mail Exchange). Silahkan baca tulisan saya tentang menghubungkan domain ke server atau VPS dengan DNS Cloudflare.
Berikut ini adalah cara install dan konfigurasi mail server dengan Postfix di Ubuntu Server 20.04.
1. Install Postfix Sebagai SMTP Server
Perbarui database repository dengan perintah:
$ sudo apt update
Install Postfix dengan perintah:
$ sudo apt -y install postfix
Lalu muncul penjelasan tentang opsi instalasi Postfix. Pilih OK dengan cara tekan TAB pada keyboard lalu Enter. Setelah itu, pilih Internet Site kemudian pilih OK dengan menekan TAB lalu Enter.
Kemudian masukkan domain anda pada System mail name. Ini akan menjadi domain pada alamat e-mail yang biasanya berada di belakang simbol @
pada email. Misalnya alamat email saya adalah hernawan@itkoding.com
maka saya harus mengisinya dengan itkoding.com
.
2. Ubah Konfigurasi Pada Postfix
Buka file /etc/postfix/main.cf
dengan nano:
$ sudo nano /etc/postfix/main.cf
Cari parameter myhostname
lalu ubah menjadi hostname.domainanda.com
sesuai dengan pengaturan hostname pada prasyarat pertama yaitu konfigurasi awal ubuntu server. Misalnya hostname sudah saya atur menjadi itkodingserver
dan domain saya adalah itkoding.com
maka:
myhostname = itkodingserver.itkoding.com
Simpan lalu tutup file tersebut.
Secara default Postfix mengaktifkan protokol IPv4 dan IPv6. Jika kita tidak memiliki IPv6 sebaiknya mengatur agar hanya mengaktifkan IPv4 dengan cara:
$ sudo postconf -e "inet_protocols = ipv4"
Postfix di Ubuntu server 20.04 secara default menjadikan root sebagai alias postmasternya. Fungsi dari postmaster adalah sebagai alamat administrator yang akan mendapatkan e-mail informasi jika terjadi error pada mail server. Karena root jarang kita pantau isi email masuknya maka sebaiknya tambahkan alias untuk root dengan akun yang sering kita pantau kotak masuknya. Caranya:
Buka file /etc/aliases:
$ sudo nano /etc/aliases
Tambahkan root: username
pada baris terakhir file tersebut. Misalnya user saya adalah paijo
. File akan menjadi:
# See man 5 aliases for format postmaster: root root: paijo
Simpan lalu tutup file tersebut. Maka semua email administrator akan dialihkan ke email paijo.
Restart Postfix dengan perintah:
$ sudo systemctl restart postfix
3. Buka Port 25 Pada Firewall UFW
Buka akses pada firewall UFW untuk port 25 SMTP agar Postfix dapat berjalan.
$ sudo ufw allow 'Postfix'
Terkadang penyedia server (VPS, dedicated dan lainnya) dan ISP melakukan block pada port 25 sehingga kita tidak bisa mengirim atau menerima e-mail. Pengalaman saya penyedia VPS seperti Vultr dan DigitalOcean melakukan block port 25 untuk user baru. Untuk mengeceknya lakukan perintah telnet di bawah ini:
$ telnet gmail-smtp-in.l.google.com 25
Jika tidak di block maka akan muncul keterangan bahwa kita dapat terkoneksi (Connected) seperti di bawah ini:
Trying x.x.x.x... Connected to gmail-smtp-in.l.google.com.
Tapi jika di block biasanya ada pesan error: Unable to connect to remote host: Connection timed out. Seperti pada contoh di bawah ini:
Trying x.x.x.x... telnet: Unable to connect to remote host: Connection timed out
Nah, jika anda termasuk yang di block kita tidak bisa melakukan apa-apa kecuali kontak penyedia server atau ISP kita agar dibukakan port 25. Biasanya mereka akan membukakan jika tujuan kita dalam membuat mail server tidak melakukan spam e-mail.
Jika tidak ada block pada port 25 maka lanjutkan membaca tutorialnya.
4. Ubah PTR Record IP server Menjadi Hostname FQDN Anda
PTR Record adalah kebalikan dari record. Biasa juga disebut dengan Reverse DNS. Jika record memetakan domain ke IP, sebaliknya PTR Record memetakan IP address ke domain. Lebih sederhana lagi PTR Record bisa diumpamakan sebagai domain yang telah terverifikasi sebagai pemilik IP tersebut.
Sebagian besar mail server akan menganggap e-mail sebagai spam jika IP address tidak memiliki PTR Record atau PTR Recordnya salah (bukan domain tersebut).
Nah, karena server kita mendapatkan IP address dari penyedia server atau ISP maka pengaturan PTR berada di member area server kita. Setiap provider server atau VPS memiliki menu untuk mengatur PTR record. Silahkan cari bagaimana mengaturnya pada petunjuk masing-masing provider server. Atau tanyakan pada customer service server tersebut tentang cara mengatur PTR di sana.
Silahkan ubah PTR Record IP address server anda menjadi hostname.domainanda.com
. Misalnya pada praktik kali ini PTR Record-nya adalah itkodingserver.itkoding.com
. Jika lupa dengan hostname FQDN anda, ketik saja perintah hostname --fqdn
pada server anda untuk mengetahuinya.
Contohnya saya menggunakan VPS dari provider Vultr pengaturan PTR atau reverse DNS berada di menu Settings > IPv4 pada member area.
5. Test Kirim E-Mail
Install terlebih dahulu MUA (Mail User Agent) berbasis CLI (Command-line Interface) agar bisa membuat email yang akan dikirim melalui Postfix.
$ sudo apt -y install mailutils
Kirim email dengan perintah:
$ mail usernameanda@gmail.com Cc: Subject: Test email pertama Ini adalah email yang pertama percobaan 011.
Kemudian tekan CTRL
+D
untuk mengirim e-mail.
Silahkan lihat pada akun gmail anda apakah email sudah berhasil masuk. Anda dapat melihatnya pada folder spam atau junk. Email dari domain yang baru umumnya akan masuk ke folder spam atau junk. Seharusnya jika port 25 tidak di block kita sudah bisa mengirimkan e-mail dari server kita.
Langkah Berikutnya
Jika kita berhasil mengirim e-mail melalui command line ke akun gmail maka berarti instalasi SMTP server Postfix kita berhasil. Selanjutnya kita akan menginstall IMAP server agar mail server bisa digunakan pada email client seperti Outlook atau Thunderbird. Selain itu kita juga akan mengaktifkan enkripsi TLS agar e-mail kita lebih aman. Silahkan baca tutorial selanjutnya pada tulisan saya tentang cara install IMAP server Dovecot dan mengaktifkan enkripsi TLS. Sampai jumpa di tutorial berikutnya.
Provider Cloud saya block port 25. Rata-rata juga block sih. Tapi apakah harus enable port 25? Apakah tidak ada cara lain?
Untuk mengirim email dari server kita port 25 harus terbuka karena itu port standar yang dipakai SMTP. Kalau diblock tentu tidak bisa. Biasanya provider block port 25 untuk user baru untuk menghindari spammer. Saya juga sering diblock saat baru register di Cloud tersebut. Solusinya kontak saja ke bagian support mereka, lalu minta dibuka port 25 dengan menyebutkan kegunaan email anda nantinya. Kalau tetap tidak dibukakan bilang saja tidak jadi langganan di Cloud tersebut. Cari provider Cloud lain yang bisa membukakan port 25.
Bagaimana jika dalam 1 server tersebut ada 5 domain (katakanlah), apakah setingannya berbeda?
saya sudah mengikuti tutorial diatas dan berhasil. cuma masalahnya ya itu tadi, ada beberapa domain dalam 1 server saya. bagaimana cara membedakan email dari domain 1 dan email dari domain 2? dengan tutorial diatas, email dari domain 2 dan domain 3 dan seterusnya, di gmail tertulis semua dari domain 1.
satu lagi pertanyaan, tentang Matikan fitur CDN Cloudflare. kenapa harus dimatikan? adakah efeknya jika tidak dimatikan?
terimakasih atas responnya.
Untuk membuat email dengan multiple domain perlu menggunakan PostfixAdmin lalu menambahkan domain baru tersebut di konfigurasi PostfixAdmin. Nah, di sana juga kita harus membuat MX dan A record untuk domain baru. Buat juga SPF dan DKIM untuk domain tersebut. Lalu buat juga web-based email clientnya dengan roundcube atau lainnya untuk domain tersebut. Nantinya kalau mengirim email dari web-based tersebut sendernya akan dari domain masing-masing.
Nah untuk mengapa perlu mematikan fitur CDN, supaya mail server lain bisa membaca IP address dari MX record mail server kita. Kalau CDN nya aktif, IP addressnya ikut cloudflare. Ini rekomendasi dari Cloudflare khusus untuk record yang digunakan sebagai mail servernya (SMTP).