Sudah menjadi fakta bahwa selama bertahun-tahun Sendmail merupakan Mail Transfer
Agent (MTA, baca mail server) di lingkungan Unix. Sendmail sendiri mempunyai sejarah
panjang dalam masalah keamanan, dan terkenal dengan banyaknya pilihan untuk
mengkonfigurasikannya. Beberapa contoh masalah keamanan di Sendmail misalnya :
• MIME Buffer Overflow Bug. Beberapa badan riset independen menemukan bahwa
beberapa klien e-mail thd Sendmail Versi 8.9.1 berpotensi untuk diserang MIME
header-based attack. Hal ini dapat terjadi jika sebuah mail membawa header
MIME yang tidak diformat dengan benar akan menyebabkan buffer overflow. Isu
ini dapat dibaca di
http://www.cert..org/advisories/CA-
98.10.mime_buffer_overflows.html.
• HELO Buffer overflow. Pada versi 8.9, jika seseorang memberikan perintah
HELO dan diikuti string/karakter lebih dari 1 Kb, atau kurang lebih 855 karakter,
akan menyembunyikan identitas pengirim.
Selain sendmail, banyak bermunculan beberapa Mail Transfer Agent sebagai alternatif.
qmail, Exim dan Postfix merupakan mailer yang banyak digunakan. Bab ini akan
membahas secara singkat, bagaimana mengkonfigurasikan dan menjalankan 2 MTA,
yakni Sendmail dan qmail.
Subsections
• Sendmail
o Menjalankan sendmail sebagai Daemon.
Slackware
SuSE
RedHat
o POP3 di Sendmail
o Administrasi Sendmail
Alias sendmail (sendmail aliases)
Personal Mail Forwarding
o Sendmail.cf
Bagaimana membuat konfigurasi sendmail (sendmail.cf)?
sendmail.cf di SuSE
sendmail.cf di RedHat
• qmail
o Instalasi qmail
o Seting mbox
o Seting Maildir
o Test mengirim e-mail
o Seting Klien Windows 9x atau Windows NT
o Program Tambahan qmail (Add on)
• Ringkasan
Sendmail
Sendmail adalah program yang mengimplementasikan kebutuhan umum fasilitas mail
routing antar jaringan, yang bekerja dibawah sistem UNIX. Sendmail memiliki pilihan
yang sangat banyak dan fleksibel untuk dikonfigurasikan. Sendmail merupakan MTA
yang sangat terkenal, dan terdapat hampir disemua OS unix yang ada saat ini, disusun
berdasarkan :
Pada saat instalasi Linux, sendmail secara otomatis akan terinstall serta dapat difungsikan
untuk mengirim (SMTP) dan membaca e-mail, menyediakan sistem e-mail alias yang
besar dan menangani mailing list.
Subsections
• POP3 di Sendmail
• Administrasi Sendmail
o Alias sendmail (sendmail aliases)
o Personal Mail Forwarding
• Sendmail.cf
o Bagaimana membuat konfigurasi sendmail (sendmail.cf)?
o sendmail.cf di SuSE
o sendmail.cf di RedHat
Untuk dapat menerima dan mengirim e-mail, baik dalam lingkup internet dan intranet,
sendmail harus dijalan pada saat pertama kali komputer dihidupkan (sebagai daemon).
Secara default, Linux akan menjalankannya sebagai daemon.
Subsections
• Slackware
• SuSE
• RedHat
Slackware
if [ -x /usr/sbin/sendmail ]; then
SuSE
Skrip untuk menjalankan, mematikan, mengecek status dan merestart daemon sendmail
di SuSE terletak di /etc/rc.d/init.d/sendmail. Berikut kutipannya :
#! /bin/sh
# reserved.
. /etc/rc.config
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
# Force execution if not called by a runlevel directory.
fi
return=$rc_done
case "$1" in
start)
echo -e "$return"
;;
stop)
echo -e "$return"
;;
restart)
;;
reload)
echo -e "$return"
;;
status)
;;
*)
exit 1
esac
# Inform the caller not only verbosely and set an exit status.
exit 0
# /etc/rc.d/init.d/sendmail status
RedHat
RedHat memiliki skrip yang agak mirip dengan SuSE untuk menadministrasikan daemon
sendmail. Skrip tersebut dapat ditemukan pula di /etc/rc.d/init.d/sendmail.
#!/bin/sh
# sendmail.
#
# chkconfig: 2345 80 30
# program\
# processname: sendmail
# config: /etc/sendmail.cf
# pidfile: /var/run/sendmail.pid
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
if [ -f /etc/sysconfig/sendmail ] ; then
. /etc/sysconfig/sendmail
else
DAEMON=yes
QUEUE=1h
fi
RETVAL=0
case "$1" in
start)
# Start daemons.
if [ -f /etc/mail/$i ] ; then
fi
done
RETVAL=$?
echo
;;
stop)
# Stop daemons.
killproc sendmail
RETVAL=$?
echo
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
status)
status sendmail
RETVAL=$?
;;
*)
exit 1
esac
exit $RETVAL
# /etc/rc.d/init.d/sendmail stop
POP3 di Sendmail
Agar user dapat mengambil e-mail secara remote, maka perlu dipasang POP3 Server.
Dalam hal ini, sendmail tidak mendukungnya, dan untuk dapat menjalankan POP3 harus
menggunakan program tambahan lain. Secara default, jika anda instal pine (klien e-mail)
saat instalasi, maka program tersebut secara otomatis menyertakan ipop3d yang
melayani pengguna di port 110. Tidak ada konfigurasi secara khusus.
Dari sisi user, cukup menunjuk mesin Linux sebagai SMTP server (yang dilayani oleh
sendmail) dan POP3 server (yang dilayani oleh ipop3d). Misalnya untuk klien Outlook
Express, seting untuk servernya bisa lewat Tools - Accounts - Mail - Add - Mail.
Pada bagian E-mail Server Names, cukup isikan nama server Linux, atau alamat IP-nya.
Jika diisi nama server, perlu diperhatikan seting MX Record pada DNS servernya. Untuk
ujicoba memastikan bahwa sistem berjalan baik, isikan terlebih dahulu nomor IP-nya.
Gambar 8
Administrasi Sendmail
Subsections
Biasanya untuk aliases ini disimpan di /etc/aliases yang merupakan file teks. Format
penulisannya yaitu :
# special names
postmaster: root
root: wars
kacang: anda@peanut
tanah: andajuga@walnut
# a mailing list
owner-admin: root
jika ada e-mail yang dikirim kan ke alamat diatas maka akan disampaikan kepada user
yang ada disebelah kanan alias, contoh bila ada e-mail yang ditujukan ke
postmaster@nuts.com akan dikirimkan ke user root dan begitupun dengan alias admin
maka akan dikirim ke user wars, root, anda@peanut dan seterusnya.
Untuk alias ini sendmail tidak langsung mengenal pada saat ada penambahan ataupun
pengurangan data, untuk supaya dapat dikenal maka harus dilakukan perintah
newaliases atau sendmail -bi oleh user root.
Untuk forwarding ini selain dapat dilakukan oleh aliases juga dapat dilakukan dengan
menambahkan file .forward pada direktori user masing-masing dan ini bisa dilakukan
oleh user yang bersangkutan sementara untuk aliases hanya dapat dilakukan oleh
superuser atau root, jadi apabila user ingin memindahkan alamat e-mailnya cukup dengan
membuat personal mail forwarding ini. Contoh user wars akan dipindahkan ke user wars
yang ada di domain domain.com
Wars@domain.com
Apabila ada e-mail untuk user wars@nuts.com akan secara otomatis dikirim lagi ke user
wars@domain.com
Biasanya .forward ini digunakan untuk forwarding sementara. Dan semua konfigurasi
untuk sendmail ini ditentukan oleh file /etc/sendmail.cf.
Sendmail.cf
Seperti telah disebutkan sebelumnya bahwa semua konfigurasi sendmail ini terdapat file
/etc/sendmail.cf yang berisi bermacam-macam konfigurasi yang secara umum dibagi
3 fungsi utama yaitu :
Didalam sendmail.cf ini juga dapat dibentuk beberapa macro, rule untuk
mendefiniskan lingkungan yang akan digunakan sendmail.
Gunakan m4 script untuk memudahkan feature yang ada, contoh file m4 dengan nama
file locallinux.mc :
divert(0)dnl
OSTYPE(linux)dnl
DOMAIN(generic)dnl
FEATURE(always_add_domain)dnl
FEATURE(blacklist_recipients)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Setelah itu jalankan program m4 yang biasanya terletak pada direktori /usr/sbin
Perintah diatas akan membentuk file konfigurasi sendmail, yaitu sendmail.cf setelah itu
pindahkan sendmail.cf ini ke direktori /etc dan lakukan restart sendmail, dengan
menjalankan script yang ada pada direktori /etc/rc.d/rc.init/sendmail restart.
Berikut ini adalah contoh sendmail.cf yang telah ditambahkan beberapa fitur seperti
contoh di atas. Dimana ada fungsi untuk filter e-mail tertentu berdasarkan Header E-mail
Reply-To atau berdasarkan Subject e-mail.
# ####################################################################
# By using this file, you agree to the terms and conditions set
# forth in the LICENSE file which can be found at the top level of
#
######################################################################
######################################################################
#####
#####
##### in /data/source/sendmail-8.9.1/cf/cf
#####
######################################################################
######################################################################
V8/Berkeley
#O DontBlameSendmail=safe
O DontBlameSendmail=GroupWritableDirPathSafe,
forwardfileinunsafedirpath,
GroupWritableAliasFile
##################
# local info #
##################
Cwlocalhost
Fw/etc/sendmail.cw
CGut.astra.co.id
C{DomainMilisBlocking} onelist.com
#Dj$w.Foo.COM
CP.
DS
CO @ % !
C..
FR-o /etc/mail/relay-domains
# who I send unqualified names to (null means deliver locally)
DR
# who gets all local e-mail traffic ($R has precedence for unqualified
names)
DH
# dequoting map
Kdequote dequote
#CL root
#CE root
CEroot postmaster news uucp mailer-daemon rdist nobody daemon pop imap
DM
DnMAILER-DAEMON
CPREDIRECT
# Configuration version number
DZ8.9.1
###############
# Options #
###############
O SevenBitInput=False
O EightBitMode=pass8
#O AliasWait=5m
O AliasFile=/etc/aliases
#O MinFreeBlocks=100
O MaxMessageSize=2097152
# substitution for space (blank) characters
O BlankSub=.
O HoldExpensive=False
#O CheckpointInterval=10
O DeliveryMode=background
#O AutoRebuildAliases
#O ErrorHeader=/etc/sendmail.oE
# error mode
#O ErrorMode=print
#O SaveFromLine
#O MatchGECOS
#O MaxHopCount=17
O HelpFile=/usr/local/lib/sendmail.hf
#O IgnoreDots
#O ResolverOptions=+AAONLY
O SendMimeErrors=True
O
ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
O ConnectionCacheSize=2
# open connection cache timeout
O ConnectionCacheTimeout=5m
#O HostStatusDirectory=.hoststat
#O SingleThreadDelivery
O UseErrorsTo=False
# log level
O LogLevel=9
#O MeToo
O CheckAliases=False
O OldStyleHeaders=True
# privacy flags
O PrivacyOptions=authwarnings
#O PostMasterCopy=Postmaster
#O QueueFactor=600000
# queue directory
O QueueDirectory=/var/spool/mqueue
#O Timeout.initial=5m
#O Timeout.connect=5m
#O Timeout.iconnect=5m
#O Timeout.helo=5m
#O Timeout.mail=10m
#O Timeout.rcpt=1h
#O Timeout.datainit=5m
#O Timeout.datablock=1h
#O Timeout.datafinal=1h
#O Timeout.rset=5m
#O Timeout.quit=2m
#O Timeout.misc=2m
#O Timeout.command=1h
#O Timeout.ident=30s
#O Timeout.fileopen=60s
O Timeout.queuereturn=5d
#O Timeout.queuereturn.normal=5d
#O Timeout.queuereturn.urgent=2d
#O Timeout.queuereturn.non-urgent=7d
O Timeout.queuewarn=4h
#O Timeout.queuewarn.normal=4h
#O Timeout.queuewarn.urgent=1h
#O Timeout.queuewarn.non-urgent=12h
#O Timeout.hoststatus=30m
#O DontPruneRoutes
O SuperSafe=True
# status file
O StatusFile=/etc/mail/sendmail.st
#O TimeZoneSpec=
O DefaultUser=daemon
#O UserDatabaseSpec=/etc/userdb
# fallback MX host
#O FallbackMXhost=fall.back.host.net
#O TryNullMXList
#O QueueLA=8
#O RefuseLA=12
#O MaxDaemonChildren=12
#O RecipientFactor=30000
#O ForkEachJob
#O ClassFactor=1800
#O RetryFactor=90000
#O QueueSortOrder=priority
#O MinQueueAge=30m
#O DefaultCharSet=iso-8859-1
#O ServiceSwitchFile=/etc/service.switch
# hosts file (normally /etc/hosts)
#O HostsFile=/etc/hosts
#O DialDelay=10s
#O NoRecipientAction=add-to-undisclosed
#O SafeFileEnvironment=/arch
#O ColonOkInAddr
#O MaxQueueRunSize=10000
#O DontExpandCnames
O UnixFromLine=From $g $d
# From: lines that have embedded newlines are unwrapped onto one line
#O SingleLineFromHeader=False
# Allow HELO SMTP command that does not include a host name
#O AllowBogusHELO=False
#O MustQuoteChars=.
O OperatorChars=.:%@!/[]+
#O DontInitGroups
#O UnsafeGroupWrites
#O DoubleBounceAddress=postmaster
#O RunAsUser=sendmail
# maximum number of recipients per SMTP envelope
#O MaxRecipientsPerMessage=100
#O DontProbeInterfaces
Opnovrfy
Opnoexpn
###########################
# Message precedences #
###########################
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100
#####################
# Trusted users #
#####################
#Ft/etc/sendmail.ct
Troot
Tdaemon
Tuucp
#########################
# Format of headers #
#########################
H?P?Return-Path: <$g>
$.$b
H?D?Resent-Date: $a
H?D?Date: $a
H?x?Full-Name: $x
# HPosted-Date: $a
# H?l?Received-Date: $b
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>
################################################################
################################################################
HReply-To: $>Check_RplyTo
D{MPat}REJECT
D{MMsg}User unknown
SCheck_RplyTo
R< $+ > $: $1
R$* $: $( milis $1 $)
###############################################################
# berdasarkan subject #
###############################################################
HSubject: $>Check_Subject
D{MPat1}[http://come.to/konyol]
D{MMsg1}User unknown
SCheck_Subject
######################################################################
######################################################################
#####
#####
######################################################################
######################################################################
############################################
############################################
S3
R$@ $@ <@>
# strip group: syntax (not inside angle brackets!) and trailing
semicolon
R$@ $@ :; <@>
R$* $@ $>96 $1
################################################
################################################
S96
##################################################
S4
R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr>
canonical
##############################################################
S97
R$* $: $>3 $1
R$* $@ $>0 $1
######################################
######################################
S0
SParse0
R$* $: <> $1
R<> $* $1
# now delete the local info - note $=O to find characters that cause
forwarding
R$* $=O $* < @ $=w . > $@ $>Parse0 $>3 $1 $2 $3 ...@here -> ...
SParse1
R<@> $+ $: $1
#######################################################################
####
### Ruleset 5 - special rewriting after aliases have been expanded
###
#######################################################################
####
S5
R$+ + $* $#local $@ + $2 $: $1 + *
R$+ $: <> $1
R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user
part
###################################################################
###################################################################
S95
###################################################################
###################################################################
SCanonLocal
# strip trailing dot from any host name that may appear
# handle local: syntax - use old user, either with or without host
###################################################################
###################################################################
S93
R$+ < @ $=G . > $: < $1@$2 > $1 < @ $2 . > @ mark
R$+ < @ *LOCAL* > $: < $1@$j > $1 < @ *LOCAL* > @ mark
###################################################################
###################################################################
S94
###################################################################
###################################################################
S98
R$* < @ $+ .REDIRECT. > < $- > $# error $@ 5.1.1 $: "551 User has
moved; please try " <$1@$2>
######################################################################
###
### Parameters:
######################################################################
SLookUpDomain
###
### Parameters:
######################################################################
SLookUpAddress
######################################################################
###
### Parameters:
###
### Returns:
######################################################################
SParseRecipient
R<?> $* $@ $1
R<$-> $* $@ $2
######################################################################
######################################################################
SLocal_check_relay
Scheck_relay
R$* $: $1 $| $>"Local_check_relay" $1
R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
SBasic_check_relay
R< $* > $* $: $2
######################################################################
######################################################################
SLocal_check_mail
Scheck_mail
R$* $: $1 $| $>"Local_check_mail" $1
R$* $| $* $@ $>"Basic_check_mail" $1
SBasic_check_mail
R< $* > $* $: $2
R<> $@ <OK>
R<$+> $* < @localhost > $: < ? $&{client_name} > <$1> $2 < @localhost >
...remote is not
# check results
R<?> $* $@ <OK>
R<OK> $* $@ <OK>
R<RELAY> $* $@ <RELAY>
######################################################################
######################################################################
SLocal_check_rcpt
Scheck_rcpt
R$* $: $1 $| $>"Local_check_rcpt" $1
R$* $| $* $@ $>"Basic_check_rcpt" $1
SBasic_check_rcpt
R< $* > $* $: $2
R$* $: <?> $1
R<?> $+ < @ $=w > $: <> <USER $1> <FULL $1@$2> <HOST $2> <$1 < @
$2 >>
R<?> $+ < @ $* > $: <> <FULL $1@$2> <HOST $2> <$1 < @ $2 >>
R<> <$*> $: $1
R<OK> <$*> $: $1
R<RELAY> <$*> $: $1
R<RELAY> $* $@ RELAY
R<$*> <$*> $: $2
R$* $: <?> $1
# local user is ok
R<?> $+ $@ OK
R<$+> $* $: $2
R<?> $* $P $: <?> $[ $1 $2 $]
R<$-> $* $: $2
R$@ $@ OK
R$=w $@ OK
R$* $=R $@ OK
R<RELAY> $* $@ RELAY
R<$*> <$*> $: $2
# check IP address
R$* $: $&{client_addr}
R0 $@ OK originated locally
R<$*> <$*> $: $2
######################################################################
######################################################################
#####
##### MAILER DEFINITIONS
#####
######################################################################
######################################################################
##################################################
##################################################
T=DNS/RFC822/X-Unix,
A=mail -r $g -d $u
T=X-Unix,
A=sh -c $u
S10
S20
S30
S40
S50
#####################################
#####################################
T=DNS/RFC822/SMTP,
A=IPC $h
T=DNS/RFC822/SMTP,
A=IPC $h
T=DNS/RFC822/SMTP,
A=IPC $h
T=DNS/RFC822/SMTP,
A=IPC $h
#
S11
R$+ $: $>51
$1 sender/recipient common
S21
R$+ $: $>51
$1 sender/recipient common
#
S31
R$+ $: $>51
$1 sender/recipient common
S51
# do UUCP heuristics; note that these are shared with UUCP mailers
R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP
form
S61
#
S71
R$+ $: $>61 $1
R$+ $: $>93 $1
sendmail.cf di SuSE
Untuk menghasilkan file sendmail.cf di SuSE, bisa dilakukan secara otomatis oleh yast.
Lewat account root, jalankan yast.
# yast
Pilih sesuai dengan kebutuhan anda, dan yast secara otomatis akan membuat file
sendmail.cf yang sederhana, namun dapat langsung difungsikan.
sendmail.cf di RedHat
Untuk RedHat, file konfigurasi sendmail.cf bisa dibuat melalui LinuxConf, pada bagian
Config - Server Task - Sendmail Basic Information. Pilihan yang ada akan
memudahkan anda untuk mengkonfigurasikannya :
• Mail Server
Nama server mail utama. Hal ini bisa terjadi jika dalam satu intranet terdapat
banyak server mail.
• Mail Gateway
Nama server mail yang meneruskan e-mail anda (fasilitas forward). Hal ini
berlaku misalnya pada jaringan dengan satu mail server yang meneruskan semua
e-mail yang keluar (ke Internet)
• Features
• Relay Control
Mengontrol siapa saja yang boleh menggunakan sendmail anda untuk relay.
Nama user yang tidak dimasquerade (lihat pilihan present your system as).
Pilih jika ingin menggunakan program lain untuk mendistribusikan e-mails ecara
lokal. Biarkan kosong dan linuxconf akan melakukan probing, dan memilihkan
program yang cocok untuk mesin linux anda.
Agar dapat di Relay jangan lupa dapftarkan domain mail server yang bersangkutan ke file
/etc/sendmail.cw.
qmail
qmail merupakan pengganti yang lebih modern dari sendmail, disusun oleh Dan
Bernstein. Beberapa situs besar yang menggunakan qmail diantaranya Hotmail (untuk
outgoing mail), USA.net (untuk outgoing e-mail), Yahoo! mail, Network Solutions,
listserv.acsu.buffalo.edu (menggunakan qmail sejak 1996), XOOM.com,
onelist.com (yang tellah merger dengan E-group, perusahaan besar penyedia mailing
list gratis), Red Hat's mailing lists, Hypermart.net, dan FSmail.net.
Subsections
• Instalasi qmail
• Seting mbox
• Seting Maildir
• Test mengirim e-mail
• Seting Klien Windows 9x atau Windows NT
• Program Tambahan qmail (Add on)
Instalasi qmail
Pertama, download terlebih dahulu program qmail dalam bentuk kode sumber (source
code). Daftar server yang menyediakan qmail dapat Anda lihat di
http://www.qmail.org dan dapat Anda pilih mirror yang terdekat. Saat ini mirror di
Indonesia yang masih aktif adalah http://qmail.indosite.co.id.
Catatan :
Binary qmail dalam format RPM (Redhat Package Manager) dapat diperoleh di
ftp://moni.msci.memphis.edu/pub/qmail. Yang akan Anda bahas di sini adalah
instalasi program yang mempunyai format kode sumber (source code)
Setelah download programnya secara lengkap, Anda mulai dengan mengekstrak dari
bentuk zip dan tar ball. Dianjurkan untuk melakukan proses instalasi sebagai root.
Kemudian sebelum instalasi, tentukan terlebih dahulu direktori utama yang menyimpan
program qmail. Secara default adalah /var/qmail. Selain itu, jika server tempat Anda
instalasi sudah menjalankan sendmail sebagai MTA, dianjurkan untuk menyimpan
terlebih dahulu surat-surat yang masih antre untuk dikirim. Atau lebih aman lagi matikan
daemon sendmail.
# mkdir /var/qmail
Langkah selanjutnya, buat qmail user dan grup sebelum instalasi dimulai.
# groupadd nofiles
# groupadd qmail
qmail-1.0.03#./config
Selain perintah config, untuk mengkonfigurasikan qmail dalam mesin Anda, Anda dapat
menjalankan perintah config-fast nama.domain.Anda sebagai alternatif instalasi lebih
singkat.
qmail-1.0.03#./config-fast nama.domain.anda
Nama domain ini akan dipergunakan secara default dalam pengalamatan domain e-
mailnya. Anda bisa bikin sembarang untuk implementasi intranet. Dengan perintah
config-fast nama domain ini, skrip config akan menuliskan nama.domain.anda ke dalam
file control/me, control/local dan control/rcpthosts sehingga qmail secara
default akan menerima e-mail dari nama.domain.anda. Untuk pemberian nama domain
yang resmi (bisa diakses dari luar) harus menggunakan nama domain yang memenuhi
standar (Fully Qualified Domain Name). Konsultasikan dengan ISP atau penyedia jasa
hosting untuk bisa memperoleh nama domain resmi.
Catatan :
Untuk lebih mengenal direktori direktori yang dibuat oleh qmail, Anda dapat membaca
FAQ yang terletak di /var/qmail/doc setelah instalasi selesai.
Selesai menjalankan skrip config bisa dikatakan proses instalasi telah selesai. Namun
sebelum Anda menjalankan qmail ada beberapa hal yang perlu disetup.
Pertama Anda perlu membuat alias. Alias akan menangani e-mail dengan user tidak
dikenal. qmail secara default tidak membundel paketnya untuk mendukung /etc/alias.
Jika Anda ingin menggunakan file tersebut, maka perlu ditambahkan aplikasi pendukung
bernama fast forward. Aplikasi ini bersama aplikasi pendukung lainnya dapat Anda
peroleh di homepage qmail. Untuk mengaktifkan alias, jalankan perintah berikut :
#touch alias/qmail-postmaster
#touch alias/qmail-mailer-daemon
#touch alias/qmail-root
Alias postmaster akan menangani e-mail yang ditujukan kepada postmaster. Alias mailer
daemon akan menangani setiap e-mail yang bounce (tidak bisa diteruskan). Sedangkan
alias root dipergunakan untuk menangani e-mail yang ditujukan kepada root. Anda dapat
menambahkan alias lainnya, seperti qmail-default yang akan menerima setiap e-mail
dengan username yang tidak dikenal.
Langkah berikutnya adalah seting Mailbox. Pada umumnya, Mail Transfer Agent
menggunakan dua format dalam menangani e-mail.
1. Format mbox
E-mail disimpan dalam sebuah file. Setiap kali ada surat masuk atau keluar,
ditambahkan (embed) secara otomatis kedalam file yang bersangkutan. Dengan
demikian ukuran file mbox ini bertambah setiap kali ada penambahan e-mail.
Kelemahan dari format ini, jika di tengah-tengah download e-mail ada gangguan,
maka pada sesi berikutnya Mail User Agent (MUA/Klien e-mail; program untuk
mengirim, mendownload dan membaca e-mail) akan mencoba mengulang lagi
download e-mailnya. Sesi terdahulu yang terputus di tengah jalan dianggap gagal.
Selain itu kemungkinan besar format mbox akan rusak.
2. Format Maildir
Maildir merupakan format yang anti crash, dan lebih reliabel dibandingkan
format mbox. Namun belum banyak MUA (Mail User Agent - klien e-mail) yang
mendukung format maildir ini.
qmail mendukung kedua format tersebut. Anda diberi kebebasan untuk memilihnya,
namun dianjurkan untuk menggunakan format maildir.
Seting mbox
# cd /var/spool/mail
# cp nama_user /home/nama_user/Mailbox
# rm nama_user
# cd /home/nama_user
# ln Mailbox /var/spool/mail/nama_user
Lakukan ini untuk semua user. Seting pada klien Windows 9x atau Windows NT
akan dibahas dalam bagian lain.
Di beberapa program mail, tidak dapat menangani link simbolik. Untuk itu harus
langsung ditujukan ke nama_user/Mailbox daripada /var/spool/mail/nama_user
pada saat chek e-mail. Untuk program procmail misalnya, ganti
SYSTEM_MBOX dalam config.h dan lakukan kompilasi ulang. Pada beberapa
versi terbaru, Anda dapat mendefinisikan MAILSPOOLHOME dalam
src/authenticate.c.
Seting Maildir
Untuk menggunakan format Maildir dalam menangani setiap mail yang masuk ke alamat
Anda, jalankan perintah :
$ maildirmake $HOME/Maildir
Catatan:
Variasi dapat dibuat dengan menerapkan format Maildir pada user tertentu, dan format
mbox pada user lainnya. Penerapan ini cukup ideal, jika anda mempunyai user yang
mengambil e-mail lewat POP3 secara remote dan lokal. Untuk user yang mengambil e-
mail secara remote, diterapkan format maildir, dan yang lokal diterapkan format mbox.
Langkah selanjutnya adalah mengkopi file-file yang berada dalam
/var/qmail/boot/home ke dalam /var/qmail/rc.
# cd /var/qmail/boot/home
# cp * /var/qmail/rc.
Selesai mengkopi, Anda persiapkan untuk test kirim e-mail antar user. Langkah pertama
adalah menjalankan program qmail.
Jika qmail sudah berjalan, maka dalam gile log Anda (biasanya /var/log/messages)
akan memberikan pesan :
$ ps ax | more
Segera setelah Anda jalankan perintah di atas, file log Anda akan mencatat kurang lebih
sebagai berikut :
qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20345 uid 666
Catatan :
53 adalah nomor inode dan 20345 adalah nomor proses. Di komputer Anda mungkin
akan tampak lain. Sedangkan domain.com adalah domain yang Anda konfigurasikan
pada saat instalasi.
Test berikutnya adalah mengirim e-mail kepada user sembarang (tidak terdaftar sebagai
user).
qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20351 uid 666
qmail: info msg 54: bytes 743 from <> qp 20357 uid 666
Segera setelah itu, buka mailbox Anda, maka akan terlihat di situ e-mail yang bounce
(balik lagi).
Jika mesin Linux Anda mempunyai nomor IP resmi dan terdaftar dalam salah satu name
server, maka Anda dapat melakukan seting MX Record. Namun jika server Linux Anda
mengunakan dial-up untuk koneksi ke internet, maka solusinya adalah menggunakan
program tambahan (add on) untuk qmail yang bernama serialmail dan tcp-ucspi.
Silakan lihat di bagian program tambahan qmail.
Selain menjalankan test lewat qmail-inject, Anda dapat mengirim e-mail langsung lewat
smtp qmail.
% telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
helo katro
250 nama.domain.Anda
mail <aku@nama.domain.Anda>
250 ok
rcpt <aku@nama.domain.Anda>
250 ok
data
354 go ahead
Subject: testing
quit
221 nama.domain.Anda
Untuk meyakinkan qmail Anda berjalan dengan baik, lakukan beberapa test terhadap user
langsung menggunakan klien e-mail. Untuk workstation Windows 9x atau NT, klien e-
mailnya harus disetup terlebih dahulu untuk bisa memanfaatkan qmail yang baru saja
berjalan.
Pada klien Outlook Express, buka tools-account-mail. Buat account baru, dengan
aturan :
• Username : isi dengan username yang dipakai untuk login ke mesin linux
• Alamat e-mail : namauser@nama.domain. Anda (ingat saat instalasi qmail
./config-fast nama.domain.Anda)
• Smtp server, isi dengan nomor IP mesin linux Anda
• Pop3 server, sama dengan di atas, isi dengan nomor IP mesin linux.
Selanjutnya, Anda bisa menjalankan beberapa tes untuk saling berkirim satu sama lain
dalam satu jaringan. Untuk MUA yang lain, seperti Eudora, Pegasus, Netscape
Messenger, pada prinsipnya sama. Username, alamat e-mail, smtp server dan pop3 server.
1. serialmail
Program yang mengirimkan E-mail dari Maildir ke SMTP luar. Program ini cocok
jika anda menggunakan koneksi dial up ke Internet.
2. ucspi-tcp
3. daemontools
4. qmailanalog
5. dot-forward
Program yang membaca file .forward yang ada di Sendmail di bawah qmail.
6. fastforward
7. checkpassword
Selain itu banyak program-program bantu lainnya yang dikembangkan oleh sukarelawan
di seluruh dunia. Daftar terakhirnya dapat anda lihat di situs qmail, http://www.qmail.org
atau http://qmail.indosite.co.id untuk mirror di Indonesia.
Ringkasan
Pada bab ini telah dibahas bersama bagaimana mengkonfigurasikan qmail sebagai MTA
server untuk distribusi lokal. Jika Anda berencana menggunakannya sebagai mail server
internet, pastikan untuk mengeset Mail Record pada name server yang punya otorisasi
untuk merawat domain yang Anda miliki.
Selain sendmail dan qmail masih ada exim, dan postfix yang juga banyak dipakai. Jika
anda menangani dan memelihara mail server, usahakan untuk selalu terinformasikan
berita-berita terbaru, terutama tentang bug. Biasanya para pengembang program ini
menginformasikannya lewat mailing list.