Cara Membangun Server Email dengan Ubuntu 20.04 Part 2
Cara Membangun Server Email dengan Ubuntu 20.04 – Kita akan kembali melanjutkan panduan cara membangun server email part 1 sebelumnya. Setelah membahas cara melakukan install postfix dan konfigurasi SMTP. Pada panduan kali ini kita akan instalasi dovecot dan konfigurasi IMAP/POP3.
Dengan adanya dovecot IMAP/POP3 ini, akan Anda dapat menggunakan diaplikasi mail client seperti ThunderBird, Microsoft Outlook dan lain sebagainya. Selain itu kita juga akan mengaktifkan sertifikat TLS sebagai enkripsi email.
Baca Juga : Membangun Email Server di Ubuntu Part 1
Cara Membangun Server Email dengan Ubuntu 20.04 Part 2
Sebelum Anda memulai instalasi dan konfigurasi dovecot, pertama kali yang Anda lakukan adalah melakukan enable (open) port IMAP/POP3 pada firewall menggunakan UFW yang sebelumnya sudah Anda install.
Silakan Anda jalankan perintah dibawah ini.
sudo ufw allow 80,443,587,465,143,993/tcp
Bila Anda juga berencana menggunakan POP3 maka open juga pop3 dengan perintah ini.
sudo ufw allow 110,995/tcp
Setelah itu Anda perlu instalasi pada subdomain mail.namadomainAnda.com sebelumnya. Anda bisa menggunakan SSL Lets Encrypt ataupun jenis SSL lainnya.
Cara Install SSL Lets Encrypt di Ubuntu 20.04
Pertama, silakan Anda install repository certbot di server ubuntu dengan menjalankan perintah berikut.
sudo add-apt-repository ppa:certbot/certbot
Bila saat menjalankan perintah terdapat error “add-apt-repository command not found“. Silakan Anda install dahulu repository apt dengan menjalankan perintah dibawah.
sudo apt-get install software-properties-common
Bila sudah selesai install repo apt, jalankan kembali perintah untuk instalasi certbot diatas.
Selanjutnya install certbot untuk Nginx, berikut perintahnya.
sudo apt install python3-certbot-nginx
Jika menggunakan webserver apache silakan gunakan perintah berikut.
sudo apt install python3-certbot-apache
Buat virtual host atau server block pada webserver yang Anda gunakan. Pada panduan ini saya menggunakan web server nginx.
Apache
Jalankan perintah ini menggunakan editor nano atau vim untuk konfigurasi virtual host di apache.
sudo vim /etc/apache2/sites-available/mail.namadomain.com.conf
Selanjutnya tambahkan script berikut ini.
i = edit (huruf i)
:wq = save dan close
!q = keluar tanpa save
esc = menghentikan proses editing (tombol esc)
<VirtualHost *:80> ServerName mail.namadomain.com DocumentRoot /var/www/mail.namadomain.com </VirtualHost>
Save dan close. Untuk selanjutnya buatlah folder subdomain dengan nama mail.namadomain.com dengan menjalankan perintah berikut.
sudo mkdir /var/www/mail.namadomain.com
Ubah permission folder mail.namadomain.com menjadi www-data.
sudo chown www-data:www-data /var/www/mail.namadomain.com -R
Jika sudah, aktifkan/enable virtual host yang telah Anda buat.
sudo a2ensite mail.namadomain.com.conf
Selanjutnya jalankan perintah berikut untuk mendapatkan sertifikat ssl lets encrypt. Jika tanpa www maka bisa dihapus mulai dari -d www.mail.namadomain.com
sudo certbot --apache -d mail.namadomain.com -d www.mail.namadomain.com
Agar ssl lets encrypt terperpanjang otomatis setiap pertiga bulan maka bisa menjalankan perintah ini.
sudo certbot renew --dry-run
SSL lets mail.namadomain.com telah berhasil di install pada web server apache Anda. Jika ingin install SSL Lets pada domain utama caranya juga sama.
Nginx
Jalankan perintah ini menggunakan editor nano atau vim untuk konfigurasi server block di apache.
sudo vim /etc/nginx/sites-available/mail.domain.com
Selanjutnya tambahkan script berikut ini.
i = edit (huruf i)
:wq = save dan close
!q = keluar tanpa save
esc = menghentikan proses editing (tombol esc)
server { listen 80; listen [::]:80; server_name mail.namadomain.com; root /var/www/mail.namadomain.com/; location ~ /.well-known/acme-challenge { allow all; } }
Save dan close. Untuk selanjutnya buatlah folder subdomain dengan nama mail.namadomain.com dengan menjalankan perintah berikut.
sudo mkdir /var/www/mail.namadomain.com
Ubah permission folder mail.namadomain.com menjadi www-data.
sudo chown www-data:www-data /var/www/mail.namadomain.com -R
Jika sudah, aktifkan/enable server block yang telah Anda buat.
sudo ln -s /etc/nginx/sites-available/mail.namadomain.com /etc/nginx/sites-enabled
Selanjutnya jalankan perintah berikut untuk mendapatkan sertifikat ssl lets encrypt. Jika tanpa www maka bisa dihapus mulai dari -d www.mail.namadomain.com
sudo certbot --nginx -d mail.domain.com -d www.mail.domain.com
Agar ssl lets encrypt terperpanjang otomatis setiap pertiga bulan maka bisa menjalankan perintah ini.
sudo certbot renew --dry-run
Proses instalasi ssl lets encrypt di apache web server ataupun di nginx hampir sama. Hanya saja konfigurasi server block yang berbeda.
Mengaktifkan Layanan Pengiriman di Postfix
Agar Anda dapat mengirimkan email ke SMTP postfix, maka perlu mengaktifkannya terlebih dahulu. Jalankan perintah ini untuk proses edit,
sudo vim /etc/postfix/master.cf
Lalu Anda bisa mengganti file atau menghapus komentar (#) file dibawah ini. Sehingga akan sama seperti screenshot. Pastikan memberikan minimal satu spasi (tab atau spasi) sebelum -o. Dalam konfigurasi postfix, karakter spasi ini berarti bahwa baris ini merupakan kelanjutan dari baris sebelumnya.
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
Mengaktifkan file diatas bertujuan agar postfix dapat mengirimkan pesan dengan enkripsi TLS (587) melalui mail client. Namun ada juga mail klien yang hanya support ekripsi SSL (465), sehingga selain TLS, Anda juga perlu mengaktifkan SSL (465). Edit atau ganti sesuai dengan file dibawah ini.
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
Jika sudah, silakan Anda save dan close dari editor.
Selanjutnya, Anda perlu menentukan lokasi sertifikat TLS dan private key di file konfigurasi Postfix. Edit file main.cf.
sudo vim /etc/postfix/main.cf
Sesuaikan file dan lokasi sertifikasi SSL Lets Encrypt yang telah Anda install sebelumnya. Secara default sertifikat ssl akan berada pada /etc/letsencrypt/live/mail.namadomain.com.
#Enable TLS Encryption when Postfix receives incoming emails smtpd_tls_cert_file=/etc/letsencrypt/live/mail.namadomain.com/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/mail.namadomain.com/privkey.pem smtpd_tls_security_level=may smtpd_tls_loglevel = 1 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache #Enable TLS Encryption when Postfix sends outgoing emails smtp_tls_security_level = may smtp_tls_loglevel = 1 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache #Enforce TLSv1.3 or 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
Jika sudah selesai, silakan Anda save dan close kemudian restart service postfix.
sudo systemctl restart postfix
Jalankan perintah dibawah ini untuk melakukan pengecekan bahwa port 587 (TLS) dan 465 (SSL) telah open.
sudo ss -lnpt | grep master
Konfigurasi postfix telah selesai, selanjutnya perlu konfigurasi dovecot.
Cara Install Dovecot (IMAP) di Ubuntu 20.04
Dovecot ini berfungsi untuk menghubungkan dengan mail client menggunakan IMAP atau POP3. Jadi silakan Anda install dovecot IMAP dan POP3 dengan perintah dibawah.
sudo apt install dovecot-core dovecot-imapd
sudo apt install dovecot-pop3d
Bila ingin melakukan pengecekan versi dovecot yang terinstall, Anda bisa menjalankan perintah dibawah.
dovecot --version
Mengaktifkan Protokol IMAP/POP3 Dovecot
Setelah proses instalasi selesai, selanjutnya mengaktifkan IMAP dan POP3 agar dapat digunakan. Jalankan perintah dibawah ini untuk mengedit file dovecot
sudo vim /etc/dovecot/dovecot.conf
Kemudian tambahkan baris berikut.
protokol = imap pop3
Save dan close editor
Mengubah Lokasi Mailbox
Secara default, file email postfix dan dovecot akan disimpan pada direktori /var/mail/username. Anda dapat melakukan pengecekan dengan menjalankan perintah ini.
postconf mail_spool_directory
Mungkin Anda ingin mengubah mailbox pada foldr Maildir. Silakan jalanlan perintah berikut ini dan edit.
sudo vim /etc/dovecot/conf.d/10-mail.conf
Silakan Anda ubah baris mail_location = mbox:~/mail:INBOX=/var/mail/%u menjadi berikut.
mail_location = maildir:~/Maildir
Bila Anda menggunakan versi ubuntu dibawah 18.04 maka perlu menambahkan baris dibawah. Namun bila menggunakan ubuntu 18.04 atau 20.04 akan otomatis tersedia.
mail_privileged_group = mail
save dan close editor
Selanjutnya jalankan command dibawah ini menambahkan dovecot ke group mail agar dapat membaca inbox.
sudo adduser dovecot mail
Konfigurasi Mekanisme Otentikasi
Untuk keamanan, Anda perlu melakukan perubahan pada mekanisme autentikasi.
sudo vim /etc/dovecot/conf.d/10-auth.conf
Silakan Anda ganti dan aktifkan baris-baris seperti berikut ini.
disable_plaintext_auth = yes
auth_username_format = %n
auth_mechanisms = plain login
Save dan close editor
Konfigurasi Enkripsi SSL/TLS
Selanjutnya kita perlu melakukan konfigurasi enkripsi ssl/tls menggunakan ssl lets encrypt uyang sebelumnya telah Anda install.
/etc/dovecot/conf.d/10-ssl.conf
Ubah ssl = yes menjadi ssl = required untuk menerapkan enkripsi.
Gantilah bagian ssl_cert dan ssl_key sesuai dengan ssl lets encrypt.
ssl_cert = </etc/letsencrypt/live/mail.namadomain.com/fullchain.pem ssl_key = </etc/letsencrypt/live/mail.namadomain.com/privkey.pem
Aktifkan bagian bagian berikut dan ubah menjadi yes.
ssl_prefer_server_ciphers = yes
Tambahkan juga baris berikut bila Anda menggunakan dovecot 2.3 atau diatasnya. Namun bila menggunakan dovecot 2.2 atau dibawahnya maka jangan tambahkan scropt dibawah.
ssl_protocols = !SSLv3 !TLSv1 !TLSv1.1
save dan close editor.
Konfigurasi Otentikasi SASL
Jalankan command dibawah untuk melakukan pengaturah SASL.
sudo vim /etc/dovecot/conf.d/10-master.conf
Ubahlah bagian service auth dengan script dibawah ini. Pastikan berhati-hati dalam membuka dan menutup syntax agar tidak terjadi error.
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }
save dan close editor
Buat Otomatis Folder Trash dan Sent
Edit syntax malbox dengan perintah berikut.
sudo vim /etc/dovecot/conf.d/15-mailboxes.conf
Untuk membuat folder trash dan sent otomatis bisa dengan menambahkan syntax berikut.
auto = create
contoh bila untuk folder trash. Anda bisa membuat untuk folder lainnya seperti folder konsep dan terkirim.
mailbox Trash { auto = create special_use = \Trash }
Save dan close editor.
Selanjutnya restart service dovecot.
Pastikan lakukan pengecekan port IMAP sudah terbuka. Jalankan perintah dibawah, apabila sudah terdapat port 143 dan 993 artinya port IMAP telah aktif.
sudo ss -lnpt | grep dovecot
Install Dovecot LMTP
Secara default, Postfix menggunakan local delivery agent (LDA) bawaannya untuk memindahkan email masuk ke penyimpanan pesan (kotak masuk, terkirim, sampah, Sampah, dll). Agar proses tersebut dapat menggunakan dovecot, Anda perlu melakukan install protokol LMTP (Local Mail Transfer Protocol), yaitu versi SMTP yang sudah disederhanakan. LMTP sangat memungkinkan untuk memberikan kinerja yang sangat skalabel dan handal.
Jalankan perintah berikut untuk install dovecot LMTP
sudo apt install dovecot-lmtpd
Edit kembali konfigurasi dovecot untuk manambahkan protocol LMTP.
/etc/dovecot/dovecot.conf
save dan close editor.
Edit juga file 10-master.conf.
sudo vim /etc/dovecot/conf.d/10-master.conf
Ganti pada bagian lmtp dengan syntax berikut ini. Pastikan berhati-hati dalam memberikan pembuka dan penutup syntax.
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
Selanjutnya edit postfix pada main.cf
Tambahkan baris berikut di akhir file. Baris pertama memberitahu Postfix untuk mengirimkan email ke penyimpanan pesan lokal melalui server LMTP dovecot. Baris kedua menonaktifkan SMTPUTF8 di Postfix, karena Dovecot-LMTP tidak mendukung ekstensi email ini.
sudo vim /etc/postfix/main.cf
mailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = no
save dan close kemudian restart service postfix dan dovecot.
sudo systemctl restart postfix dovecot
Konfigurasi Mail Client
Dalam panduan ini saya akan menggunakan aplikasi mail client ThunderBird. Anda bisa melakukan download thunderbird melalui link berikut download thunderbird.
Buat user/akun email baru menggunakan perintah dibawah ini.
sudo adduser useremail
Anda tidak perlu menambahkan @namadomain.com pada saat membuat user, karena hal tersebut sudah otomatis. Jadi cukup ketikan saja nama usernya.
Misal saja saya membuat user novri maka hanya perlu menjalankan perintah.
sudo adduser novri
Untuk melihat daftar user yang tersedia bisa menggunakan perintah ini.
sudo doveadm user '*'
Pastikan selalu melakuakn restart service dovecot setiap kali memnbuat user baru.
sudo systemctl restart dovecot
Selanjutnya Anda bisa menggunakan detail dibawah ini untuk konfigurasi di mail client. Dan untuk aplikasi outlook biasanya perlu menggunakan SSL (465).
IMAP
Host/Server : mail.namadomain.com
Port/Protocol : 993 (SSL)
POP3
Host/Server : mail.namadomain.com
Port/Protocol : 995 (SSL)
SMTP
Host/Server : mail.namadomain.com
Port/Protocol : 465 (SSL) atau 587 (TLS)
Saat konfigurasi berhasil, Anda sudah bisa melakukan pengiriman atau penerimaan email melalui mail client.
Tips Dovecot
Bila terjadi error pada pengiriman atau penerimaan email, Anda bisa melakukan pengecekan melalui log error dovecot.
cat /var/log/mail.log
Restart otomatis dovecot
Tentu akan sangat merepotkan bila setiap kali membuat akun email harus bolak balik menjalankan perintah restart service dovecot. Dalam hal ini Anda bisa membuat sistem restart service dovecot secara otomatis menggunakan cron.
Buat direktori dovecot.service.d, hal ini membuat sistem otomatis restart dovecot. Jika defaultnya saat Anda restart akan menjalankan dovecot.service.
sudo mkdir -p /etc/systemd/system/dovecot.service.d
Selanjutnya buat file restart.conf dengan perintah berikut.
sudo vim /etc/systemd/system/dovecot.service.d/restart.conf
Tambahkan syntax berikut ini. sintak tersebut artinya akan membuat dovecot restart otomatis setiap 5 detik, ketika kegagalan terjadi.
[Service] Restart=always RestartSec=5s
save dan close
Kemudian reload sysmtemd
sudo systemctl daemon-reload
Untuk melakukan pengecekan apakah sistem restart otomatis bekerja. Anda dapat menonaktifkan service dovecot dan cek statusnya kembali setelah 5 detik.
sudo pkill dovecot
systemctl status dovecot
Demikianlah Cara Membangun Server Email dengan Ubuntu 20.04 Part 2. Semoga bermanfaat dan dapat membantu Anda. Jangan lupa untuk shared artikel ini kepada teman, kerabat, saudara atau lainnya. Agar mimin novri.web.id lebih semangat dalam membuat panduan-panduan lain. reference by linuxbabe.com | images by flaticon