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

1