Basic Konfigurasi Mail Server Pada FreeBSD Menggunakan Dovecot & Postfix
Mail Server adalah server yang memungkinkan pengguna (user) untuk dapat mengirim dan menerima surat elektronik (e-mail) satu sama lain dalam satu jaringan atau internet. layanan ini menggunakan arsitektur clientserver, artinya ada aplikasi client mengakses server email. Dalam Mail Server ada beberapa service Protocol yang berjalan untuk membantu berjalannya sebuah email server, diantaranya :
POP3 (Post Office Protocol v3)
IMAP (Internet Mail Access Protocol)
SMTP (Simple Mail Transfer Protocol)
Sesuai judul bahasan yang saya buat, kali ini saya akan menjelaskan bagaimana cara mengkonfigurasi Basic Mail Server menggunakan Dovecot & Postfix pada FreeBSD.
Post Install Sebelum melakukan konfigurasi lebih lanjut, install beberapa paket yang dibutuhkan untuk membuat mail server serta buat daemon proses agar service berjalan pada background proses. Seperti yang dapat kita lihat dibawah ini ~] # cd /usr/ports/mail/dovecot && make install clean ~] # cd /usr/ports/mail/postfix && make install clean ~] # cat >> /etc/rc.conf dovecot_enable="YES"
postfix_enable="YES" sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" [ctrl-D]
Setelah menyelesaikan langkah diatas, konfigurasi ulang dns forward lookup yang kalian miliki, buat MX Record yang berguna sebagai pemetaan sebuah domain name (FQDN) yang kalian miliki ke dalam daftar mail exchange. Untuk pembuatan DNS lebih jelas, silakan baca dokumentasi saya sebelumnya terkait DNS Server pada FreeBSD disini. Seperti yang dapat kita lihat dibawah ini adalah file konfigurasi NS Forward yang saya miliki : $TTL 3h @ SOA ns1.gibranlavigne.org. root.gibranlavigne.org. 42 1d 12h 1w 3h ; Serial, Refresh, Retry, Expire, Neg. cache TTL ;DNS Server @ ns1
IN IN
NS A
ns1.gibranlavigne.org. 172.17.3.65
;Machine Names @ www blog
IN IN IN
A A A
172.17.3.65 172.17.3.65 172.17.3.65
mail
IN IN
MX 10 A
mail.gibranlavigne.org. 172.17.3.65
ftp
IN
A
172.17.3.65
;MX Server
Konfigurasi Selanjutnya, buat file config postfix main.cf pada direktori /usr/local/etc/postfix/. Untuk melakukan konfigurasi dasar mail server, kita hanya membutuhkan beberapa opsi / parameter config seperti yang dapat kita lihat dibawah ini : queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix data_directory = /var/db/postfix mail_owner = postfix myhostname = mail.gibranlavigne.org mydomain = gibranlavigne.org myorigin = $myhostname inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain unknown_local_recipient_reject_code = 550 mynetworks_style = host mynetworks = 127.0.0.0/8 home_mailbox = Maildir/ debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/local/sbin/sendmail newaliases_path = /usr/local/bin/newaliases mailq_path = /usr/local/bin/mailq setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix manpage_directory = /usr/local/man sample_directory = /usr/local/etc/postfix readme_directory = /usr/local/share/doc/postfix inet_protocols = ipv4
Setelah tahap diatas, sekarang luangkan waktu sebentar untuk membuat atau mengedit file config dovecot yang berada pada pada direktori /usr/local/etc/dovecot.conf. Untuk konfigurasi dasar dovecot tanpa tanpa dengan tambahan opsi / parameter apapun seperti ssl, dll. kita dicukupkan untuk mengedit edit atau menambahkan bagian line dibawah ini : # Protocols we want to be serving: imap imaps pop3 pop3s managesieve # If you only want to use dovecot-auth, you can set this to "none". protocols = imap pop3
Untuk memastikan semua service benar-benar berjalan, sebelum itu lakukan reboot komputer / server lalu lakukan tester akses protokol imap, pop3, serta smtpd melalui telnet seperti dibawah ini :
Apabila kita lihat dari screenshot diatas, menandakan bahwa semua service yang telah kita buat berjalan dengan sempurna. Lalu bagaimana jika kita implementasikan dengan pengiriman pesan dari user satu ke user lain? Dalam kasus ini, sebelumnya kita buat 2 user pada server dengan username yang berbeda seperti dibawah ini : ~] # adduser Username: sandra
Full name: Dellia Sandra Uid (Leave empty for default): Login group [sandra]: Login group is sandra. Invite sandra into other groups? []: wheel Login class [default]: Shell (sh csh tcsh nologin) [sh]: tcsh Home directory [/home/sandra]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : sandra Password : ***** Full Name : Dellia Sandra Uid : 1005 Class : Groups : sandra wheel Home : /home/sandra Home Mode : Shell : /bin/tcsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (sandra) to the user database. Add another user? (yes/no): yes Username: mashkov Full name: Mashkov Uid [1006]: Login group [mashkov]: Login group is mashkov. Invite mashkov into other groups? []: wheel Login class [default]: Shell (sh csh tcsh nologin) [sh]: tcsh Home directory [/home/mashkov]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : mashkov Password : ***** Full Name : Mashkov Uid : 1006 Class : Groups : mashkov wheel Home : /home/mashkov Home Mode : Shell : /bin/tcsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (mashkov) to the user database. Add another user? (yes/no): no Goodbye!
Setelah langkah diatas selesai dilakukan, sekarang kita kembali ke salah satu komputer client untuk mengirim pesan ke user lain dengan menggunakan telnet seperti dibawah ini :
Dari screenshot diatas, tercatat pesan dikirim dari user yang bernama Mashkov serta pesan yang dibuat untuk user yang bernama Sandra. Lalu bagaimana kita mengetahui pesan tersebut berhasil terkirim? Dapat dilihat dari report messages smtp yang mengatakan 250 2.0.0 Ok: queued as 09B2B6298, apabila diartikan report tersebut mengatakan bahwa Email yang dibuat telah diserahkan kepada penerima seperti yang ditujukan dalam pesan, tetapi mungkin memerlukan tambahan pengolahan sebelum mendarat di kotak pesan penerima. Untuk memastikan, cek pesan masuk yang terdapat pada direktori Maildir penerima seperti dibawah ini :
Saya rasa, pembahasan terkait konfigurasi dasar Mail Server kali ini cukup sampai disini. Mohon maaf bila ada kekurangan ataupun kesalahan atas apa yang telah saya share disini. Semoga bermanfaat, Terimakasih.