Ini adalah bagian ke-2 dari tutorial cara membuat mail server di Ubuntu 20.04. Pada bagian pertama kita telah menginstall Postfix sebagai SMTP server di Ubuntu 20.04. Kali ini kita akan lanjutkan dengan menginstall IMAP Server Dovecot agar mail server kita dapat digunakan untuk mengirim dan menerima e-mail menggunakan mail client seperti Thunderbird atau Outlook. Selain itu, kita juga akan mengaktifkan enkripsi TLS agar email kita tidak mudah disadap.
Kita tidak menggunakan POP3 sebagai prokotol Mail User Agent karena saat ini tidak terlalu populer digunakan.
Berikut ini adalah cara install IMAP Server Dovecot dan Enkripsi TLS pada Mail Server di Ubuntu Server 20.04.
1. Request SSL untuk Hostname Server Dari Let’s Encrypt.
Perbarui database repositori terlebih dahulu:
$ sudo apt update
Selanjutnya kita akan request SSL dari Let’s Encrypt. Di sini kita akan menggunakan web server Nginx untuk verifikasi SSL ke Let’s Encrypt. Karena itu kita akan install python3-certbot-nginx
. Jika anda sudah memiliki web server lain seperti apache2 silahkan install python3-certbot-apache
.
$ sudo apt -y install certbot python3-certbot-nginx
Buat server block untuk hostname FQDN pada file /etc/nginx/sites-available/hostname.namadomain.com
. Hostname FQDN adalah konfigurasi yang telah kita atur pada bagian prasyarat di tutorial bagian pertama. Jika anda lupa silahkan jalankan perintah hostname --fqdn
untuk mengetahuinya. Contohnya hostname FQDN saya adalah itkodingserver.itkoding.com
maka:
$ sudo nano /etc/nginx/sites-available/itkodingserver.itkoding.com
Masukkan kode di bawah ini (sesuaikan dengan hostname anda):
server { listen 80; root /var/www/itkodingserver.itkoding.com; index index.html index.htm index.nginx-debian.html; server_name itkodingserver.itkoding.com; location / { try_files $uri $uri/ =404; } }
Tutup lalu simpan file tersebut.
Aktifkan server block dengan cara:
$ sudo ln -s /etc/nginx/sites-available/itkodingserver.itkoding.com /etc/nginx/sites-enabled/
Bagi pengguna apache2 silahkan sesuaikan dengan membuat VirtualHost untuk alamat hostname anda.
Buat direktori web root:
$ sudo mkdir /var/www/
itkodingserver.itkoding.com
Reload nginx:
$ sudo systemctl reload nginx
Buka port 80 pada Firewall UFW:
$ sudo ufw allow 'Nginx HTTP'
Request SSL dengan perintah:
$ sudo certbot certonly --nginx
Jika pertama kali request SSL maka akan tampil, silahkan sesuaikan jawabannya dengan domain anda:
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): Isi dengan email anda. (A)gree/(C)ancel: A Ketik A untuk menyetujui. Would you be willing to share your email... (Y)es/(N)o: N Ketik N. Which names would you like to activate HTTPS for? 1: itkodingserver.itkoding.com Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel): 1 Ketik nomor domain yang ingin diberi SSL HTTPS, pisahkan dengan spasi jika lebih dari 2 nomor.
Maka file SSL akan disimpan pada direktori /etc/letsencrypt/live/namadomain/
. Misalnya SSL pada contoh praktik ini terletak pada /etc/letsencrypt/live/itkodingserver.itkoding.com/
.
2. Aktifkan Submission pada Postfix
Agar kita bisa mengirim atau menerima email dari aplikasi email client seperti Outlook ataupun Thunderbird maka layanan Submission pada Postfix harus diaktifkan. Untuk mengaktifkannya edit pada /etc/postfix/master.cf
.
$ sudo nano /etc/postfix/master.cf
Copy-paste konfigurasi berikut ini di bagian paling bawah file untuk mengaktifkan submission di postfix:
submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_tls_wrappermode=no -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth
Kode di atas akan mengaktifkan layanan Submission pada port TCP 587. Umumnya aplikasi email client akan menggunakan port 587. Namun, Microsoft Outlook menggunakan port lain yaitu port 465. Kita juga harus mengaktifkan SMTPS jika ingin menggunakan Outlook. Copy-paste juga kode di bawah ini lalu letakkan di bawah kode yang tadi.
smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth
Simpan lalu tutup file tersebut.
Edit konfigurasi Postfix agar menggunakan TLS:
$ sudo nano /etc/postfix/main.cf
Cari parameter TLS di bawah ini lalu ganti valuenya sesuai dengan lokasi SSL Let’s Encrypt anda. Contohnya di bawah ini:
smtpd_tls_cert_file=/etc/letsencrypt/live/itkodingserver.itkoding.com/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/itkodingserver.itkoding.com/privkey.pem
Tambahkan parameter berikut tepat di bawah parameter yang kita edit sebelumnya:
smtpd_tls_loglevel = 1 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_loglevel = 1 #Menggunakan TLS terbaru TLSv1.3 atau TLSv1.2 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
Simpan kemudian tutup file.
Ingat! Sesuaikan isian di atas dengan lokasi file SSL dari Let’s Encrypt yang telah anda request tadi pada langkah 1. Lokasi saya adalah pada /etc/letsencrypt/live/itkodingserver.itkoding.com/
.
Restart postfix:
$ sudo systemctl restart postfix
Buka port untuk Postfix submission dan SMTPS:
$ sudo ufw allow 'Postfix Submission'
$ sudo ufw allow 'Postfix SMTPS'
3. Install dan Aktifkan IMAP Server Dovecot
Untuk menginstall IMAP server Dovecot berikut ini perintahnya:
$ sudo apt -y install dovecot-core dovecot-imapd
Edit konfigurasi file Dovecot untuk mengaktifkan imap server:
$ sudo nano /etc/dovecot/dovecot.conf
Tambahkan parameter di bawah ini di bagian paling bawah:
protocols = imap
Simpan kemudian tutup file.
4. Atur Lokasi Mailbox
Pada pengaturan default, Dovecot menyimpan email pada direktori /var/mail
. Namun umumnya yang beredar saat ini lokasi penyimpanan email berada di direktori home masing-masing user. Untuk mengikuti tren pengaturan tersebut maka kita dapat mengubahnya:
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
Cari parameter mail_location
lalu ubah dari:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Menjadi:
mail_location = maildir:~/Maildir
Simpan lalu tutup file.
Masukkan user dovecot ke dalam grup mail:
$ sudo adduser dovecot mail
5. Atur Mekanisme Otentikasi
Edit file 10-auth.conf:
$ sudo nano /etc/dovecot/conf.d/10-auth.conf
Nonaktifkan otentikasi plaintext dengan cara menambahkan parameter berikut di bagian paling bawah file:
disable_plaintext_auth = yes
Tambahkan juga parameter berikut di bawah jika ingin menggunakan full alamat email seperti [email protected]
.
auth_username_format = %n
Cari baris parameter auth_mechanisms = plain
lalu ubah menjadi:
auth_mechanisms = plain login
Tutup lalu simpan file.
6. Atur Enkripsi TLS
Edit file 10-ssl.conf:
$ sudo nano /etc/dovecot/conf.d/10-ssl.conf
Cari baris ssl = yes
lalu ubah menjadi:
ssl = required
Cari baris ssl_cert
dan ssl_key
lalu ubah menjadi alamat SSL anda:
ssl_cert = </etc/letsencrypt/live/itkodingserver.itkoding.com/fullchain.pem ssl_key = </etc/letsencrypt/live/itkodingserver.itkoding.com/privkey.pem
Tambahkan parameter berikut di paling bawah file untuk mengatur ciphers dan versi minimal TLS:
ssl_prefer_server_ciphers = yes ssl_protocols = !SSLv3 !TLSv1 !TLSv1.1 ssl_min_protocol = TLSv1.2
Simpan kemudian tutup file.
7. Atur Otentikasi SASL Dovecot untuk Postfix
Edit file 10-master.conf:
$ sudo nano /etc/dovecot/conf.d/10-master.conf
Cari service auth
lalu ubah konfigurasi di dalamnya menjadi:
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }
Tutup lalu simpan file.
8. Buat Folder E-Mail secara Otomatis
Edit file 15-mailboxes.conf:
$ sudo nano /etc/dovecot/conf.d/15-mailboxes.conf
Tambahkan parameter auto = create
agar folder tersebut dibuat secara otomatis. Contohnya jika ingin membuat folder Draft otomatis:
mailbox Drafts { special_use = \Drafts auto = create }
Lakukan pada semua folder yang ingin anda buat otomatis (Junk, Trash dan Sent).
9. Install dan Konfigurasi Dovecot LMTP
LMTP digunakan untuk memasukkan e-mail yang diterima ke folder inbox e-mail. Pengalaman saya jika tanpa menginstall Dovecot LMTP kita tidak bisa mendapatkan notifikasi di aplikasi mail client secara real time.
Install Dovecot LMTP:
$ sudo apt -y install dovecot-lmtpd
Edit file utama dovecot:
$ sudo nano /etc/dovecot/dovecot.conf
Cari parameter protocols = imap
lalu tambahkan lmtp:
protocols = imap lmtp
Simpan file kemudian tutup.
Edit file 10-master.conf lagi:
$ sudo nano /etc/dovecot/conf.d/10-master.conf
Atur parameter service lmtp agar bisa digunakan Postfix:
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
Edit file konfigurasi utama Postfix:
$ sudo nano /etc/postfix/main.cf
Tambahkan kode di bawah ini di bagian paling bawah file untuk menggunakan LMTP:
mailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = no
Simpan file.
Restart Postfix dan Dovecot:
$ sudo systemctl restart postfix dovecot
Buka port untuk Dovecot IMAP dan Secure IMAP:
$ sudo ufw allow 'Dovecot IMAP'
$ sudo ufw allow 'Dovecot Secure IMAP'
10. Test Mail Server melalui Mail Client
Akun e-mail anda adalah user yang digunakan untuk login ubuntu ditambahkan dengan @namadomain.com
misalnya user ubuntu saya adalah paijo maka menjadi [email protected]
. Jika ingin membuat akun baru kita hanya perlu menambahkan user di Ubuntu Server dengan cara:
$ sudo adduser namauserbaru
Kita bisa melakukan test untuk mengakses e-mail dari mail client seperti Thunderbird di Windows atau Microsoft Outlook di Android.
Silahkan unduh aplikasi email Thunderbird, install pada Windows anda lalu buka aplikasi Thunderbird tersebut.
Masukkan akun e-mail anda di Thunderbird dengan cara klik mail pada bagian setup an account. Masukkan nama, email dan password. Lalu, klik Manual Config.
Pada incoming pilih IMAP lalu masukkan hostname FQDN anda, misalnya itkodingserver.itkoding.com
lalu pilih Port 143. Pilih STARTTLS pada SSL. Lalu authentication pilih Normal Password.
Pada Outgoing masukkan juga hostname FQDN anda. Pilih Port 587 lalu pilih STARTTLS. Kemudian Normal Password.
Pada username incoming isi dengan username anda tanpa @namadomain.com
, begitu juga pada outgoing. Klik Done maka kita dapat mengakses mail server yang telah dibangun.
Setelah melakukan tutorial di atas. Kita bisa mengirim e-mail dengan cara klik tombol Write > masukkan e-mail penerima > masukkan subject > masukkan isi e-mail > klik Sent. Kita juga bisa menerima e-mail melalui aplikasi mail client tersebut. Selain itu, email juga terenkripsi menggunakan SSL dari Let’s Encrypt.
Langkah Berikutnya
Jika e-mail kita dari aplikasi Thunderbird terkirim maka praktik pada part 2 ini berhasil. Biasanya e-mail masih dianggap spam oleh mail server lain. Oleh karena itu, pada part selanjutnya kita akan membuat SPF dan DKIM agar e-mail lebih dipercaya sehingga tidak dianggap spam. Silahkan baca part selanjutnya pada tulisan saya tentang cara membuat SPF dan DKIM pada mail server Ubuntu. Mari kita tingkatkan kualitas mail server kita.
Keterangan artikel
Tested on: Sumber: https://itkoding.com/instalasi-imap-server-dovecot-enkripsi-tls-ubuntu/