Instal Server Mail Lengkap dengan Postfix dan Webmail di Debian 9


Tutorial ini akan memandu Anda tentang cara menginstal dan mengkonfigurasi server email lengkap dengan Postfix di rilis Debian 9. Ini juga akan membahas cara mengonfigurasi kotak surat akun menggunakan Dovecot untuk mengambil dan menulis email melalui protokol IMAP. Pengguna akan menggunakan antarmuka Rainloop Webmail sebagai agen pengguna email untuk menangani email.

Persyaratan

  1. Instalasi Minimal Debian 9
  2. Alamat IP statis yang dikonfigurasi untuk antarmuka jaringan
  3. Nama domain lokal atau publik yang terdaftar.

Dalam tutorial ini kita akan menggunakan akun domain pribadi untuk pengaturan server email yang dikonfigurasi melalui file /etc/hosts saja, tanpa ada server DNS yang terlibat dalam menangani resolusi DNS.

Langkah 1: Konfigurasi Awal untuk Server Email Postfix di Debian

1. Pada langkah pertama, masuk ke mesin Anda dengan akun dengan hak akses root atau langsung dengan pengguna root dan pastikan sistem Debian Anda mutakhir dengan patch keamanan terbaru serta rilis perangkat lunak dan paket terbaru , dengan mengeluarkan perintah berikut.

apt-get update 
apt-get upgrade 

2. Pada langkah selanjutnya instal paket perangkat lunak berikut yang akan digunakan untuk administrasi sistem, dengan mengeluarkan perintah berikut.

apt-get install curl net-tools bash-completion wget lsof nano

3. Selanjutnya, buka file /etc/host.conf untuk diedit dengan editor teks favorit Anda dan tambahkan baris berikut di awal file agar resolusi DNS dapat dilakukan. baca file host terlebih dahulu.

order hosts,bind
multi on

4. Selanjutnya, siapkan FQDN mesin Anda dan tambahkan nama domain serta FQDN sistem Anda ke file /etc/hosts. Gunakan alamat IP sistem Anda untuk menyelesaikan nama domain dan FQDN seperti yang diilustrasikan pada gambar di bawah.

Ganti alamat IP dan domain yang sesuai. Setelah itu, reboot mesin untuk menerapkan nama host dengan benar.

hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. Setelah reboot, verifikasi apakah nama host telah dikonfigurasi dengan benar dengan mengeluarkan serangkaian perintah berikut. Nama domain, FQDN, nama host dan alamat IP sistem harus dikembalikan dengan perintah nama host.

hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Selain itu, uji apakah domain membalas kueri lokal dengan benar dengan mengeluarkan perintah di bawah ini. Perlu diketahui bahwa domain tidak akan memutar ulang kueri jarak jauh yang dikeluarkan oleh sistem lain di jaringan Anda, karena kami tidak menggunakan server DNS.

Namun, domain tersebut akan membalas dari sistem lain jika Anda menambahkan nama domain secara manual ke setiap file /etc/hosts mereka. Perlu diketahui juga bahwa resolusi DNS untuk domain yang ditambahkan ke file /etc/hosts tidak akan berfungsi melalui perintah host, nslookup, atau dig.

getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Langkah 2: Instal Server Email Postfix di Debian

7. Perangkat lunak terpenting yang diperlukan agar server email dapat berfungsi dengan baik adalah agen MTA. MTA adalah perangkat lunak yang dibangun dalam arsitektur server-klien, yang bertanggung jawab untuk transfer email antar server email.

Dalam panduan ini kita akan menggunakan Postfix sebagai agen transfer email. Untuk menginstal postfix di Debian dari repositori resmi, jalankan perintah berikut.

apt-get install postfix

8. Selama proses instalasi Postfix Anda akan ditanyai serangkaian pertanyaan. Pada perintah pertama, pilih opsi Situs Internet sebagai tipe umum untuk konfigurasi Postfix dan tekan tombol [enter] untuk melanjutkan dan kemudian tambahkan nama domain Anda ke nama email sistem, sebagai diilustrasikan pada screenshot berikut.

Langkah 3: Konfigurasikan Server Email Postfix di Debian

9. Selanjutnya, buat cadangan file konfigurasi utama Postfix dan konfigurasikan Postfix untuk domain Anda dengan menggunakan perintah berikut.

cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf

Sekarang konfigurasikan konfigurasi Postfix di file main.cf seperti yang ditunjukkan.

See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2

TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Ganti variabel myhostname, mydomain dan mynetworks agar sesuai dengan konfigurasi Anda.

Anda dapat menjalankan perintah postconf -n untuk membuang file konfigurasi utama Postfix dan memeriksa kesalahan yang mungkin terjadi, seperti yang ditunjukkan pada gambar di bawah.

postconf -n

10. Setelah semua konfigurasi dilakukan, restart daemon Postfix untuk menerapkan perubahan dan verifikasi apakah layanan berjalan dengan memeriksa apakah layanan master Postfix mengikat pada port 25 dengan menjalankan netstat memerintah.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Langkah 3: Uji Server Email Postfix di Debian

11. Untuk menguji apakah postfix dapat menangani transfer email, pertama-tama instal paket mailutils dengan menjalankan perintah berikut.

apt-get install mailutils

12. Selanjutnya, dengan menggunakan utilitas baris perintah mail, kirim email ke akun root dan periksa apakah email berhasil dikirim dengan mengeluarkan perintah di bawah ini untuk memeriksa antrian email dan mencantumkan konten root direktori utama Maildir.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Anda juga dapat memverifikasi cara email ditangani oleh layanan postfix dengan memeriksa konten file log email dengan mengeluarkan perintah berikut.

tailf /var/log/mail.log

Langkah 4: Instal dan Konfigurasikan IMAP Dovecot di Debian

14. Agen pengiriman surat yang akan kita gunakan dalam panduan ini untuk mengirimkan pesan email ke kotak surat penerima lokal adalah Dovecot IMAP. IMAP adalah protokol yang berjalan pada port 143 dan 993 (SSL), yang bertanggung jawab membaca, menghapus, atau memindahkan email ke beberapa klien email.

Protokol IMAP juga menggunakan sinkronisasi untuk memastikan bahwa salinan setiap pesan disimpan di server dan memungkinkan pengguna membuat beberapa direktori di server dan memindahkan email ke direktori ini untuk mengurutkan email.

Hal ini tidak terjadi pada protokol POP3. Protokol POP3 tidak mengizinkan pengguna membuat beberapa direktori di server untuk menyortir email Anda. Anda hanya memiliki folder kotak masuk untuk mengelola email.

Untuk menginstal server inti Dovecot dan paket Dovecot IMAP di Debian, jalankan perintah berikut.

apt install dovecot-core dovecot-imapd

15. Setelah Dovecot terinstal di sistem Anda, buka file dovecot di bawah ini untuk diedit dan lakukan perubahan berikut. Pertama, buka file /etc/dovecot/dovecot.conf, cari dan hapus komentar pada baris berikut:

listen = *, ::

16. Selanjutnya, buka /etc/dovecot/conf.d/10-auth.conf untuk mengedit dan cari serta ubah baris di bawah ini agar terlihat seperti kutipan di bawah ini.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Buka file /etc/dovecot/conf.d/10-mail.conf dan tambahkan baris berikut untuk menggunakan lokasi Maildir alih-alih Format Mbox untuk menyimpan email.

mail_location = maildir:~/Maildir

18. File terakhir yang diedit adalah /etc/dovecot/conf.d/10-master.conf. Di sini cari blok smtp-auth Postfix dan lakukan perubahan berikut:

Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Setelah Anda melakukan semua perubahan di atas, mulai ulang daemon Dovecot untuk mencerminkan perubahan, periksa statusnya dan verifikasi apakah Dovecot mengikat pada port 143, dengan mengeluarkan perintah di bawah ini.

systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn

20. Uji apakah server email berjalan dengan benar dengan menambahkan akun pengguna baru ke sistem dan gunakan perintah telnet atau netcat untuk terhubung ke Server SMTP dan mengirim email baru ke pengguna baru yang ditambahkan, seperti yang diilustrasikan dalam kutipan di bawah ini.

adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Periksa apakah email telah sampai ke kotak surat pengguna baru dengan mencantumkan konten direktori beranda pengguna seperti yang ditunjukkan pada gambar di bawah.

ls /home/test_mail/Maildir/new/

22. Selain itu, Anda juga dapat terhubung ke kotak surat pengguna dari baris perintah melalui protokol IMAP, seperti yang ditunjukkan dalam kutipan di bawah ini. Email baru harus terdaftar di Kotak Masuk pengguna.

nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Langkah 5: Instal dan Konfigurasi Webmail di Debian

23. Pengguna akan mengelola email mereka melalui klien Rainloop Webmail. Sebelum menginstal agen pengguna email Rainloop, instal terlebih dahulu server Apache HTTP dan modul PHP berikut yang diperlukan oleh Rainloop, dengan mengeluarkan perintah berikut.

apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Setelah server web Apache terinstal, ubah jalur direktori ke direktori /var/www/html/, hapus file index.html dan jalankan perintah berikut untuk menginstal Rainloop Webmail.

cd /var/www/html/
rm index.html 
curl -sL https://repository.rainloop.net/installer.php | php

25. Setelah klien Rainloop Webmail terinstal di sistem, navigasikan ke alamat IP domain Anda dan login ke antarmuka web admin Rainloop dengan kredensial default berikut:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Navigasikan ke menu Domain, tekan tombol Tambahkan Domain dan tambahkan pengaturan nama domain Anda seperti yang ditunjukkan pada gambar di bawah.

27. Setelah Anda selesai menambahkan pengaturan domain Anda, keluar dari antarmuka admin Ranloop dan arahkan browser ke alamat IP Anda untuk masuk ke klien webmail dengan akun email.

Setelah Anda berhasil masuk ke webmail Rainloop Anda akan melihat email yang dikirim sebelumnya dari baris perintah ke folder Kotak Masuk Anda.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Untuk menambahkan pengguna baru, berikan perintah useradd dengan tanda -m untuk membuat direktori home pengguna. Namun, pertama-tama pastikan Anda mengonfigurasi variabel jalur Maildir untuk setiap pengguna dengan perintah berikut.

echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3

28. Jika Anda ingin mengalihkan semua email root ke akun email lokal tertentu dari sistem, jalankan perintah di bawah ini. Semua email yang dialihkan atau ditujukan ke akun root akan diteruskan ke pengguna email Anda seperti yang ditunjukkan pada gambar di bawah.

echo "root: test_mail" >> /etc/aliases
newaliases

Itu saja! Anda telah berhasil menginstal dan mengkonfigurasi server email di lokasi Anda agar pengguna lokal dapat berkomunikasi melalui email. Namun, jenis konfigurasi email ini tidak aman dengan cara apa pun dan disarankan untuk diterapkan hanya untuk pengaturan kecil di sistem dan jaringan di bawah kendali penuh Anda.