Instalasi dan Konfigurasi Qmail
• Qmail-1.03.errno.patch, digunakan sebagai tambahan pada
qmail. •
Qmailqueue.patch, digunakan untuk mengelola antrian mail. •
Tarpit.patch, digunakan untuk delay untuk SMTP. •
Qmail-bouncecontrol-1.03.patch, digunakan untuk mengontrol bounce e-mail yang tidak memiliki alamat jelas.
• Qmail-date-localtime.patch.txt, digunakan untuk mengonversi
waktu setempat. •
Qmail-maildir++.patch, digunakan untuk mendukung sistem direktori, khususnya pembagian quota mail pada domain maupun
quota mail pada tiap user. Untuk menambahkan patch tersebut masuklah terlebih dahulu ke direktori
qmail-1.03 [rootjellyfish src] cd qmail-1.03
Berikut adalah langkah – langkah penambahan patch dan hasil dari perintah – perintah penambahan patch :
[rootjellyfish qmail-1.03] patch ..qmail-1.03.errno.patch Stripping trailing CRs from patch.
patching file cdb_seek.c Stripping trailing CRs from patch.
patching file dns.c Stripping trailing CRs from patch.
patching file error.3 Stripping trailing CRs from patch.
patching file error.h
[rootjellyfish qmail-1.03] patch ..qmailqueue.patch Stripping trailing CRs from patch.
patching file Makefile Stripping trailing CRs from patch.
patching file qmail.c [rootjellyfish qmail-1.03] patch ..tarpit.patch
patching file qmail-smtpd.c
[rootjellyfish qmail-1.03] patch ..qmail-bouncecontrol- 1.03.patch
patching file control.c patching file control.h
patching file qmail-send.c
[rootjellyfish qmail-1.03] patch ..qmail-date- localtime.patch.txt
patching file date822fmt.c
[rootjellyfish qmail-1.03] patch ..qmail-maildir++.patch patching file Makefile
patching file TARGETS patching file maildirflags.c
patching file maildirgetquota.c patching file maildirgetquota.h
patching file maildirmisc.h patching file maildiropen.c
patching file maildirparsequota.c patching file maildirquota.c
patching file maildirquota.h patching file numlib.h
patching file overmaildirquota.c patching file qmail-local.c
patching file qmail-pop3d.c patching file strpidt.c
patching file strtimet.c
Setelah menambahkan patch ke dalam program qmail, tahap selanjutnya adalah melakukn kompilasi.
[rootjellyfish qmail-1.03] make setup check PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Dari perintah make di atas sistem akan melakukan konfigurasi otomatis menuju direktori – direktori masing – masing. Berikut adalah potongan
akhir hasil kompilasi : nroff -man maildir.5 maildir.0
nroff -man mbox.5 mbox.0 nroff -man addresses.5 addresses.0
nroff -man envelopes.5 envelopes.0 nroff -man forgeries.7 forgeries.0
.install .instcheck
Tahap selanjutnya melakukan konfigurasi domain. [rootjellyfish qmail-1.03] .config-fast mail.jelly.co.id
Nama mail.jelly.co.id adalah nama subdomain untuk mail. Biasanya satu domain dibagi menjadi beberapa subdomain, misalnya
www.jelly.co.id mail.jelly.co.id dan lain – lain.
Potongan hail konfigurasi tersebut sebagai berikut : Your fully qualified host name is mail.jellyfish.ac.id.
Putting mail.jellyfish.ac.id into controlme... Putting jellyfish.ac.id into controldefaultdomain...
Putting ac.id into controlplusdomain... Putting mail.jellyfish.ac.id into controllocals...
Putting mail.jellyfish.ac.id into controlrcpthosts... Now qmail will refuse to accept SMTP messages except to
mail.jellyfish.ac.id. Make sure to change rcpthosts if you add hosts to locals or
virtualdomains
3.2.3.b Konfigurasi Setelah melakukan proses instalasi, langkah selanjutnya adalah
melakukan konfigurasi agar qmail yang diinstal tadi dapat berjalan. Langkah – langkah konfigurasi sebagai berikut :
¾ Membuat script yang akan digunakan untuk menjalankan qmail. Script
ini digunakan untuk menjalankan smtp, send, pop3, beserta log-nya. Disarankan untuk mengurangi kegagalan akibat kesalahan penulisan
script yang panjang, sebaiknya script ini didownload pada alamat URL :
www.lifewithqmail.org .
¾
Buat script varqmailrc
[rootjellyfish iwan] vi varqmailrc ¾
Kemudian simpan dan beri izin eksekusi, juga dibuatkan direktori log- nya.
[rootjellyfish iwan] chmod 755 varqmailrc [rootjellyfish iwan] mkdir -p varlogqmail
¾ Selanjutnya menentukan mode penyimpanan mail yang akan
dipergunakan oleh qmail, di sini penulis menggunakan mode penyimpanan Maildir.
[rootjellyfish iwan] echo .Maildir varqmailcontroldefaultdelivery
¾ Langkah berikutnya membuat script yang digunakan untuk
menjalankan qmail setiap kali komputer booting, script ini juga untuk mengontrol proses qmail,
script dibuat di direktori varqmailbinqmailctl.
[rootjellyfish iwan] vi varqmailbinqmailctl ¾
Agar file qmailctl dabat dijalankan, maka script harus dibuat executable.
[rootjellyfish iwan] chmod 755 varqmailbinqmailctl [rootjellyfish iwan] ln –s varqmailbinqmailctl usrbin
¾ Agar qmail dapat berjalan saat system operasi djalankan maka perlu
dibuat link qmailctl. [rootjellyfish iwan] ln -s varqmailbinqmailctl
etcrc.dinit.dqmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc0.dK30qmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc1.dK30qmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc2.dS80qmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc3.dS80qmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc4.dS80qmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc5.dS80qmail [rootjellyfish iwan] ln -s etcrc.dinit.dqmail
etcrc.drc6.dK30qmail
¾ Script supervise
Script supervise merupakan script yang digunakan untuk menjalankan beberapa service pada qmail. Service tersebut adalah smtpd, pop3d,
dan log pada qmail. Sintak untuk membuat direktori qmail di script supervise :
[rootjellyfish iwan] mkdir -p varqmailsuperviseqmail-send [rootjellyfish iwan] mkdir -p varqmailsuperviseqmail-
sendlog [rootjellyfish iwan] mkdir -p varqmailsuperviseqmail-smtpd
[rootjellyfish iwan] mkdir -p varqmailsuperviseqmail- smtpdlog
[rootjellyfish iwan] mkdir varqmailsuperviseqmail-pop3d [rootjellyfish iwan] mkdir varqmailsuperviseqmail-
pop3dlog [rootjellyfish iwan] mkdir varqmailsuperviseqmail-pop3ds
[rootjellyfish iwan] mkdir varqmailsuperviseqmail- pop3dslog
Langkah berikutnya buat script untuk masing – masing direktori yang dibuat di atas.
Sintak untuk membuat script : [rootjellyfish iwan] vi varqmailsuperviseqmail-sendrun
[rootjellyfish iwan] vi varqmailsuperviseqmail-sendlogrun [rootjellyfish iwan] vi varqmailsuperviseqmail-smtpdrun
[rootjellyfish iwan] vi varqmailsuperviseqmail- smtpdlogrun
[rootjellyfish iwan] vi varqmailsuperviseqmail-pop3drun [rootjellyfish iwan] vi varqmailsuperviseqmail-
pop3dlogrun [rootjellyfish iwan] vi varqmailsuperviseqmail-pop3dsrun
[rootjellyfish iwan] vi varqmailsuperviseqmail- pop3dslogrun
Kemudian buat file kontrol concurrencyincoming [rootjellyfish iwan] echo 100
varqmailcontrolconcurrencyincoming [rootjellyfish iwan] cd varqmailcontrol
[rootjellyfish iwan] chmod 644 varqmailcontrolconcurrencyincoming
File dan script yang dibuat harus executable, maka perlu ditambahkan perintah :
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- sendrun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- sendlogrun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- smtpdrun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- smtpdlogrun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- pop3drun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- pop3dlogrun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- pop3dsrun
[rootjellyfish iwan] chmod 755 varqmailsuperviseqmail- pop3dslogrun
Selanjutnya akan dibuat direktori yang akan digunakan untuk loging. [rootjellyfish iwan] mkdir -p varlogqmail
[rootjellyfish iwan] mkdir -p varlogqmailsmtpd [rootjellyfish iwan] mkdir -p varlogqmailpop3d
[rootjellyfish iwan] mkdir -p varlogqmailpop3ds
Kemudian direktori diubah agar dimiliki user qmail. [rootjellyfish iwan] chown qmaill varlogqmail
[rootjellyfish iwan] chown qmaill varlogqmailsmtpd [rootjellyfish iwan] chown qmaill varlogqmailpop3d
[rootjellyfish iwan] chown qmaill varlogqmailpop3ds
Yang terakhir membuat symbolic link dari direktori supervise ke service. Hal ini dilakukan supaya daemontools dapat menjalankan
qmail. [rootjellyfish iwan] ln -s varqmailsuperviseqmail-send
service [rootjellyfish iwan] ln -s varqmailsuperviseqmail-smtpd
service [rootjellyfish iwan] ln -s varqmailsuperviseqmail-pop3d
service [rootjellyfish iwan] ln -s varqmailsuperviseqmail-pop3ds
service
Dari langkah – langkah di atas, qmail akan secara otomatis langsung berjalan. Apabila qmail belum akan dijalankan, lakukan perintah
berikut : [rootjellyfish ] qmailctl stop
Stopping qmail... qmail-smtpd
qmail-send qmail-pop3d
Untuk melakukan test running menggunakan perintah : [rootjellyfish ] qmailctl start
Starting qmail
[rootjellyfish ] qmailctl stat serviceqmail-send: up pid 23786 3 seconds
serviceqmail-sendlog: up pid 23816 1 seconds PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
serviceqmail-smtpd: up pid 23817 1 seconds serviceqmail-smtpdlog: up pid 23820 1 seconds
serviceqmail-pop3d: up pid 23821 1 seconds serviceqmail-pop3dlog: up pid 23824 1 seconds
messages in queue: 0 messages in queue but not yet preprocessed: 0
Keenam proses di atas harus berstatus up lebih dari satu second, jika tidak maka ada beberapa masalah pada instalasi qmail. Instalasi qmail
yang sukses minimal akan menghasilkan empat proses berikut : •
Qmail-send dijalankan user qmails. •
Qmail-clean dijalankan user qmailq. •
Qmail-rspawn dijalankan user qmailr. •
Qmail-lspawn dijalankan user root. Untuk melakukan pengontrolan proses yang menggunakan SMTP,
perlu dibuatkan smtp access control, penambahan access ini mengizinkan localhost untukmelakukan injeksi menggunakan SMTP.
Akses kontrol mengatur IPNetwork mana saja yang menggunakan SMTP ini.
Perlu diperhatikan bahwa penambahan banyak IP akan membahayakan keamanan server itu sendiri karena sangat mungkin dimanfaatkan
pihak luar untuk mengirim e-mail ke server lain tanpa melakukan otentikasi. Proses ini disebut dengan spam.
Perintah untuk mengizinkan alamat 127.0.0.1 yang notabene adalah localhost untuk melakukan open relay SMTP :
[rootjellyfish iwan] echo ‘127.0.0.1:allow,RELAYCLIENT=””’ etctcp.smtp
Perintah untuk mengizinkan IP 192.10.10.0 sampai 192.10.10.255 unuk melakukan open relay SMTP. IP tersebut adalah IP local LAN
. [rootjellyfish iwan] echo
‘192.10.10.:allow,RELAYCLIENT=””’ etctcp.smtp
Me – refresh database SMTP : [rootjellyfish ] qmailctl cdb
Reloaded etctcp.smtp. Untuk mengelola e-mail secara menyeluruh perlu adanya alias
administrator. Alamat e-mail ini digunakan untuk mengirimkan laporan server atas kejadian – kejadian yang ada di server, misalnya
adanya kesalahan penulisan alamat pengiriman, atau ada pengiriman e- mail dari luar namun tidak ada alamat tersebut pada server kita atau
atau dikenal dengan e-mail bouce. [rootjellyfish ] echo iwanjellyfish.co.id
varqmailalias.qmail-mailer-daemon [rootjellyfish ] echo iwanjellyfish.co.id
varqmailalias.qmail-postmaster [rootjellyfish ] echo iwanjellyfish.co.id
varqmailalias.qmail-root
Mengubah hak akses administrator : [rootjellyfish ] chmod 644 varqmailalias.qmail-postmaster
[rootjellyfish ] chmod 644 varqmailalias.qmail-root [rootjellyfish ] chmod 644 varqmailalias.qmail-mailer-
daemon
Mengecek apakah supervise sudah berjalan dengan baik : [rootjellyfish ] ps ax | grep qmail
Hasil dari perintah di atas jika supervise sudah berjalan dengan baik : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17404 ? S 0:00 supervise qmail-send 19975 ? S 0:00 supervise qmail-smtpd
21969 ? S 0:00 supervise qmail-pop3d 23492 ? S 0:00 supervise qmail-pop3ds
13286 pts2 S 0:00 grep qmail