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

3.2.4 Instalasi Checkpassword Untuk Otentikasi POP3

Checkpassword adalah fasilitas sederhana untuk melakukan pengecekan password untuk semua aplikasi root. Program ini cocok digunakan untuk aplikasi yang menggunakan login, ftpd, dan pop3d. Tool ini mendukung alternative database password, login name yang rahasia, password yang panjang, subaccounts, waktu password, dan fasilitas lainnya. [rootjellyfish checkpassword-0.90] patch -p1 ..checkpassword-0.90.errno.patch patching file error.h Melakukan konfigurasi : [rootjellyfish checkpassword-0.90] make setup check .compile auto_home.c .load install hier.o auto_home.o unix.a byte.a .compile instcheck.c .load instcheck hier.o auto_home.o unix.a byte.a .install .instcheck Sampai di sini proses instalasi qmail dan paket – paket standar yang dibutuhkan telah selesai, qmail sudah dapat digunkan untuk melakukan pengiriman e-mail. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

3.2.5 Pemilihan Format Mailbox

Dalam sebuah Unix Mail Transfer Agent, secara garis besar format pemilihan Mailbox dapat dibagi menjadi dua bagian besar. Masing – masing format memiliki kelebihan dan kekurangan. ¾ Format Mbox Format ini merupakan format mailbox yang paling sering digunakan. Di dalam format Mbox sebuah e-mail disimpan dalam sebuah file besar. Sehingga apabila ada e-mail yang masuk atau e-mail yang keluar, akan ditambahkan di dalam file penyimpan. Dengan demikian, setiap kali ada penambahan e-mail, ukuran file ini akan semakin bertambah besar. Selain hal tersebut di atas, jika file mengalami corrupt, semua pesan yang ada akan rusak. Mail Transfer Agent yang menggunakan format mbox ini, file tersebut biasanya diletakkan dalam varspoolmailusername. Dilihat dari penempatan file-nya, mode seperti ini termasuk dalam jenis Unix Tradotional Mailbox format ini bias any digunkan oleh Sendmail . File mbox yang sudah menerapkan sistem yang lebih modern file tersebut diletakkan di direktori homeusernameMailbox. Format ini paling sering digunakan, di mana bekerja dengan hamper semua Mail Transfer Agent. Kelemahan format mbox ini, jika pada saat download e-mail ada gangguan, pada sesi berikutnya Mail User Agent akan mencoba untuk melakukan download lagi, sesi sebelumnya dianggap mengalami kegagalan. Selain hal tersebut, kemungkinan besar format mbox akan rusak. ¾ Format Maildir Maildir adalah sebuah format Mailbox yang lebih realibel andal dan tahan crash disbanding dengan Mbox, karena tiap pesan diletakkan pada file yang berbeda. Namun masih sedikit Mail User Agent yang mendukung format ini. File pesan e-mail yang masuk maupun keluar diletakkan dalam direktori homeusernameMaildir. Direktori Maildir ini juga memiliki tiga buah subdiorektori, yaitu new, cur, dan tmp. Masing – masing pesan e-mail dipisahkan di dalam salah satu subdirektori tersebut, tergantung pada kondisi status pesan. Direktori new dipergunakan untuk pesan baru yang belum dibaca, cur untuk pesan yang sudah dibaca, sedangkan tmp untuk pesan yang sedang dikirimkan.

3.2.6 Konfigurasi dan Instalasi Virtual Domain

Virtual domain adalah program yang digunakan untuk mengatur domain pada e-mail secara virtual dan user account e-mail tetapi tidak menggunakan proses authentifikasi berdasar file etcpasswd. Dengan menggunakan virtual domain, di dalam satu mesin bisa menangani ribuan bahkan sampai jutaan alamat e-mail. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI