Monday, June 5, 2017

[CentOS 7] LAB 10.1 Installation and Configure Postfix & Dovecot for Mail Server

Assalamuallaikum 
WarahmatullahiWabarakatuh.

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Selamat pagi semua, ketemu lagi dengan ane. Pada kesempatan pagi hari ini ane mau sharing lagi, kalau pada artikel sebelumnya ane sharing mengenai materi Database, sekarang yang mau ane sharing sudah beda materi lagi, yaitu Mail Server.


Lalu apa yang dimaksud dengan Mail Server ?
Mail Server adalah server yang memungkinkan user dapat mengirimkan atau menerima surat elektronik ( e -mail ) satu sama lain baik dalam satu jaringan (lokal) maupun dalam jaringan internet. Atau dengan kata lain juga untuk mendistribusikan file atau infomasi berdasarkan respon permintaan yang dikirim melalui e - mail. Sedangkan protocol yang umum digunakan pada Mail Server adalah SMTP (Simple Mail Transfer Protocol), POP3 (Post Office Protocol v3) dan IMAP. SMTP digunakan sebagai standar untuk menampung data mendistribusikan email. Sedangkan POP3 dan IMAP digunakan agar user dapat mengambil dan membaca email secara remote.

Pada Mail Server ini kita ane akan menkonfigurasinya menggunakan Postfix dan Dovecot.
  • Postfix adalah program yang digunakan sebagai layanan SMTP (e - mail ke luar). Simple Mail Transfer Protocol atau SMTP digunakan untuk berkomunikasi dengan server, guna mengirimkan e - mail dari lokal ke server, sebelum akhirnya dikirimkan ke server e - mail penerima. Proses ini dikontrol dengan Mail Transfer Agent (MTA).
  • Dovecot digunakan sebagai layanan POP3 dan IMAP atau dikatakan untuk akses e - mail masuk. POP3 adalah sebuah layanan satu arah, maksudnya adalah data diambil dari mail server kemudian disimpan di perangkat anda. Sedangkan IMAP adalah komunikasi dua arah, maksudnya adalah email tetap berada pada server tanpa disimpan diperangkat anda.
Untuk topologi yang ane gunakan adalah sebagai berikut.


Berikut adalah langkah - langkah konfigurasi nya.

Konfigurasi Server

1.) Disini ane memiliki domain dengan nama anandarizky.co.id. Dan memiliki 2 sub domain yaitu ns dan www. Kemudian kita tambahkan sub domain untuk mail server nya, disini ane menggunakan nama mail sebagai domain yang akan digunakan oleh mail server. Tambahkan sub domain pada konfigurasi domain di file forward."nama filenya", yang terletak di directory /var/named. Untuk membuka file jalankan perintah
nano /var/named/forward."nama filenya"


2.) Jangan lupa pada file reverse."nama filenya" di konfigurasi juga, untuk letak directorynya sama yaitu di /var/named/. Untuk membuka file jalankan perintah
nano /var/named/reverse."nama filenya"


3.) Kemudian restart service named, supaya konfigurasi dapat tersimpan dan berjaan dengan baik
systemctl restart named


4.) Kemudian cek apakah sub domain berhasil dibuat dengan baik atau tidak dengan menajalankan perintah dig, apabila muncul output seperti gambar dibawah, maka dapat dipastikan sub domain sudah berhasil dibuat dan berjalan dengan semestinya.


Install and Configure Postfix

1.) Secara default Postfix sudah terinstall di CentOS 7, jika masih belum yakin, silahkan install Postfixnya dengan menjalankan perintah
yum install postfix
Nah kan sudah terinstall hehe


2.) Kemudian kita lakukan konfigurasi pada file main.cf yang terletak pada directory /etc/postifx/. Untuk membuka file jalankan perintah
nano /etc/postfix/main.cf


3.) Cari pada line 75 dan 83. Kemudian uncomment kedua baris tersebut. Pada baris myhostname digunakan untuk mendefinisikan hostname pada server kita, disini ane mengaturnya menjadi domain mail server ane. Sedangkan pada baris mydomain, digunakan untuk mendefinisikan domain yang telah didaftarkan pada server atau root domain dari server tersebut.


4.) Cari lagi pada line 99. Pada baris tersebut tepatnya pada myorigin = $mydomain kita uncomment juga. My Origin ini digunakan untuk mendefinisikan nama domain yang dikirim dari pos lokal berasal, dan e - mail yang diposkan secara lokal dikirimkan. Secara default, optionnya adalah $mydomain


5.) Cari lagi pada line 116, tepatnya pada baris inet_interfaces = localhost. Pada baris tersebut kita uncomment dan optionnya kita ubah yang awalnya localhost menjadi all, all ini berfungsi untuk mendefinisikan alamat antarmuka jaringan yang digunakan oleh sistem email ini agar dapat menerima semua email pada semua jaringan yang terhubung


6.) Cari pada lagi pada line 164, tepatnya pada baris mydestination. Kemudian tambahkan syntax seperti yang sudah ane blok warna biru pada gambar dibawah. My Destination Ini digunakan untuk mendefinisikan daftar domain yang dikirimkan emailnya. Disitu terdapat $myhostname untuk mendefiniskan hostname mail servernya, localhost.$mydomain, $mydomain untuk mendefinisikan nama domain internet dari sistem email ini, dan yang terakhir localhost yaitu mail server itu sendiri.


7.) Cari lagi pada line 265, tepatnya pada baris mynetworks. Pada baris ini kita uncomment, mynetworks ini digunakan untuk mendefinisikan network yang akan diizinkan untuk meremote smtp dengan hak akses yang lebih dari pada network yang tidak didaftarkan. Disini ane mendaftarkan network yang ada pada server ane yaitu 172.16.0.122/24. Mohon maaf seharusnya network ane /16 bukan /24.


8.) Cari lagi pada line 419, tepatnya pada baris home_mailbox. Pada baris tersebut kita uncomment, home_mailbox ini digunakan untuk mendefinisikan mailbox ke directory home sebuah user.


9.) Cari lagi pada line 572, tepatnya pada baris smtpd_banner, smptd banner ini hanyalah banner atau tulisan yang akan muncul pada saat client mengakses smtp, disini ane atur menjadi $myhostname SMTP, yang berarti nanti akan ditampilkan nama hostname dari server mail dan di belakangnya diikuti dengan tulisan ESMTP.


10.) Kemudian pada bagian paling bawah tambahkan script seperti gambar dibawah ini.
Keterangan : 
  • message_size_limit : Digunakan untuk menentukan ukuran maksimal dalam satuan byte suatu email masuk atau keluar. Disini ane atur menjadi 10485760 byte kalau dikonversi ke MB menjadi 10MB 
  • mailbox_size_limit : Digunakan untuk mendefinisikan jumlah kotak surat untuk setiap user 
  • smtpd_sasl_type = dovecot : Merupakan Jenis plug-in SASL yang digunakan oleh server SMTP Postfix untuk otentikasi yaitu dengan dovecot 
  • smtpd_sasl_path = private/auth : Merupakan Informasi spesifik implementasi yang dikirim server SMTP Postfix ke implementasi plugin SASL yang dipilih dengan smtpd_sasl_type yaitu pada private/auth 
  • smtpd_sasl_auth_enable = yes : Digunakan untuk mengaktifkan otentikasi SASL di server SMTP Postfix 
  • smtpd_sasl_security_options = noanonymous : Digunakan untuk mendefinisikan Opsi keamanan SMTP server SMTP Postfix untuk melarang anonim melakukan autentikasi smtpd_sasl_local_domain = $myhostname : Merupakan nama server lokal SASL lokal Postfix SMTP server yaitu sudah ditentukan pada $myhostname 
  • smtpd_recipient_restrictions permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject : Merupakan Opsional pembatasan server SMTP Postfix berlaku dalam konteks perintah RCPT TO client

Konfigurasi pada file main.cf sudah selesai, kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


11.) Restart dan enable service postfix supaya konfigurasi yang telah disimpan dapat berjalan dengan baik.
systemctl restart postfix
systemctl enable postfix


12.) Tambahkan service smtp ke firewall supaya nantinya dapat diakses oleh client
firewall-cmd --permanent --add-service=smtp
firewall-cmd --reload
Keterangan : 
  • firewall-cmd : Perintah untuk masuk ke settingan Firewall 
  • firewall --permanent : Perintah untuk menambahkan sesuatu secara permanent didalam firewall 
  • firewall --add-service=smtp : Perintah untuk menambahkan service smtp supaya dapat melewati firewall


Install and Configure Dovecot

1.) Untuk menginstall Dovecot jalankan perintah
yum install dovecot -y


2.) Kemudian lakukan konfigurasi pada file dovecot.conf yang terlatak pada directory /etc/dovecot/. Untuk membuka file jalankan perintah
nano  /etc/dovecot/dovecot.conf


3.) Cari pada line 23 dan 30, tepatnya pada baris protocols dan listen, kemudian uncomment kedua baris tersebut. Pada baris protocols berisi protocol yang akan digunakan, sedangkan pada barisan listen berisi mengenai mengizinkan koneksi semua IPv4.
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


4.) Setelah itu lakukan konfigurasi pada file 10-auth.conf yang terletak pada directory /etc/dovecot/conf.d/. Untuk membuka file jalankan perintah 
nano /etc/dovecot/conf.d/10-auth.conf


5.) Cari pada line 10, tepatnya pada baris disable_plaintext_auth = yes. Kemudian uncomment pada baris tersebut, dan ubah option yang sebelumnya yes menjadi no untuk mengaktifkan plainteks autentikasi.


6.) Cari lagi pada line 100, tepatnya pada baris auth_mechanisms. Ubah option yang tadi nya plain menjadi plain login untuk mengatur mekanisme autentikasi.
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


7.) Selanjutnya lakukan konfigurasi pada file 10-mail.conf yang terletak pada directory /etc/dovecot/conf.d/. Untuk membuka file jalankan perintah 
nano /etc/dovecot/conf.d/10-mail.conf


8.) Cari pada line 30, tepatnya pada baris mail_location. Pada baris itu kita uncmment, kemudian atur optionnya menjadi  maildir:~/Maildir. Ini digunakan untuk mengatur lokasi email pada setiap user menjadi pada ~/Maildir atau pada directory /home/user/Maildir
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


9.) Kemudian lakukan konfigurasi pada file 10-master.conf yang terletak pada directory /etc/dovecot/conf.d/. Untuk membuka file jalankan perintah 
nano /etc/dovecot/conf.d/10-master.conf


10.) Cari pada line 96 dan 97, tepatnya pada baris unix_listener dan mode = 0666, kemudian uncomment kedua baris tersebut. Setelah itu tambahkan  user = postfix dan group = postfix dibawah mode = 0666 untuk menentukan user dan grup yang digunakan untuk autentikasi
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


11.) Selanjutnya lakukan konfigurasi pada file 10-ssl.conf yang terletak pada directory /etc/dovecot/conf.d/. Untuk membuka file jalankan perintah 
nano /etc/dovecot/conf.d/10-mail.conf


12.) Kemudian cari pada line 8, tepatnya pada baris ssl. Karena disini kita belum menggunakan ssl, maka pada option yang sebelumnya required kita ubah menjadi no.
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


13.) Start dan enable service dovecot supaya konfigurasi dapat berjalan dengan baik 
systemctl start dovecot 
systemctl enable dovecot


14.) Tambahkan port 110 dan 143 kedalam firewall agar dapat mengizinkan service imap dan pop3, kemudian di reload
firewall-cmd --permanent --add-port={110/tcp,143/tcp} 
firewall-cmd --reload


15.) Untuk melakukan pengiriman e - mail kita perlu 2 user, sebelumnya ane udah punya  1 user dengan nama ananda. Kemudian kita buat user satu lagi, disini ane namai dengan rizky
useradd rizky
passwd rizky
Kemudian buat password untuk user tersebut.

Verifikasi Mail

1.) Lakukan pengetesan kirim pesan / e - mail pada client melalui telnet port 25 (smtp)
telnet "domain mail server" 25
Misalnya disini ane mau kirim e - mail / pesan dari user ananda ke user rizky.
Keterangan :
  • mail from : Merupakan nama user pengirim email 
  • rcpt to : Merupakan nama user penerima email 
  • data : Merupakan perintah yang digunakan untuk membuka kolom text email yang akan dikirim 
  • "." : Merupakan perintah untuk mengakhiri isi teks dari pesan yang akan dikirim
  • quit : Merupakan perintah untuk keluar dari telnet


2.) Kemudian kita cek e - mail / pesan apakah sudah masuk atau belum pada client melalui telnet port 110 (pop3)
telnet "domain mail server" 110
Nah ternyata ada nih hehe, penjelasannya dibawah yaaaaa... 
Keterangan : 
  • user : Merupakan nama usernya yang akan digunakan untuk login 
  • pass : Merupakan password dari user tersebut 
  • stat : Digunakan untuk mengecek email masuk 
  • retr 1 : Digunakan untuk membuka/membaca email masuk
  • quit : Digunakan untuk keluar dari telnet


3.) Kemudian kita coba mengirim e - mail / pesan dari user rizky ke user ananda.



4.) Dan e - mail / pesan behasil terkirim.

Mungkin hanya itu yang dapat ane sharing, mohon maaf bila terdapat kesalahan baik dari segi kata maupun penulisan. Dan tetap nantikan postingan terbaru dari blog ini.
Terima Kasih. Semoga Bermanfaat. 

Wassalamuallaikum Warahmatullahi Wabarakatuh.

 وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

1 comment: