Installasi dan konfigurasi server email (qmail) di Linux

Admiral Dasrin
miral@divnet.telkom.co.id
Ver 1.2, 27 September 2000
————————-

1. Pendahuluan
———————

Dokumen ini merupakan langkah yang penulis lakukan saat menginstal
qmail-1.03 beserta beberapa paket/aplikasi pendukung lainnya.
Qmail, (http://pobox.com/~djb/qmail.html) adalah sebuah MTA (Mail Transfer Agent)
yang dibuat oleh Dan Breinstein (DJB), seorang profesor matematika pada
Universitas Illinois Chicago.


Qmail didesain untuk memperbaiki lubang keamanan (security hole) pada
MTA legendaris Unix, Sendmail. Para pendukung qmail menyediakan hadiah
sebesar US $1000 bagi yang berhasil mendobrak sistem keamanan qmail. Oleh
karena tidak ada seorangpun yang berhasil memenangkan hadiah tersebut, maka US
$1000 itu diberikan kepada Free Software Foundation. Pencipta qmail, Dan
Breinstein juga menyediakan hadiah sebesar US $500 bagi yang berhasil menemukan
lubang keamanan pada qmail. Qmail dapat mereplace sepenuhnya Sendmail dengan
beberapa feature-feature tambahan yang lebih baik.

Dokumen ini akan menjelaskan instalasi berikut:
1. qmail sebagai MTA,
2. checkpassword sebagai module authentikasi pada pop3 server,
3. vpopmail sebagai module authentikasi pada pop3 server,
4. ezmlm yang digunakan untuk aplikasi mailing-list,
5. sqwebmail, yaitu interface webmail seperti hotmail,
6. autorespond, seperti answering machine pada sistem telepon,
7. qmailadmin, yaitu interface web untuk melakukan administrasi
email server yang meliputi, edit user, virtualdomain, forwarding,
mailing list dan autorespond.

2. Instalasi Qmail
——————

Persyaratan yang harus dipenuhi untuk menginstal Qmail adalah:
– Sebuah mesin dengan sistem operasi Unix compatible. Qmail tidak
mendukung sistem operasi M$ Windows NT atau Windows 2000. Penulis
melakukan instalasi qmail pada mesin Linux Redhat 6.2.
– Sangat direkomendasikan Anda memiliki sebuah DNS server sebagai tempat
registarsi Mail Exchanger (MX). Jika Anda tidak memilikinya, dapat
dilakukan registrasi gratis pada http://www.dyndns.org.
– Sangat dianjurkan Anda terhubung ke internet secara leased-line. Qmail
dirancang untuk konektivitas jaringan yang baik, jadi jangan Anda gunakan
qmail pada 28,8 kbps dial-up. Untuk koneksi yang agak buruk qmail menyediakan
serialmail.

2.1. Langkah instalasi dan konfigurasi Qmail
——————————————–

Sebelum Anda menginstall qmail, sebaiknya dicatat terlebih dahulu pada
direktori apa saja file-file qmail ditempatkan. Hal ini dilakukan karena qmail
yang akan diinstal adalah dalam format tar.gz. Tidak seperti paket aplikasi
yang datang dalam bentuk rpm, paket dalam format tar.gz tidak
mendokumentasikan letak file-file yang akan diinstal. Pencatatan dapat
dilakukan dengan cara berikut:

– catat semua file yang terinstall pada mesin Anda sebelum menginstal qmail:
# find /* before-qmail
– catat semua file yang terinstall pada mesin Anda setelah menginstal qmail:
# find /* after-qmail
– lihat file-file hasil instalasi qmail:
# diff before-qmail after-qmail qmail-files.

Urutan langkah instalasi dan konfigurasi qmail adalah:

1. Dapatkan paket qmail terkini, pada saat tulisan ini dibuat versi terakhir
adalah qmail-1.03.tar.gz. Paket ini dapat diambil pada
ftp://koobera.math.uic.edu/www/software/qmail-1.03.tar.gz.

2. Dapatkan juga paket pendukung lainnya yaitu:
– ucspi-tcp, yang menyediakan tcpserver sebagai daemon pengganti inetd
pada ftp://koobera.math.uic.edu/www/software/ucspi-tcp-0.88.tar.gz
– daemontools, yang berisi sekumpulan layanan monitoring dan controlling
pada ftp://koobera.math.uic.edu/www/software/daemontools-0.61.tar.gz
– qmail-103.patch, untuk mengkoreksi proses reply DNS yang ilegal seperti
AOL Provider yang tidak menghiraukan RFC.Paket ini dapat diperoleh pada
http://www.ckdhr.com/ckd/qmail-103.patch

3. Copy paket-paket tersebut pada direktori /usr/local/src

4. Unpack paket-paket tersebut:
# cd /usr/local/src
# tar -zxvf qmail-1.03.tar.gz
# tar -zxvf ucspi-tcp-0.88.tar.gz
# tar -zxvf daemontools-0.61.tar.gz

5. Lakukan patch DNS menggunakan file qmail-103.patch:
# patch -p1 /var/run/svscan.pid
echo “.”
;;
stop)
echo -n “Stopping qmail: svscan”
kill `cat /var/run/svscan.pid`
echo -n ” qmail”
svc -dx /var/qmail/supervise/*
echo -n ” logging”
svc -dx /var/qmail/supervise/*/log
echo “.”
;;
stat)
cd /var/qmail/supervise
svstat * */log
;;
doqueue|alrm)
echo “Sending ALRM signal to qmail-send.”
svc -a /var/qmail/supervise/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo “Sending HUP signal to qmail-send.”
svc -h /var/qmail/supervise/qmail-send
;;
pause)
echo “Pausing qmail-send”
svc -p /var/qmail/supervise/qmail-send
echo “Pausing qmail-smtpd”
svc -p /var/qmail/supervise/qmail-smtpd
;;
cont)
echo “Continuing qmail-send”
svc -c /var/qmail/supervise/qmail-send
echo “Continuing qmail-smtpd”
svc -c /var/qmail/supervise/qmail-smtpd
;;
restart)
echo “Restarting qmail:”
echo “* Stopping qmail-smtpd.”
svc -d /var/qmail/supervise/qmail-smtpd
echo “* Sending qmail-send SIGTERM and restarting.”
svc -t /var/qmail/supervise/qmail-send
echo “* Restarting qmail-smtpd.”
svc -u /var/qmail/supervise/qmail-smtpd
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &1

————————————————————————–
Catatan: Jika usaha koneksi ke port 25 gagal atau system remote tidak bisa
mengirim email kepada Anda, maka coba naikkan softlimit menjadi
3000000 atau 4000000
————————————————————————–

19. Buat file /var/qmail/supervise/qmail-smtpd/log/run dengan isi:

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail/smtpd

20. Jadikan ke empat file run tersebut excutable:
# chmod 755 /var/qmail/supervise/qmail-send/run
# chmod 755 /var/qmail/supervise/qmail-send/log/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

21. Setup direktori log:
# mkdir -p /var/log/qmail/smtpd
# chown qmaill /var/log/qmail /var/log/qmail/smtpd

22. Buat qmail startup script executable dan link file tersebut ke direktori
di dalam path Anda:
# chmod 755 /etc/init.d/qmail
# ln -s /etc/rc.d/init.d/qmail /usr/local/sbin

23. Izinkan localhost untuk menginject mail lewat SMTP:
# echo ‘127.:allow,RELAYCLIENT=””‘ /etc/tcp.smtp
Jika Anda menginginkan relay untuk local network Anda, maka tambahkan:
# echo ‘192.168.1.:allow,RELAYCLIENT=””‘ /etc/tcp.smtp
# /usr/local/sbin/qmail cdb

24. Hentikan dan hapus MTA Sendmail yang telah terinstal sebelumnya:
# /etc/rc.d/init.d/sendmail stop
# kill PID-of-Sendmail
# rpm -e –nodeps sendmail
Replace semua /usr/lib/sendmail dengan qmail
# mv /usr/lib/sendmail /usr/lib/sendmail.old # ignore errors
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ignore errors
# chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old # ignore errors
# ln -s /var/qmail/bin/sendmail /usr/lib
# ln -s /var/qmail/bin/sendmail /usr/sbin

25. Buat system alias:
# echo miral /var/qmail/alias/.qmail-root
# echo miral /var/qmail/alias/.qmail-postmaster
# ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
# chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster

26. Jika user yang menjadi anggota qmail adalah user yang terdaftar di
/etc/passwd, maka buat Maildir pada setiap direktori home user yang
bersangkutan:
# /var/qmail/bin/maildirmake ~miral/Maildir
# echo ./Maildir/ ~miral/.qmail
# cd ~miral
# chown -R miral:miral /Maildir
# chown miral:miral .qmail

27. Jika semua user baru yang akan terdaftar pada /etc/passwd juga akan
menjadi anggota qmail, maka buat direktori Maildir pada direktori
/etc/skel
# /var/qmail/bin/maildirmake /etc/skel/Maildir
# echo ./Maildir/ /etc/skel/.qmail

28. Instalasi selesai, jalankan qmail yang baru saja Anda install
# /etc/rc.d/init.d/qmail start
Masukkan command ini pada file /etc/rc.d/rc.local, jika Anda
menginginkan qmail berjalan secara otomatis pada saat komputer Anda
boot.

29. Test hasil instalasi dengan mengikuti langkah yang dijelaskan pada file
/var/qmail/doc/TEST.deliver dan /var/qmail/doc/TEST.receive

3. Instalasi Pop3 Server
————————

Qmail menyertakan sebuah POP3 Server yaitu module qmail-pop3d. Tetapi
module yang merupakan daemon ini tidak terinstal dan terkonfigurasi pada
proses intalasi qmail pada bagian 2 di atas. qmail-pop3d mensupport berbagai
macam authentikasi melalui beberapa module atuhentikasi.

Sebuah qmail-pop3d server memiliki tiga buah module, yaitu:
1. qmaip-popup, untuk mengambil nama user dan password
2. checkpassword, untuk authentikasi nama user dan password. Module ini
terlepas dari paket qmail.
3. qmail-pop3d, yaitu berupa POP daemon

Cara kerja qmail pop3 server: qmail-popup dijalankan melalui inetd atau
tcpserver, menerima koneksi pada port 110, yaitu port Pop3. Jika terjadi
koneksi pada port tersebut, maka qmail-popup menanyakan nama user dan
password. Kemudian module checkpassword (atau module authentikasi
alternatif lainnya) melakukan verifikasi namauser/password dan akhirnya daemon
qmail-pop3d akan aktif jika verifikasi berhasil.

3.1. Instalasi checkpassword
—————————-

Checkpassword melakukan authentikasi terhadap user yang terdapat pada
file /etc/passwd. Jadi user pada pop3 juga merupakan user yang terdaftar pada
system Unix Anda.

1. Dapatkan paket checkpassword terkini. Pada saat tulisan ini dibuat versi
terakhir adalah checkpassword-0.81.tar.gz. Paket ini dapat diambil pada
http://pobox.com/~djb/checkpwd.html.

2. Copy paket tersebut pada direktori /usr/local/src

3. Unpack:
# tar -zxvf checkpassword-0.81.tar.gz

4. Kompilasi:
# make
# make setup check
Hasil instalasi adalah /bin/checkpassword

5. Jalankan pop3 server dengan 2 metode:

a). Dari inetd.conf. Tambahkan baris berikut pada file /etc/inetd.conf
# pop3 stream tcp nowait root /var/qmail/bin/qmail-popup
hostname.domain /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
# kill -HUP PID-of-inetd, untuk merestart inetd.

b). Dari tcpserver. Buat file /etc/rc.d/init.d/pop-start dengan mode 755:
#!/bin/sh
env – PATH=”/var/qmail/bin:/usr/local/bin”
tcpserver -v -R 0 pop3 /var/qmail/bin/qmail-popup hostname.domain
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2&1 |
/var/qmail/bin/splogger pop3d &
Apabila Anda menginginkan pop3 server berjalan secara otomatis pada
saat komputer boot, masukkan baris /etc/rc.d/init.d/pop-start tersebut
di atas pada file /etc/rc.d/rc.local.

6. Test hasil instalasi dengan melakukan telnet localhost pada port 110
# telnet localhost 110

3.2. Instalasi vpopmail
———————–

vpopmail adalah sekumpulan program yang mengotomatisasi proses pembuatan
dan pemeliharaan user pop mail yang tidak berada pada file /etc/passwd.
vpopmail merupakan module authentikasi yang dapat menggantikan checkpassword.
vpopmail menggunakan sebuah user pada /etc/passwd untuk membuat banyak user
virtual pop di bawah direktori ~vpopmail. User yang menjadi anggota pop mail
adalah virtual user yang berada di bawah direktori ~vpopmail tersebut, bukan
user pada file /etc/passwd. Vpopmail juga mampu membuat banyak virtualdomain
pada email server Anda.

Terdapat 2 paket tambahan pada vpopmail, yaitu:
1. qmailadmin, menyediakan interface web untuk melakukan administrasi dan
pemeliharaan user pop, forwards, aliases, mailing list dan autorespond.
2. sqwebmail, merupakan system email berbasis web seperti hotmail yang membaca
langsung dari Maildirs, local, NFS atau NAS dan autoresponders.

vpopmail beserta 2 paket tambahannya dapat diambil pada
http://www.inter7.com/qmail. Semua paket tersebut adalah GPL.

Langkah instalasi vpopmail adalah:

1. Dapatkan paket vpopmail terkini. Pada saat tulisan ini dibuat versi
terakhir adalah vpopmail-4.9.tar.gz. Paket ini dapat diambil di
http://www.inter7.com/vpopmail.

2. Copy paket tersebut pada direktori /usr/local/src

3. Unpack:
# tar -zxvf vpopmail-4.9.tar.gz

4. Lakukan pengecekan ruang HDD Anda, untuk menentukan lokasi vpopmail akan
ditempatkan:
# df

5. Tambahkan user dan group di bawah ini pada system Unix Anda:
# groupadd vchkpw
# useradd -g vchkpw vpopmail
Jika Anda ingin menempatkan direktori vpopmail selain /home/vpopmail:
# useradd -g vchkpw -d /path/tempat/vpopmail/yang/diinginkan vpopmail

6. Buat file ~vpopmail/etc/tcp.smtp
# mkdir ~vpopmail/etc
# echo “127.0.0.:allow,RELAYCLIENT=””” ~vpopmail/etc/tcp.smtp
Jika Anda menginginkan local network dapat merelay smtp tambahkan baris
berikut:
# echo “192.168.1.:allow,RELAYCLIENT=””” ~vpopmail/etc/tcp.smtp

7. Konfigurasi dan instalasi:
# ./configure
Jika Anda ingin menginstall vpopmail dengan authentikasi melalui database
yang disimpan pada mysql, maka lakukan command berikut:
# ./configure –enable-mysql=y
–enable-sqlincdir=/usr/local/mysql/include/mysql
–enable-sqllibdir=/usr/local/mysql/lib/mysql
–enable-hardquota=50000000
–enable-default-domain=your_virtual_domain_name (hanya jika Anda ingin
menjadikan sebuah virtual domain sebagai domain primary/default.
Lihat penjelasan pada langkah 9b di bawah. Opsi ini tidak ada
hubungannya dengan mysql).
Diasumsikan Anda telah menginstall mysql pada direktori
/usr/local/mysql.
Sebelum melakukan konfigurasi, terlebih dahulu edit file vmysql.h.
Ubah nama host, user dan password yang telah diberi izin mengakses
mysql. Biasannya adalah user root (bukan root dari system Unix).
# make
# make install-strip
Apabila Anda akan melakukan rekonfigurasi dan reinstalisasi lakukan
langkah berikut:
# make clean
# rm -rf config.cache
# ./configure (dengan opsi-opsi yang Anda inginkan)
# make
# make install-strip

8. Buat file start-up pop3 pada /etc/rc.d/init.d/pop-start dengan mode 755:
#!/bin/sh
env – PATH=”/var/qmail/bin:/usr/local/bin”
tcpserver -u509 -g509 -H -R 0 pop3
/var/qmail/bin/qmail-popup hostname.domain
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

Ganti u509 dan g509 dengan uid vpopmail dan gid vchkpw. Ubah juga
hostname.domain dengan nama host dan domain Anda.

9. Buat pop user account dengan 2 metode berikut:

a). Tanpa virtual domain
# cd ~vpopmail/bin
# ./vadduser user1
# ./vadduser user2
# …dst, sesuai dengan jumlah user yang akan didaftarkan.
User yang dibuat akan ditempatkan pada direktori ~vpopmail/users.
Perhatikan file /var/qmail/users/assign untuk melihat proses pengarahan
mail yang datang pada user1, user2, dst tersebut.
Pada metode ini domain yang digunakan adalah dari file
/var/qmail/control/locals. Nama user untuk authentikasi user pop
adalah namauser.

b). Dengan virtual domain
# cd ~vpopmail/bin
# ./vadddomain virtual.domain.com
# ./vadduser user1@virtual.domain.com
# ./vadduser user2@virtual.domain.com
# …dst, sesuai jumlah user yang akan didaftarkan.
User ini akan ditempatkan pada direktori
~vpopmail/domains/virtual.domain.com. Perhatikan file
/var/qmail/users/assign untuk melihat proses pengarahan
mail yang datang pada user1, user2, dst tersebut. Pada metode ini nama
user untuk authentikasi user pop adalah namauser%virtual_domain_name.

Anda dianjurkan menggunakan virtual domain, sekalipun Anda akan
memanfaatkan satu domain saja. Apabila virtual domain tersebut ingin
dijadikan primary domain sehingga metode authentikasi seperti tanpa
virtual domain (domain local) yaitu cukup dengan memberikan namauser
(tanpa menambahkan %virtual_domain_name), lakukan langkah berikut:
# rm -f ~vpopmail/users
# ln -s ~vpopmail/domains/virtual_domain_name ~vpopmail/users

Langkah tersebut di atas dapat dilakukan juga dengan menambahkan opsi
–enable-default-domain=your_virtual_domain_name pada ./configure
(langkah 7). Kemudian lakukan pembuatan virtual domain yang akan
dijadikan default dan pembuatan virtual user seperti pada langkah 9b.
Anda tidak perlu lagi menghapus direktori ~vpopmail/users dan membuat
softlink ke direktori ~vpopmail/domains/virtual_domain_name. Metode
authentikasi pada pop server Anda cukup dengan memasukkan nama user
saja tanpa diikuti dengan %virtual_domain_name.

10. Start pop3 server dengan menjalankan file /etc/rc.d/init.d/pop-start
# /etc/rc.d/init.d/pop-start

Apabila Anda menginginkan pop3 server berjalan secara otomatis pada
saat komputer boot, masukkan command /etc/rc.d/init.d/pop-start pada
file /etc/rc.d/rc.local

11. Lakukan pengetesan dengan mengirim mail ke user-user yang telah dibuat
tersebut, dan lihat hasilnya pada port 110 dengan telnet:
# telnet localhost 110

12. Catatan tambahan: untuk administrasi virtual domain dan virtual user

– Menghapus virtual domain
# ~vpopmail/bin/vdeldomain virtual_domain_name

– Megnhapus virtual user
# ~vpopmail/bin/vdeluser namauser@virtual_domain_name (untuk user pada
virtual domain)
# ~vpopmail/bin/vdeluser namauser (untuk user tanpa virtual domain)

– Mengubah password virtual user
# ~vpopmail/bin/vpasswd namauser@virtual_domain_name (untuk user pada
virtual domain)
# ~vpopmail/bin/vpasswd namauser (untuk user tanpa virtual domain)

4. Instalasi mailing-list manager
———————————

Mailing-list manager yang khusus diperuntukkan bagi qmail adalah ezmlm.
Langkah instalasi secara cepat (quick install) dan konfigurasi ezmlm adalah:

1. Dapatkan paket ezmlm dan ezmlm-idx terkini. Pada saat tulisan ini dibuat
versi terakhir adalah ezmlm-0.53.tar.gz dan ezmlm-idx-0.40.tar.gz. Kedua
paket ini dapat diambil pada http://www.ezmlm.org

2. Copy kedua paket tersebut pada direktori /usr/local/src

3. Unpack:
# cd /usr/local/src
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx-0.40.tar.gz

4. Pindahkan semua direktori/usr/local/src/ezmlm-idx-0.40 ke direktori
/usr/local/src/ezmlm-0.53
# mv -f /usr/local/src/ezmlm-idx-0.40/* /usr/local/src/ezmlm-0.53/

5. Lakukan patch
# cd /usr/local/src/ezmlm-0.53
# patch amount of time to consider a message (in seconds)
num – maximum number of messages to allow within time seconds
message – the filename of the message to send
dir – the directoru to hold the log messages

– Isi file .qmail-help di atas menyatakan bahwa:
This will allow up to five messages within about 3 hours.

– Buat sebuah file help_message pada /var/qmail/alias (domain local) atau
pada ~vpopmail/domains/your_virtual_domain (untuk virtual domain), dengan isi sebagai
berikut:

From: Support
Subject: Help Response

This is a response to your help request.

Below is a copy of the message we received.

——–

– Buat sebuah direktori help_autorespond pada pada /var/qmail/alias (domain local)
atau pada ~vpopmail/domains/your_virtual_domain (untuk virtual domain).
Direktori ini digunakan untuk mencatat log dari pesan yang dikirimkan.

– Jangan lupa ubah owhnership semua file dan direktori yang Anda buat
(alias untuk direktori ~alias dan vpopmail:vchkpw untuk direktori virtual domain).

7. Instalasi qmailadmin
~~~~~~~~~~~~~~~~~~~~~~~

Qmailadmin adalah paket/aplikasi yang sangat berguna bagi mail administrator. Aplikasi
ini merupakan sebuah interface web untuk melakukan administrasi terhadap virtual domain, user
dalam virtual domain, email forwarding, autorespond, dan mailing list. Untuk menginstal
qmailadmin, Anda terlebih dahulu telah menginstal vpopmail, ezmlm dan autorespond. Langkah
instalasi yang akan dijelaskan di bawah mengasumsikan bahwa vpopmail yang telah Anda instal
menggunakan opsi enable mysql=y.

Langkah instalasi dan konfigurasi adalah:

1. Dapatkan paket qmailadmin terkini. Pada saat tulisan ini dibuat
versi terakhir adalah qmailadmin-0.35.tar.gz

2. Copy paket tersebut pada direktori /usr/local/src

3. Unpack:
# cd /usr/local/src
# tar -zxvf qmailadmin-0.35.tar.gz

4. Kompilasi dan instalasi
# cd /usr/local/src/qmailadmin-0.35
# make clean
# env LIBS=”-L/usr/local/mysql/lib/mysql -lmysqlclient” ./configure
# make
# make install

5. Jalankan web browser Anda dan buka http://localhost/cgi-bin/qmailadmin

——————————————————————————————–
Selamat mencoba
miral@divnet.telkom.co.id

Similar Posts

Leave a Reply

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