Studi Kasus: Kombinasi Mailserver Postfix dan Dovecot di Debian Squeeze

Artikel ini lebih untuk catatan pribadi EYD karena sering bolak-balik reload OS VPS sendiri dan suka konfigurasi ulang VPS untuk digunakan sebagai mailserver pribadi. Walau bisa dihitung proses reload OS hanya dua kali dalam setahun, namun itulah ilmu kalau tidak sering diulang-ulang bisa lupa juga. Kenapa sih VPSnya diinstall ulang beberapa kali, hehehe tau sendiri bro sis untuk sarana belajar server, VPSlah sarana yang tepat. Dengan sistem virtualisasi memudahkan belajar apa saja, dan kalaupun error bisa dengan segera reload OS dalam hitungan menit.

Kembali ke materi, EYD ingin share cara mensetting VPS dengan OS Debian Squeeze bisa digunakan sebagai mailserver sederhana yang cukup menampung beberapa user/domain. OK yuk langsung ke materi. Tutorial ini murni mensetting sebuah mailserver ‘start from scratch‘ dimana paket VPS hanya berupa OS tanpa control panel cPanel atau sejenis.

  • pertama pastikan sourcelist/repositori sudah diupdate dengan ‘apt-get update’, bro sis bisa gunakan repositori kantor EYD

deb http://mwn-tlkm.arsip.or.id/debian squeeze main non-free contrib
deb http://mwn-tlkm.arsip.or.id/debian squeeze-updates main non-free contrib
deb http://mwn-tlkm.arsip.or.id/debian-security squeeze/updates main non-free contrib

  • jika sudah update coba pastikan tidak ada MTA lain  yang running semisal exim4 ataupun sendmail, bisa hapus terlebih dahulu jika ada.

# apt-get –purge remove exim4 exim4-base exim4-config exim4-daemon-light

# apt-get remove sendmail-base sendmail-bin sendmail-cf

  • install paket dovecot dan postfix-pcre

#  apt-get install dovecot-imapd postfix-pcre

  • pilih ‘No configuration’ lalu klik OK

  • selanjutnya kita mensetup virtual user dengan menggunakan standar plain text, untuk itu kita perlu menambahkan sistem user baru untuk menghandle semua virtual user nanti, berikut caranya

~# useradd -r -c ‘virtual mail users’ -m -d /vmail -g mail vmail

# chown vmail:mail /vmail

  • cek dengan perintah ‘id’ untuk mengetahui uid user vmail yang baru saja dibuat

# id vmail
uid=999(vmail) gid=8(mail) groups=8(mail)

  • saatnya untuk mendefinisikan file user, ohya password dalam baris file ini menggunakan standar kripto SHA-1, bisa menggunakan perintah  dovecotpw.

# dovecotpw -s SHA1
Enter new password:
Retype new password:
{SHA1}Wodn8AvU1F4ZfdSJm9fJOafCZNU=

  • sekarang buat file /etc/dovecot/users.conf yang berisi baris-baris user, ingat dalam 1 baris ya per user jangan pindah baris.

endrik@yamaru.co.cc:{SHA1}Wodn8AvU1F4ZfdSJm9fJOafCZNU=:999:8:Endrik:/vmail/yamaru.co.cc/endrik

admin@server.sejutaumat.com:{SHA1}C+7Hteo/D9vJXQ3UfzxbwnXaijM=:999:8:Admin:/vmail/server.sejutaumat.com/admin

  • untuk meningkatkan keamanan, ubah permission file tersebut jadi milik user root dan chmod 600.

# chown root:root /etc/dovecot/users.conf

# chmod 600 /etc/dovecot/users.conf

  • setelah selesai membuat file user, selanjutnya mari kita konfigurasi Dovecot, edit file /etc/dovecot/dovecot.conf

protocols = imap

# We only allow our virtual user to login
first_valid_uid = 999
last_valid_uid = 999
first_valid_gid = 8
last_valid_gid = 8

mail_location = maildir:~/Maildir

# debugging – comment in when needed

log_timestamp = “%Y-%m-%d %H:%M:%S ”
#mail_debug = yes
#auth_verbose = yes
#auth_debug = yes
#auth_debug_passwords = yes
#verbose_ssl = no

protocol lda {
# Address to use when sending rejection mails.
postmaster_address = postmaster@yamaru.co.cc
}

auth default {
mechanisms = plain
passdb passwd-file {
args = /etc/dovecot/users.conf
}
userdb passwd-file {
args = /etc/dovecot/users.conf
}

socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
group = mail
}
client {
# make auth info available for postfix
path = /var/spool/postfix/private/auth
mode = 0600
user = postfix
group = mail
}
}
}

  • setelah itu restart service Dovecot

# /etc/init.d/dovecot restart

  • langkah selanjutnya kita konfigurasi Postfix, edit file /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# setup for local generated mails
append_dot_mydomain = yes
masquerade_domains = dedicated.endrix.web.id
myorigin = dedicated.endrix.web.id

# general stuff
myhostname = dedicated.endrix.web.id
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = dedicated.endrix.web.id,
mail,
localhost,
localhost.localdomain,
yamaru.co.cc,
onestopservices.co.cc,
charly.xom
relayhost =
mynetworks = 127.0.0.0/8, 110.50.80.30
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# helo restrictions
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
reject_invalid_hostname,
permit

# sender restrictions
smtpd_sender_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit

# recipient restriction
smtpd_recipient_restrictions =
reject_unauth_pipelining,
permit_sasl_authenticated,
permit_mynetworks,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination

#enable SMTP auth for relaying
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# deliver with dovecot
dovecot_destination_recipient_limit = 1
mailbox_transport = dovecot
local_recipient_maps =

  • terakhir tambahkan baris ini di paling akhir /etc/postfix/master.cf

# Dovecot LDA
dovecot unix – n n – – pipe
flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

  • sebelum restart Postfix, pastikan dulu alias database diset

# newaliases

# /etc/init.d/postfix restart

Testing

Untuk test awal, coba telnet ke port 25 dan 143 apakah server sudah menyaut. Lakukan dari komputer berbeda.

$  telnet download.endrix.web.id 25
Trying 49.50.10.111…
Connected to download.endrix.web.id.
Escape character is ‘^]’.
220 mail.yamaru.co.cc ESMTP Postfix (Debian/GNU)

$ telnet download.endrix.web.id 143
Trying 49.50.10.111…
Connected to download.endrix.web.id.
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS LOGINDISABLED] Dovecot ready.

  • Ok sampai disini berarti mailserver sudah bisa digunakan, tinggal setting outlook/thunderbird sesuai keinginan. EYD coba best practice coba install webmail Squirremail agar lebih mudah mengakses email via webmail.

# apt-get install squirrelmail

  • klik Ok di jendela debconf yang muncul, selanjutnya install setting locales yang diperlukan

 # dpkg-reconfigure locales

  • jika ingin melakukan pengaturan tambahan untuk squirremail bisa jalankan perintah  /usr/sbin/squirrelmail-configure.
  • terakhir tambahkan alias squirremail ke konfigurasi apache2 agar bisa akses http://namahost/squirrelmail, edit file /etc/apache2/apache2.conf

Include /etc/squirrelmail/apache.conf

  • Restart apache, /etc/init.d/apache2 restart dan lihat hasilnya mailserver sudah siap digunakan dengan Squirrelmail :D Silahkan dicoba, semoga bermanfaat.

hasil log /var/log/mail.log yang mengindikasikan email masuk dan berhasil dideliver ke inbox user endrik [at] yamaru.co.cc

Nov 12 19:10:40 server postfix/smtpd[1501]: connect from mail-la0-f49.google.com[209.85.215.49]
Nov 12 19:10:52 server postfix/smtpd[1501]: 75D03181FD: client=mail-la0-f49.google.com[209.85.215.49]
Nov 12 19:10:55 server postfix/cleanup[1505]: 75D03181FD: message-id=<CAHw5J8OKRb6wyOfAxotQiD8nBVvCx4HFQojw8JVBSmy05q09bg@mail.gmail.com>
Nov 12 19:10:55 server postfix/qmgr[1499]: 75D03181FD: from=<staffti@gmail.com>, size=1730, nrcpt=1 (queue active)
Nov 12 19:10:56 server dovecot: deliver(endrik@yamaru.co.cc): msgid=<CAHw5J8OKRb6wyOfAxotQiD8nBVvCx4HFQojw8JVBSmy05q09bg@mail.gmail.com>: saved mail to INBOX
Nov 12 19:10:56 server postfix/pipe[1507]: 75D03181FD: to=<endrik@yamaru.co.cc>, relay=dovecot, delay=11, delays=10/0.02/0/0.2, dsn=2.0.0, status=sent (delivered via dovecot service)
Nov 12 19:10:56 server postfix/qmgr[1499]: 75D03181FD: removed
Nov 12 19:11:09 server dovecot: imap-login: Login: user=<endrik@yamaru.co.cc>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Nov 12 19:11:09 server dovecot: IMAP(endrik@yamaru.co.cc): Disconnected: Logged out bytes=292/1954
Nov 12 19:11:26 server postfix/smtpd[1501]: disconnect from mail-la0-f49.google.com[209.85.215.49]

This entry was posted in Internet Networking, Linux and tagged . Bookmark the permalink.

2 Responses to Studi Kasus: Kombinasi Mailserver Postfix dan Dovecot di Debian Squeeze

  1. Ki Salim says:

    VPS apakah sama dengan VPN mas bro?? ane dulu juga pernah belajar tentang server, tapi cuma sekedar server penyimpanan data dan berkas, seperti server perusahaan n perkantoran. g kayak server web hosting seperti itu.. banyak2 posting artikel IT mas.. hehehe

    • EYD says:

      VPS berbeda dengan VPN walau umumnya VPS suka dijadikan sarana untuk VPN. VPS adalah virtual private server, solusi murah jika bro sis belum kuat ngadain server beneran untuk ditaruh di datacenter. Server beneran bisa diasumsikan namanya Colocation atau Dedicated server. Sedangkan VPN adalah virtual private network, dimana bro sis bisa mengakses jaringan private (misal kantor) menggunakan jaringan publik internet. Seperti EYD yang selama ini bisa mengakses jaringan kantor dari rumah untuk bekerja dari rumah.

      Namun tren VPN saat ini lebih dicari buat tunneling ke server IIX yang memiliki b/w internasional berlimpah untuk sarana download :D

Leave a Reply

Your email address will not be published. Required fields are marked *