Halaman

Kamis, 09 Juni 2011

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.

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. # gunzip qmail-1.0.03.tar.gz | tar xvf-

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.
Setelah itu, buat direktori tempat di mana qmail disimpan.
# mkdir /var/qmail

Langkah selanjutnya, buat qmail user dan grup sebelum instalasi dimulai.
# groupadd nofiles

# useradd -g nofiles -d /var/qmail/alias alias

# useradd -g nofiles -d /var/qmail qmaild

# useradd -g nofiles -d /var/qmail qmaill

# useradd -g nofiles -d /var/qmail qmailp

# groupadd qmail

# useradd -g qmail -d /var/qmail qmailq

# useradd -g qmail -d /var/qmail qmailr

# useradd -g qmail -d /var/qmail qmails

Setelah itu kompilasi dapat dijalankan.
qmail-1.0.03#./make setup check

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

#chmod 644 alias/qmail-postmaster

#touch alias/qmail-mailer-daemon

#chmod 644 alias/qmail-mailer-daemon

#touch alias/qmail-root

#chmod 644 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

Sendmail dalam mendistribusikan e-mail secara lokal menggunakan binmail. Secara default, binmail akan mengirimkan mail ke dalam folder/var/spool/mail/nama_user. qmail menggunakan qmail-local untuk distribusi lokal, dan langsung menyimpannya kenama_user/Mailbox. Prosedur untuk menggantikan dari 
/var/spool/mail/nama_user adalah :

 
  1. Pindahkan semua /var/spool/mail/nama_user ke dalam nama_user/Mailbox. Demi keamanan, jalankan dalam proses single mode. Jika server masih dalam keadaan berjalan, berikan pesan broadcast kepada semua user untuk keluar dari jaringan. # init 1       (menuju modus singel user)

    # cd /var/spool/mail

    # cp nama_user /home/nama_user/Mailbox

    # rm nama_user

  2. Kemudian sebagai root buat link simbolik dari nama_user/Mailbox ke dalam /var/spool/mail/nama_user. Lakukan ini untuk semua user. Berikan mode 1777 untuk folder /var/spool/mail untuk menghindarkan penghapusan link secara tidak sengaja. # 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.
    Untuk mengoptimalkan kemampuan klien e-mail membaca e-mail dalam jumlah banyak (yang kadang-kadang menjadi lebih lambat karena membaca link simbolik dari Mailbox), Anda dapat tujukan langsung klien e-mailnya untuk membaca nama_user/Mailbox.
  3. Sebagian besar klien e-mail, masukkan "setenv MAIL $HOME/Mailbox" jika menggunakan shell csh ke dalam .cshrc dan "MAIL=$HOME/Mailbox; export MAIL" jika menggunakan shell bash ke dalam .profile secara umum.
  4. elm: ganti "mailbox" ke "Mailbox" pada baris 388 dari file newmbox.c dan lakukan kompilasi ulang. elm dalam membaca e-mail selalu melihat $MAIL, tapi jika Anda tidak mengganti ini, maka elm akan mengalami masalah saat dua user membaca mail secara simultan.
  5. pine: Masukkan "inbox-path=Mailbox" dalam file pine.conf. Atau jika masing-masing user mempunyai konfigurasi sendiri, minta kepada user untuk mengganti konfigurasi inbox-path-nya.

    Seting Maildir

    Untuk menggunakan format Maildir dalam menangani setiap mail yang masuk ke alamat Anda, jalankan perintah :
    $ maildirmake $HOME/Maildir

    $ echo ./Maildir/ > /.qmail

    Jangan lupa setelah Maildir tambahkan slash sebagaimana dituliskan di atas. Jalankan proses tersebut terhadap setiap user. Untuk MUA (mail client) yang hanya mendukung format mbox, qmail menyertakan program maildir2mbox yang dijalankan bersama wrapper elq dan pineq. Dengan demikian, setiap kali Anda menjalankan pine atau elm, wrapper tersebut akan memanggil program maildir2mbox, sehingga MUA favorit Anda tidak akan bermasalah menggunakan format 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.

Test mengirim e-mail

Selesai mengkopi, Anda persiapkan untuk test kirim e-mail antar user. Langkah pertama adalah menjalankan program qmail.
#csh -cf  '/var/qmail/rc &'

Jika qmail sudah berjalan, maka dalam gile log Anda (biasanya /var/log/messages) akan memberikan pesan :
qmail: status: local 0/10 remote 0/20

Jalankan perintah ps untuk mengetahui program-rogram qmail yang sedang berjalan. Suite qmail yang siap melayani pengiriman mail Anda adalah :
qmail-send, dijalankan oleh qmails;

qmail-lspawn, dijalankan oleh root;

qmail-rspawn, dijalankan oleh qmailr;

and qmail-clean, dijalankan oleh qmailq;

splogger, dijalankan oleh qmaill, untuk mencatat aktivitas qmail ke file log.

$ ps ax | more

(grep hasil ps ax)

Jika semua program qmail sudah berjalan dengan baik, coba kirim e-mail secara lokal. Gantikan aku berikut kepada salah satu username yang terdaftar di mesin Anda (atau username Anda).
$ echo to: aku | /var/qmail/bin/qmail-inject

Segera setelah Anda jalankan perintah di atas, file log Anda akan mencatat kurang lebih sebagai berikut :
qmail: new msg 53

qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20345 uid 666

qmail: starting delivery 1: msg 53 to local aku@domain.com

qmail: status: local 1/10 remote 0/20

qmail: delivery 1: success: did_1+0+0/

qmail: status: local 0/10 remote 0/20

qmail: end msg 53


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). $ echo to: sembarangan | /var/qmail/bin/qmail-inject
Pada file log Anda akan tampak sebagai berikut :
qmail: new msg 53

qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20351 uid 666

qmail: starting delivery 2: msg 53 to local sembarangan@domain.com

qmail: status: local 1/10 remote 0/20

qmail: delivery 2: failure: No_such_address.__#5.1.1_/

qmail: status: local 0/10 remote 0/20

qmail: bounce msg 53 qp 20357

qmail: end msg 53

qmail: new msg 54

qmail: info msg 54: bytes 743 from <> qp 20357 uid 666

qmail: starting delivery 3: msg 54 to local aku@domain.com

qmail: status: local 1/10 remote 0/20

qmail: delivery 3: success: did_1+0+0/

qmail: status: local 0/10 remote 0/20

qmail: end msg 54

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.

Escape character is ']'.

220 domain ESMTP

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

Ngetes doang nehhh.

.

250 ok 812345679 qp 12345

quit

221 nama.domain.Anda

Connection closed by foreign host.

$
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.

Seting Klien Windows 9x atau Windows NT

Klien Windows 9x ataupun Windows NT dapat menggunakan qmail sebagai mail servernya. Seting umum yang harus dilakukan adalah memasukkan nomor IP (atau nama mesin qmail yang terdaftar dalam MX record jika server Anda menjalankan name server) ke dalam konfigurasi smtp dan pop3 server.
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.

Program Tambahan qmail (Add on)


  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 Program tcpserver yang dipergunakan untuk menjalankan qmail (selain lewat inetd).
  3. daemontools Program yang mengadministrasi qmail sebagai daemon. Misalnya menghentikan dan memulai kembali daemon qmail, penambahan fasilitas logging yang lebih komprehensif.
  4. qmailanalog Program yang membantu menganalisa aktivitas qmail. Misalnya berapa banyak e-mail yang didistribusikan? Siapa yang menerima e-mail? Kapan? Apakah e-mail berhasil dikirim? Atau gagal? Apa sebab kegagalannya? Dan sebagainya.
  5. dot-forward Program yang membaca file .forward yang ada di Sendmail di bawah qmail.
  6. fastforward Program yang menangani forwarding di qmail dengan menggunakan database cdb.
  7. checkpassword Program yang memberikan metode pengecekan password sederhana terhadap semua aplikasi yang dijalankan di bawah root.
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.

Tidak ada komentar:

Posting Komentar