Postfix adalah sebuah service untuk Mail Transfer Agent (MTA) untuk me-routing atau mengarahkan dan mengirim surat elektronik (email), Postfix menggunakan protocol SMTP (Simple Mail Transfer Protocol). Dovecot meruapakan sebuah service untuk Mail Delivery Agent (MDA), Dovecot
menggunakan protocol IMAP dan POP3. Sedangkan Roundcube adalah sebuah service untuk Mail User Agent (MUA).
Kedua open-souce aplikasi tersebut (Postfix dan Dovecot) dapat berjalan dengan baik dengan Roundcube, sebuah email client yang terkenal
karena penggunaan Ajax yang cerdas. Dalam artikel kali ini, saya akan menginstal dan melakukan konfigurasi untuk Postfix, Dovecot dan Roundcube di Sistem Operasi Ubuntu 22.04. Artikel ini menggunakan nama domain example.com, ip public 112.16.21.20 dan nama server mail.example.com
Sebelum melakukan eksekusi, terdapat beberapa hal yang perlu disiapkan, diantaranya adalah:
DNS Record
Untuk persiapan ini, kita harus membuat beberapa DNS record diantaranya adalah
Catatan:
Perhatikan value IP Public dan nama domain, sesuaikan dengan konfigurasi kalian. Apabila kalian tidak dapat menambahkan
reverse zone (seperti ip_public.in-addr.arpa), maka kalian harus meminta ke ISP (Internet Service Provider) yang kalian gunakan untuk menambahkannya
Optional:
Anda dapat menambahkan record subdomain untuk masing-masing service seperti smtp.example.com, pop.example.com, imap.example.com
Untuk melakukan install Postfix, kalian bisa menjalankan perintah berikut ini
bash
sudo apt install -y postfix
maka akan muncul Postfix Configuration seperti gambar dibawah ini, tekan TAB dan ENTER untuk melanjutkan
Postfix Screen Configurtion
Pada menu selanjutnya, pilih Internet Site kemudian tekan TAB dan ENTER
Postfix Screen Configurtion 2
Selanjutnya masukan nama email sistem, yang merupakan nama domain anda. Misalnya, nama servernya adalah email.example.com, jadi masukan example.com di sini.
Postfix Screen Configurtion 3
langkah selanjutnya adalah melakukan backup konfigurasi postfix di PATH /etc/postfix/main.cf dengan cara
Pada file konfigurasi main.cf diatas, terdapat value dari virtual_mailbox_domains untuk menginstruksikan postfix untuk mencari
domain email di file /etc/postfix/virtual_mailbox_domains. Maka buat file tersebut dengan cara
bash
sudo vim /etc/postfix/virtual_mailbox_domains
Isikan konfigurasi berikut ke dalam file tersebut dan ganti example.com dengan nama domain anda
/etc/postfix/virtual_mailbox_domains
example.com
Gunakan perintah postmap untuk mengubah /etc/postfix/virtual_mailbox_domains ke format yang dapat dikenali oleh Postfix.
Jalankan perintah ini setiap Anda mengedit file, misalnya setelah menambahkan lebih banyak nama domain ke file tersebut.
bash
sudo postmap /etc/postfix/virtual_mailbox_domains
Ubah konfigurasi file /etc/postfix/master.cf untuk enable SMTP Service
bash
sudo vim /etc/postfix/master.cf
Cari entri dibawah ini
/etc/postfix/master.cf
...#submission inet n - y - - smtpd...
Hapus symbol # atau comment-nan pada awal baris, sehingga menjadi
Untuk melakukan install Dovecot dan semua dependency package nya agar bisa menjalankan imap, pop3, dan lmtp service, kalian bisa menjalankan perintah berikut ini
Simpan dan tutup file. %d mewakili nama domain, dan %n mewakili nama pengguna atau user. Ini berarti Anda harus membuat subdirektori
di /var/mail/vhost untuk setiap domain yang menerima email dari server anda.
Membuat sub-direktori dan ganti example.com dengan nama domain anda
Catatan
Ulangi perintah dibawah ini untuk setiap nama domain lain yang ingin anda terima emailnya di server anda.
Misalkan jika ingin menerima email untuk domain example.net jalankan perintah berikut ini
shell
sudo mkdir -p /var/mail/vhosts/example.net
bash
sudo mkdir -p /var/mail/vhosts/example.com
Membuat Vmail user dan group untuk keperluan service dovecot
Membuat vmail group
bash
sudo groupadd -g 5000 vmail
Membuat vmail user kemudian masukan ke dalam vmail group
Hapus tanda # sebelum entri port dan ssl, seperti yang ditunjukan dibawah ini, untuk memungkinkan dovecot menggunakan port 993 dan
SSL untuk secure IMAP.
...service lmtp { unix_listener lmtp { #mode = 0666 } # Create inet listener only if you can't use the above UNIX socket #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #}}...
Ubah menjadi seperti berikut ini
/etc/dovecot/conf.d/10-master.conf
...service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }}...
...#Postfix smtp-authunix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix}...
Simpan dan tutup file
Konfigurasi dovecot untuk menggunakan secure authentication. Ubah konfigurasi dovecot pada file 10-auth.conf
bash
sudo vim /etc/dovecot/conf.d/10-auth.conf
Temukan entri dibawah ini
/etc/dovecot/conf.d/10-auth.conf
# disable_plaintext_auth = yes
Uncomment atau hapus tanda #
/etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
Temukan entri dibawah ini
/etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain
Ubah mekanisme authentication dari plain menjadi plain login
/etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
Disable dovecot default authentication behavior yang mengharuskan pengguna memiliki akun sistem untuk menggunakan layanan email. Cari entri dibawah ini
/etc/dovecot/conf.d/10-auth.conf
!include auth-system.conf.ext
berikan komentar atau simbol # di awal baris
/etc/dovecot/conf.d/10-auth.conf
#!include auth-system.conf.ext
cari juga entri dibawah ini
/etc/dovecot/conf.d/10-auth.conf
#!include auth-passwdfile.conf.ext
hapus simbol # di awal baris untuk enable Dovecot menggunakan password file
/etc/dovecot/conf.d/10-auth.conf
!include auth-passwdfile.conf.ext
Simpan dan tutup file.
Mengubah dovecot password file auth-passwdfile.conf.ext
bash
sudo vim /etc/dovecot/conf.d/auth-passwdfile.conf.ext
Isi dalam file kurang lebih mirip seperti dibawah ini
Membuat /etc/dovecot/dovecot-users password file. File ini adalah plain text database untuk menampung email user di server anda.
bash
sudo vim /etc/dovecot/dovecot-users
Tambahkan user yang ingin anda gunakan untuk email service dengan mengikuti format seperti dibawah ini. Ganti EXAMPLE_PASSWORD dengan
kata sandi yang kuat. Dan juga, ganti example.com dengan nama domain anda.
ubah kedua entri diatas dan pastikan mengarah ke SSL certificate untuk domain anda. Misalnya, jika Anda menggunakan sertifikat Let's Encrypt,
entri Anda akan serupa dengan yang ditunjukan dibawah ini. Ganti example.com dengan nama domain anda.
Sangat disarankan agar anda menggunakan TLS untuk enkripsi email web anda. Kita dapat mengaktifkan HTTPS dengan memasang sertifikat
TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstall Let's Encrypt
bash
sudo apt install certbot -y
Jika menggunakan nginx, anda juga perlu menginstall cerbot nginx plugin
bash
sudo apt install python3-certbot-nginx -y
Selanjutnya, jalankan perintah berikut ini untuk mendapatkan dan menginstal sertifikat TLS