Selasa, 22 November 2011

E-mail

 

1. Pendahuluan

E-mail sudah digunakan orang sejak awal terbentuknya internet pada sekitar tahun 1969 dan merupakan salah satu fasilitas yang ada pada saat  itu. Sesuai dengan perkembangan internet, penggunaan email ini juga semakin membesar Walaupun pada saat ini persentasinya sudah turun karena adanya sebuah fasilitas baru di internet yang dikenal sebagai WWW.  Salah satu alasan kenapa email dipakai orang karena memberikan cara yang mudah dan cepat dalam mengirimkan sebuah informasi. Selain itu email dapat juga informasi yang ukurannya kecil sampai ke file yang ukurannya besar. Pada gambar berikut bagaimana cara   pertukaran email yang menggunakan TCP/IP

 

clip_image001
 

 

 

 

 

 

 

 

 

 


Gambar komponen konseptual sistem email

 

       

Mail server hanya sebuah aplikasi yang berurusan dengan lalu lintas email, dia tidak secara langsung berhubungan dengan user yang akan berkirim.

Dalam pengiriman email, terdapat dua aplikasi yang diperlukan yaitu MTA (Mail Transfer Agent), dan MUA (Mail User Agent). Kerja sama antara MUA dan MTA dapat dianalogikan  seperti agen perjalanan dan perusahaan perjalanan, dimana email merupakan orang yang akan melakukan perjalanan.

 

Secara garis besar MTA (Mail Transfer Agent) adalah sebuah aplikasi untuk mengantarkan email. MTA melakukan fungsi-fungsi sebagai berikut :

q  Pertukaran email menggunakan protokol TCP

q  Menerima email masuk (incoming)

q  Meneruskan email yang akan keluar (outgoing)

q  Mengatur antrian bila ada email masuk, keluar dan yang tertunda pengirimannya

MTA yang umum dipakai adalah sendmail dan qmail untuk di unix serta untuk di Ms Windows menggunakan Mdaemon.

 

Sedangkan MUA (Mail User Agent) adalah aplikasi yang berfungsi sebagai antar muka (interface) antara email (dalam hal ini berhubungan dengan user yang memiliki email tersebut) dengan MTA yang mendukungnya. Ia berfungsi :

q  Menulis email dan membaca email yang masuk.

q  Mengatur konfigurasi email sehingga sesuai dengan MTA yang mendukungnya.

q  Memberikan kenyamanan kepada user dalam menerima dan mengirim email.

Beberapa agen email yang populer saat ini adalah Pine, Eudora, Netscape, Outlook dan Pegasus.

 

Dalam berkomunikasi email menggunakan protocol sendiri yaitu SMTP (Simple Mail Transport Protocol) yang bekerja di port 25. Protokol ini hanya bekerja untuk berkomunikasi dengan server mail remote, tidak untuk server lokal.

 

2. Bagaimana E-mail Terkirim ?

Disini akan dicontohkan bagaimana proses pengiriman email. Kita akan mengirimkan sebuah alamat dan nanti akan kita lihat hubungan SMTPnya. Pada contoh dibawah ini kita akan menganalisa apa yang dikirimkan dan diterima sebuah MTA melalui SMTP. Baris yang dimuali dengan >>> adalah perintah yang dikirimkan oleh client SMTP, dan baris yang dimulai dengan kode balasan 3 digit adalah dari server SMTP. Berikut ini adalah contohnya:

 

Contohà

Untuk mengirimkan sebuah email, hanya ada lima perintah yang digunakan, yaitu: HELO, MAIL,RCPT,DATA, dan QUIT. SMTP ini sangat sederhana prinsip kerjanya. Komunikasi antara server dan client terdiri dari teks-teks   yang mudah dibaca. Mula-mula client menggunakan hubungan TCP ke port 25, dan menunggu kode jawaban 220 dari server yang merupakan ucapan selamat datang ke server tersebut. Jawaban dari server ini harus dimulai dengan FQDN (fully quanlified domain name ) dari server, misal ai3.itb.ac.id.

Selanjutnya clien memperkenalkan diri dengan perintah EHLO atau jika server masih versi lama maka cara memperkenalkan diri dengan perintah HELO. Perintah HELO adalah perintah primitif  yang ada pada SMTP versi awal. Argumen dibelakang perintah tersebut adalah FQDN dari client, misalkan students.ee.itb.ac.id.

Server merespon dengan memberikan identitas dirinya kepada client. Jika komunikasi sudah terbentuk, client dapat mengirimkan lebih dari satu pesan,mengakhiri hubungan, atau meminta server untuk mengirimkan aturan bagi pengirim dan penerima, sehingga pesan dapat mengalir dengan arah yang sebaliknya.

Transaksi email dimulai dengan perintah MAIL, yang menjelaskan siapa pengirim pesan ini. Server selanjutnya mempersiapkan struktur datanya agar dapat menerima pesan baru, dan membalas perintah MAIL dengan kode 250, atau lengkapnya 250 ok. Perintah selanjutnya adalah RCPT dimana perintah ini menjelaskan siapa pemerimanya. Jika penerimanya ada banyak, maka akan ada beberapa perintah RCPT dapat dikeluarkan. Jika sudah server juga harus membalas ke client bagi setiap perintah RCPT dengan mengirimkan respon 250 OK, atau jika ada kesalahan akan dibalas dengan respon 550 No such user here.

Isi pesan dikirim oleh client dengan perintah DATA yang diakhiri dengan mengirimkan satu baris data yang hanya berisi satu  titik. Server merespon dengan mengirimkan pesan 354 start mail input dan menentukan urutan karakter tertentu yang dijadikan sebagai tanda akhir pesan email.

QUIT dikirim terakhir untuk mengakhiri transaksi pengiriman pesan mail. Server merespon dengan mengirimkan pesan 221, yang berarti setuju untuk menghentikan transaksi. Kedua pihak akhirnya menutup hubungan TCP.

 

3. Komponen E-mail

Email terdiri dari tiga buah komponen, yaitu:

Envelope, atau amplop. Ini digunakan oleh MTA untuk pengiriman. Dalam contoh sebelumnya, envelope ditandai dengan dua buah perintah SMTP :

            MAIL from: <riza@students.ee.itb.ac.id>

            RCPT to: <riza@ai3.itb.ac.id>

Header, digunakan oleh user agent. Ada kurang lebih sembilan field header, yaitu: Received, Message-Id, From, Date, Reply-To, X-Phone, X-mailer, To dan Subject. Setiap field header berisi sebuah nama yang diikuti oleh sebuah titik dua (:), dan nilai dari field header tersebut.

Body merupakan isi pesan dari pengirim ke penerima.

 

4. Mail Exchanger (MX)

MX berfungsi sebagai tempat penyimpanan sementara jika sebuah mail server yang sebenarnya lagi down atau mati. Hal ini sangat penting bagi sebuah organisasi yang mempunyai jaringan yang cukup luas dan mempunyai banyak mail server. Untuk supaya anda dapat melakukan hal ini , anda harus mengeset dalam DNS server anda.

 

Contoh setting dalam DNS server adalah sebagai berikut (untuk menambahkan record MX) :

Students.itb.ac.id         IN  A  167.205.22.114

                           IN MX 100 mx1.itb.ac.id.

                           IN MX 50 mx2.itb.ac.id.

                           IN MX 10 students.itb.ac.id.

 

Pada contoh diatas MX record memberikan prioritas tertinggi pada host yang bersangkutan yaitu students.itb.ac.id. Jika pengiriman email gagal karena sesuatu hal maka akan dicoba dikirimkan ke mx2.itb.ac.id yang merupakan mail exchanger dari students.itb.ac.id. Jika dalam pengirimannya gagal lagi maka mail akan dikirimkan ke host mx1.itb.ac.id dimana server ini berfungsi sebagai mail exchanger ke dua dari mesin students.itb.ac.id.

Selang pemilihan preference MX record  biasanya dibuat selisih sepuluh angka. Selisih ini dibuat sedemikian hingga agar bila ada penambahan mail server, kita dapat menambahkan record MX dari yang telah ada sebelumnya.

Sebuah host untuk dapat melihat record MX dari suatu server bisa dengan mengetikkan perintah seperti dibawah ini

            $ host students.itb.ac.id

       students.itb.ac.id has address 167.205.22.114

       students.itb.ac.id mail is handled (pri=10) by students.itb.ac.id

       students.itb.ac.id mail is handled (pri=50) by mx2.itb.ac.id

       students.itb.ac.id mail is handled (pri=100) by mx1.itb.ac.id

 

5. Relay Agent

Fungsi utama dari relay agent adalah untuk mengirimkan email dari user agent. Jadi semua email yang akan dikirimkan ke jaringan luar akan dikirim dulu oleh user agent ke relay agent, dan jika sudah sampai maka selanjutnya adalah menjadi tanggung jawab dari mesin yang berfungsi sebagai relay agent untuk mengirimkan email yang diberikan kepadanya.

 

Karena fungsinya sangat penting bagi pengiriman email, maka dalam sebuah jaringan kita harus mempunyai mesin yang berfungsi sebagai relay agent lebih dari satu (selain mesin mail server utama). Untuk dapat menghemat biaya mungkin fungsinya bisa kita satukan dengan mesin yang berfungsi sebagai MX. Tapi jika traffik mail sudah pada apalagi terdapat mailling list yang banyak sebaiknya kedua fungsi tersebut dipisahkan ke mesin tersendiri.

 

Sebagai administrator anda harus bisa mengatur supaya mesin MX dan relay agent ini tidak disalah gunakan oleh orang lain untuk melakukan hal-hal yang merugikan. Salah satu contohnya jika kita melakukan pengesetan server mail secara asal-asalan dan membolehkan semua orang untuk merelay ke mesin anda, bisa jadi mesin anda nantinya akan digunakan orang untuk membuat SPAM mail. Untuk menghindari hal ini anda harus membuat aturan atau mengeset dalam server anda bahwa host-host yang boleh merelay ke mesin anda adalah host tertentu yang anda kenal atau mungkin khusus untuk host-host yang ada dalam jaringan anda.

 

6. Qmail

Sebuah sistem UNIX biasanya langsung dibundel oleh MTA (Mail Transfer Agent) bernama Sendmail, karena sebenarnya Sendmail adalah mail server paling popular dan paling tua di Internet. Sendmail mempunyai konfigurasi default yang diletakkan pada /etc/sendmail.cf yang dengan konfigurasi tersebut email sudah dapat keluar masuk. Namun dari beberapa pengalaman ternyata Sendmail memiliki banyak kelemahan, antara lain  file sendmail.cf yang berupa teks berukuran besar dan terdiri atas banyak baris dengan kode-kode yang sulit dipelajari. Oleh karenanya sendmail banyak memiliki bug.

Kemudian muncullah MTA bernama Qmail yang dibuat oleh seseorang yang tidak puas atas kinerja dan buggy Sendmail. Qmail dikembangkan sekitar tahun 96 oleh seorang profesor matematika bernama Dan Bernstein.  Qmail dikembangkan karena terdapat banyak bugs yang terdapat di dalam Sendmail. Seperti yang dituliskan dalam home page resmi Qmail di  http://cr.yp.to/~djb/qmail.html , Qmail merupakan pengganti dari Sendmail dan memang dalam instalasi default Qmail ada beberapa hal yang tidak kompatibel dengan Sendmail. Sampai saat ini pemakai Qmail terus berkembang.

 

Qmail tidak merepotkan sewaktu instalasi dan juga mempunyai file konfigurasi yang sederhana yang terdiri atas beberapa file yang diletakkan pada direktori /var/qmail/control. Keunggulan utama Qmail dibandingkan dengan Sendmail adalah masalah keamanan. Berikut alasan bahwa Qmail memiliki keamanan yang lebih baik:

  • Tidak memperlakukan program dan files sebagai alamat

Sendmail melihat program dan files sebagai sebuah alamat. Kelemahan dari hal ini yaitu bila beberapa user tidak diizinkan untuk memakai program atau menulis file (tidak mempunyai hak ) mengakibatkan Sendmail terus menerus mencobanya. Berbeda dengan Qmail yang memperlakukan program sebagai program dan file sebagai file. Qmail bisa disuruh untuk menjalankan program tapi atas nama user tersebut.

  • Sesedikit mungkin menggunakan setuid dan login root

Sendmail ditulis sebagai setuid sehingga menyebabkan banyak eksploit dan bug, sedangkan Qmail mempunyai satu program yang memakai setuid, yaitu qmail-queue. Sendmail dijalankan di bawah user root, hal ini mengakibatkan proteksi sistem terhadap sesuatu kesalahan menjadi tidak berlaku karena rootdapat melakukan semuanya. Hal ini bisa berakibat buruk. Qmail berjalan atas namanya sendiri yang terdiri atas enam user. Sedangkan program Qmail yan berjalan atas nama root adalah qmail-start dan qmail-lspawn.

  • Memisahkan beberapa fungsi menjadi beberapa program independent

Seperti yang telah disebutkan, Qmail terdiri atas enam user yang masig-masing user tersebut menjalankan program yang berbeda. Berbeda dengan Sendmail yang hanya mempunyai sebuah file eksekusi, Qmail memisahkan masing-masing fungsi seperti untuk menangani antrian, menangani deliveri ke host remote, deliveri ke hostloakl dan sebagainya menjadi beberapa program independent. Dan masing-masing program ini berjalan dengan nama yang berbeda, misalnya qmail-send oleh qmaill dan qmail-queue oleh qmailq.

  • Sederhana dan kecil

Qmail dikatakan sederhana dan kecil karena Qmail memisahkan mekanisasi untuk forwarding, aliasing dan mailing-list. Selain itu Qmail hanya mempunyai satu mode pengiriman, yaitu fast+queued. Qmail-send yaitu program untuk mengirimkan mail dipicu oleh adanya antrian baru. Sedangkan Sendmail mempunyai beberapa mode, yaitu slow+queued dan fast+unsafe.

 

Cara kerja Qmail :

Secara grafis inilah cara kerja Qmail :

 

    qmail-smtpd --- qmail-queue --- qmail-send --- qmail-rspawn --- qmail-remote

clip_image002
clip_image003
 

 

 


    qmail-inject                          qmail-clean      qmail-lspawn --- qmail-local

 

 

Setiap email akan masuk ke qmail-queue direktori yang dikerjakan oleh qmail-queue. Qmail-queue mempunyai direktori untuk mengerjakan antrain, yaitu /var/qmail/queue. Qmail-queue akan ada bila ada permintaan yang biasanya digenerate oleh qmail-inject untuk email-lokal, qmail-smtpd untuk message yang diterima lewat SMTP, qmail-local untuk email yang diforward dan qmail-send untuk message yang bouncing.

 

Setiap email diantarkan ke tempat tujuan oleh qmail-send dan bekerja sama dengan qmail-rspawn untuk message remote dan qmail-lspawn untuk email lokal. Qmail-clean juga ikut bekerja dalam proses pengantaran di atas. Keempat program tadi adalah daemon yang terus-menerus idle dalam sistem yang memakai qmail. Antrian didesain untuk bisa tahan crash dengan syarat file sistem yang dipakainya juga harus tahan crash.

 

Setiap email dalam antrian diberikan nomor identifikasi, misalnya 23. Antrian yang diatur qmail-queue dipecah lagi menjadi beberapa direktori yang setiap direktori ada file yang berhubungan  dengan email 23.

mess/23           : email itu sendiri        

todo/23           : amplop yang menyatakan dari mana email datang dan ke mana akan

  diantarkan

intd/23                        : amplop juga namun dalam proses pembuatan oleh qmail-queue

info/23                        : amplop yang menerangkan alamat pengirim, setelah preprocessing

local/23           : amplop lokal yang menerangkan alamat penerima, setelah

  preprocessing

remote/23        : amplop remote yang menerangkan alamat penerima, setelah

  preprocessing

bounce/23        : hasil antrian yang gagal

 

Berikut ini adalah level-level yang terjadi dalam sebuah email. Positif (+) berarti ada, negatif (-) tidak ada dan (?) berarti mungkin ada mungkin tidak.

S1. –mess –intd –todo –info –local –remote –bounce

S2. +mess –intd –todo –info –local –remote -bounce

S3. +mess +intd –todo –info –local –remote -bounce

S4. +mess ?intd +todo ?info ?local ?remote –bounce (queued)

S5. +mess –intd –todo +info ?local ?remote ?bounce (preprocessed)

 

Untuk memasukkan email ke dalam antrian, qmail-queue menciptakan file dalam direktori terpisah, yaitu pid/ dengan nama yang unik. Lalu file sistem memberikan nomor inode. Qmail-queue mencari nomor tersebut, misalnya 23. Pada level ini message 23 mencapai keadaan S1.

 

Lalu qmail-queue mengubah nama pid/apa_saja menjadi mess/23 dan naik ke keadaan S2 dan menulis pesan ke mess/23. Lalu qmail-queue membuat intd/23 dan keadaan berubah ke S3 dan menulis informasi amplop ke intd/23.

 

Pada tahap akhir qmail-queue membuat link baru, yaitu dari intd/23 ke todo/23 dan keadaan naik ke S4. Pada saat ini email sudah sukses memasuki antrian dan untuk selanjutnya qmail menyerahkan pekerjaan ke qmail-send.

 

Setelah email sukses memasuki antrian, maka qmail-send harus memutuskan apakah penerima email ini berada di lokal atau remote. Ketika qmail-send memberitahu adanya file todo/23, maka qmail-send telah mengetahui email 23 telah mencapai level S4. Lalu info/23, local/23 dan remote/23 akan dihapus bila ada. Lalu qmail –send akan membuat ulang info/23 dan mungkin local/23 dan remote/23. Setelah selesai qmail-send akan membuang todo/23 dan leadaan naik ke S5. Pada saat ini email telah selesai pada tahap preprocessed (sebelum diproses).

 

Email pada keadaan S5 diperlakukan dengan menandai setiap alamat di local/23 dan remote/23 sebagai DONE dan NOT DONE.

DONE   : email sukses diantarkan, atau antaran sebelumya menemui kegagalan  permanen. Atau dengan kata lain qmail-send tidak akan mecoba lagi mengantarkan ke alamat tersebut.

NOT DONE :     email yang diantarkan belum sampai ke tujuan  dengan kegagaln sementara. Hal ini menyebabkan qmail-send terus mencoba untuk beberapa saat.

 

Qmail-send akan mencoba mengantarkan email yang NOT DONE pada saat proses tidak terlalu banyak. Bila email telah diantarkan dengan sukses, qmail-send akan memberi tanda DONE. Sedangkan bila antaran menemui kegagalan permanen maka qmail-send akan mengirimkan catatan ke biunce/23 dan email akan diberi tanda DONE.

Qmail-send menangani email bnounce setiap saat dengan membuat pesan bounce ke bounce/23 dan mess/23 dan meneruskan ke qmail-inject. Setelah selesai maka bounce/23 akan dihapus.

Ketika semua alamat di local/23 ditandai DONE, maka qmail-send akan menghapusnya, begitu pula untuk remote/23. Ketika local/23 dan remote dihapus, maka qmail-send akan menghapus email dari antrian dengan menghapus bounce/23 , info/23 dan secara berangsur-angsur keadaan untuk message 23 akan berubah ke S2 dan S1.

 

Bila komputer crash sewaktu qmail-queue mencoba membuat antrian untuk sebuah email, maka email akan ditingallkan dalam keadaan S atau S3. Lalu ketika sistem memulai lagi, qmail-send akan melihat sebuah email dalam keadaan S2dan S3 yang lebih dari 36 jam, maka mess/23 akan dihapus. Sama halnya seperti qmail-send melihat file dalam pid/ yang lebih dari 36 jam, maka akan dihapus. Pembersihan tidak perlu dilakukan apabila qmail-send sedang dalam tahap pengantaran. Kemungkinan terburuk email akan terkirimkan dua kali.

 

Sama halnya dengan bila komputer crash hanya  beberapa saat sebelum qmail-send memberikan tanda DONE kepada sebuah email, maka pada tahap berikutnya setelah selesai dari crash, qmail-send akan mengatasi email yang NOT DONE. Padahal email sudah terkirim, hanya tandanya saja yang NOT DONE.

 

7. Instalasi Qmail

Untuk mendapatkan informasi yang lebih lengkap tentang qmail dapat diperoleh dari http://www.qmail.org

 

Berikut langkah-langkah instalasi Qmail secara manual:

  • Ambil source dari situs yang menyediakan. Source ini masih berupa file compress yang berekstension tar.gz. Versi terbaru sampai saat ini adalah versi 1.03 .

Kemudian taruh source di direktori tertentu misalnya /tmp.

  • Extrack file qmail-1.03.tar.gz dengan command :

# tar zxvf qmail-1.03.tar.gz

            Setelah itu file akan di ekstrak dan disimpan dalam direktori 

/tmp/qmail-1.03

·         Buatlah direktori /var/qmail dengan command :

# mkdir /var/qmail

  • buat user dan group :

group    : nofiles dan qmail

user      : qmaill, qmails, qmaild, qmailr

Untuk membuatnya sudah ada perintahnya seperti yang ada pada dokumentasi yaitu dengan command  :

# groupadd nofiles

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

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

       # useradd qmaill -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

·         Kembali ke direktori dimana source qmail diletakkan. Lalu compile source dengan command :

# make setup check

  • Lakukan perintah untuk mensetup file konfigurasi qmail dengan command :

# ./config

Atau dengan command minimal yang menyatakan nama internet host:

# ./ config-fast nama-host.domain.anda

 

  • Setelah perintah di atas, file configurasi yang tercipta diletakkan pada direktori /var/qmail/control. Dapat dilihat terdapat beberapa file konfigurasi : me, rcpthosts, locals dan yang lainnya, sedangkan yang minimal harus ada adalah file  me  yang menyatakan nama internet host tersebut.
  • Dengan perintah config-fast nama domain ini, script 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.
  • Sebelum menjalankan qmail, ada beberapa hal yang perlu disetup:

Pertama membuat alias yang akan menangani e-mail dengan user tidak dikenal, untuk mengaktifkan alias, jalankan perintah berikut ini :

# 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

 

  • Kemudian seting Mailbox, umumnya MTA menggunakan dua format dalam menangani e-mail, yakni format mbox, dan format maildir. Format mbox akan menyimpan email dalam sebuah file yang akan menambahkan mail secara otomatis ke dalam file yang bersangkutan. Sedangkan format maildir merupakan format yang anti crash dan lebih reiable dibanding format mbox.

 

8. Setting mbox               

Sendmail dalam mendistribusikan e-mail secara lokal  menggunakan binmail yang secara default akan mengirimkan mail ke folder /var/spool/mail/nama_user  menggunakan qmail-local  dan menyimpannya ke folder ~nama_user/Mailbox.

  • Pindahkan /var/spool/mail/nama_user ke ~nama-user/Mailbox ;

# cd /var/spool/mail

# cp nama_user /home/nama_user/Mailbox

# rm nama_user

 

  • Buat link simbolik dari ~nama_user/Mailbox ke /var/spool/mail/nama_user :

# cd /home/nama_user

# ln –s Mailbox /var/spool/mail/nama_user

 

 

9. Konfigurasi dan Test Qmail                                         

 

  • Untuk menjalankan script qmail dapat dijalankan program qmail sbb:

# csh –cf ‘/var/qmail/rc &’

·         Jika qmail sudah berjalan, maka dalam file log (umumnya /var/log/maillog) akan memberikan pesan :

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

·         Untuk mengetahui program-program qmail yang sedang berjalan, lakukan perintah :

# ps ax |grep qmail

Maka akan tampak daemon qmail yang sedang idle yaitu :

Qmail-send, dijalankan oleh qmails;

Qmail-lspawn, dijalankan oleh root;

Qmail-rspawn, dijalankan oleh qmailr;

Qmail-clean, ijalankan oleh qmailq;

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

  • Untuk testing qmail maka dijalankan perintah pengiriman qmail untuk diri sendiri :

# echo to: aku |  /var/qmail/bin/qmail-inject

 

  • File log akan mencatat kurang lebih sbb:

qmail: new msg 53

qmail: info msg 53: bytes 246 from wahid@salman.itb.ac.id .qp20345 uid 666

qmail: starting delivery 2: msg 53 to local    nama_user@salman.itb.ac.id

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

 

  • Kemudian tes pengiriman mail ke user sembarang :

# echo to: nama_user | /var/qmail/bin/qmail-inject

 

  • Pada file log akan tampak sebagai berikut :

qmail: new msg 53

qmail: info msg 53: bytes 246 from wahid@attaubah.salman.itb.ac.id  qp 20351 uid 666

qmail: starting delivery 2: msg 53 to local nama_user@salman.itb.ac.id

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

qmail: new msg 54

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

qmail: starting delivery 3: msg 54 to local wahid@salman.itb.ac.id

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

Maka setelah anda membuka mailbox akan terdapat mail yang balik lagi.

 

  • Selain lewat test qmail-inject, anda dapat langsung lewat smtp qmail.

# telnet 167.205.206.101

Trying 167.205.206.101…

Connected to 167.205.206.101.

Escape character is ‘^]’.

Mail wahid@salman.itb.ac.id

250 ok

data

354 go ahead

subject : tes

tes

 

·         Untuk memulai qmail bekerja di bawah inetd maka edit /etc/inetd.conf dengan menambahkan line :

smtp   stream   tcp   nowait   qmaild   /var/qmail/bin/tcp-env    tcp-env /var/qmail/bin/qmail-smtpd

Semua line diletakkan dalam satu baris, maksudnya walaupun baris sudah tidak  cukup, teruskan saja tanpa menekan tombol enter.

·         Qmail perlu dijalankan setiap kali sistem hidup, oleh karena itu perlu dibuat script yang akan menjalankan qmail secara otomatis. Pada waktu booting, sistem akan membaca direktori /usr/local/etc/rc.d/ . Maka perlu dibuat link dari direktori ini ke file script yang menjalankan qmail yang terletak pada  /var/qmail/boot

# cd /usr/local/etc/rc.d

# ln -s /var/qmail/boot/binm1 qmail.sh

# chmod +x qmail.sh

 

·         Instalasi telah selesai, tinggal mereboot ulang sistem atau dengan merestart inetd dan menjalankan script yang memulai qmail.

# kill -HUP [pid inetd]

# /usr/local/etc/rc.d/qmail.sh

 

·         Lalu perlu di check apakah proses qmail sudah berjalan. Hal ini dilakukan dengan command :

# ps ax |grep qmail

Bila proses qmail sudah berjalan, maka akan keluar out put bila dilakukan ps ax berupa 4 proses qmail yang sedang idle, yaitu :

qmail-send, qmail-lspawn, qmail-rspawn and qmail-clean.

 

Untuk melakukan testing, ada dua jenis tes yang perlu dilakukan yaitu delivery  dan receive. Dalam test ini, proses sendmail masih bisa berjalan dan test tidak akan mengganggunya.

  • Untuk test yang pertama  dapat dilakukan dengan mengrimkan mail kepada user yang bernama udin :                          

# echo to: udin | /var/qmail/bin/qmail-inject

 

·         Lalu lihat apa yang telah dicatat syslogd (syslogd adalah sebuah daemon yang melakukan logging terhadap sistem) dengan cara :

# tail -f /var/log/maillog

 

Maka akan terlihat output berupa proses kerja qmail untuk menyampaikan message.

·         Untuk test selanjutnya dilakukan pengiriman ke remote host

# echo to : logic@unit.salman.itb.ac.id  | /var/qmail/bin/qmail-inject

·         Lalu kembali lakukan checking pada syslogd seperti di atas. Untuk melakukan testing receive dapat dilakukan dari host lain dengan mengirimkan mail ke host yang sedang di test. Pada level ini, apabila semua test berhasil maka sendmail boleh dimatikan prosesnya dengan :

# kill -9 [pid sendmail]

 

  • Untuk melihat apakah qmail sudah bekerja pada port 25, maka dilakukan :

# telnet 167.205.206.97

            Trying 167.205.206.97

       Connected to 127.0.0.1.

       Escape character is '^]'.

       220 domain ESMTP

       helo udin

       250 domain

       mail <udin@nama-host.domain.anda>

       250 ok

       rcpt <udin@nama-host.domain.anda>

       250 ok

       data

       354 go ahead

       Subject: test

       Ini cuma test.

       .

       250 ok 812345679 qp 12345

       quit

       221 domain

   Connection closed by foreign host.

 

·         Setelah semua test dilakukan dan berhasil, maka perlu dilakukan pembuangan sendmail. Hal ini harus dilakukan agar user tidak dapat menggunakan sendmail untuk mengirimkan mail. Untuk itu dilakukan :

# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak

# chmod 0 /usr/sbin/sendmail.bak

 

·         Dan buat link untuk menghubungkan sendmail dengan "sendmail" kepunyaan qmail. Hal ini dibutuhkan agar sistem tetap mengenali sendmail.

# ln -s /var/qmail/bin/sendmail     /usr/sbin/sendmail

 

·         Dan edit file /etc/rc.conf untuk tidak memulai sendmail pada waktu booting, yaitu pada line :

sendmail=YES  diubah menjadi sendmail=NO

 

·         Untuk mengubah konfigurasi MUA mail, file konfigurasi yang perlu diedit adalah /etc/mail.conf. 

·         Tambahkan line set sendmail=/var/qmail/bin/date-mail .

·         Setelah semua selesai, ada baiknya system dibooting ulang.

·         Lakukan test dan selama itu amati terus logging di /var/log/maillog dengan perintah:

#tail -f /var/log/maillog

 

 

10. Memilih Script Qmail

Untuk memulai qmail diperlukan sebuah script. Ada beberapa pilihan yang dapat dilihat pada /var/qmail/boot. Secara garis besar pilihan tersebut dibedakan menjadi:

  • Format mail Mailbox ke masing-masing home direktori
  • Format mail Binmail seperti layaknya pada sendmail yang meletakkan di /var/mail/nama_user .
  • Format mail Maildir. Ini merupakan format mail yang terbaru dan baru ada pada saat pembuatan Qmail. Selain Qmial , Postfix juga sudah support. Format ini mempunyai keunggulan tahan terhadap crash, karena masing-masing mail dituliskan pada file yang berbeda.

 

Ketiga pilihan diatas harus dipertimbangkan secara matang. Berikut ini dijelaskan pertimbangan untuk memilih salah satunya.

  • Apabila instalasi qmail dilakukan berbarengan dengan instalasi Linux lebih baik dipilih mode Maildir. Sampai saat ini Mail User Agent (MUA) yang bisa membaca format Maildir baru Mutt dan Mew. Walau pun begitu user masih bisa membaca melalui mode pop.
  • Apabila system telah lama ada serta telah mempunyai user yang banyak, lebih baik dipilih mode Binmail. Hal ini agar memudahkan penyesuaian dari sendmail ke qmail. Ini adalah rekomendasi utama.
  • Setelah dicoba, Mutt ternyata masih terlalu sulit untuk digunakan maka dipilih mode Mailbox. Dengan mode Mailbox, Pine bisa digunakan.

 

11. Mailing List Server

 

Untuk mengatur sebuah mailing-list diperlukan suatu aplikasi sederhana yang mudah diimplementasikan. Selain itu diperlukan juga sebuah aplikasi untuk mengotomasikan hal-hal yang berhubungan dengan mailling-list, yaitu :

·         Menambahkan anggota baru

·         Mengurangi anggota

·         Memberikan informasi tentang subjek pembicaraan mailling-list.

·         Mengarsipkan mail-mail yang datang ke sebuah mailling-list

·         Memberitahu kepada owner bahwa ada alamat yang sudah tidak hidup lagi

·         Untuk mailling-list tertutup, aplikasi ini dapat memberitahukan bahwa ada orang yang meminta untuk menjadi anggota dan meminta persetujuan kepada owner mailling-list yang bersangkutan.

·         Menambahkan header atau pun footer pada mail yang masuk.

Salah satu mailing list server yang memiliki kemampuan tersebut adalah EZMLM (www.ezmlm.org). Selain itu ia juga masih memiliki hubungan saudara dengan qmail (pembuatnya sama), sehingga ezmlm hanya akan berjalan di qmail dan tidak di MTA yang lain

12. Instalasi ezmlm

Berikut  adalah tahapan-tahapan  instalasi ezmlm secara manual :

  • Ambil paket aplikasi ezmlm yang dibutuhkan pada ftpserver yang tersedia, misal ftp://unit.salman.itb.ac.id  dalam bentuk file ezmlm-0.53.tar.gz dan ezmlm-idx-0.40.tar.gz
  • Ekstrak file sbb:

# tar zxvpf ezmlm-0.53.tar.gz

# tar xxvpf ezmlm-idx-0.40.tar.gz

 

  • Masuk ke file ezmlm-0.53 :

#cd ezmlm-0.53

 

  • Kompilasi :

# make

# make man

# make setup

 

  • Setelah proses kompilasi selesai, file-file binary ezmlm diletakkan pada direktori /usr/ocal/bin/ezmlm.

File-file tersebut :

Ezmlm-make                 >  membuat mailling-list

Ezmlm-sub                    >  memasukkan anggota baru

Ezmlm-unsub                >  menghapus anggota

Ezmlm-manage              >  mengatur kerja ezmlm

Ezmlm-reject                >  menolak  mail masuk

  • Setelah itu anda pindahkan arsip dalam direktori ezmlm-idx ke direktori ezmlm-0.53 untuk di patch.

# mv ../ezmlm-idx-0.40/* ../ezmlm-0.53/

 

  • Kemudian  patch ezmlm-0.53

# patch < idx.patch

 

  • Kompile program dan man pages-nya

# make clean

# make; make man

 

·         Tambahkan PATH untuk mengakses binary command dengan mengedit file /root/.bashrc :

# vi /root/.bashrc

Tambahkan :
PATH = “$PATH:/usr/local/bin/ezmlm”

export PATH

 

13. Testing ezmlm

Pada tahap ini tidak perlu memakai login root, namun untuk memudahkan perlu memakai user yang bernama alias. Alias ini adalah nama user yang tercipta sewaktu menginstall qmail. Untuk membuat shell dan password alias, dilakukan dengan  :

# passwd alias

 

  • Pengujian menggunakan login alias :

$ login alias

Password : *****

      

  • Masuk direktori tempat file-file binary ezmlm :

$ cd /usr/local/bin/ezmlm

 

  • Buat mailling test, dengan cara :

$ ./ezmlm-make ~alias/test   ~alias/.qmail-test test salman.itb.ac.id

 

  • Masukkan alamat email sebagai anggota mailling-list test

$ ./ezmlm-sub ~alias/test wahid@salman.itb.ac.id

 

  • Tes pengiriman email ke mailling-list :

$ echo subject : test |qmail-inject test@salman.itb.ac.id

atau

$ mail test@salman.itb.ac.id     

subject : tes

Ini lagi ngetes lho…..

 

Lihat pada mailbox apakah ada mail yang masuk atau lihat pada file logging  /var/log/maillog sbb :

$ tail -f /var/log/maillog

      

Selain perintah – perintah di atas terdapat options-options khusus dalam membuat dan mengelola mailing list server ezmlm ini. Untuk lebih jelasnya bisa dipelajari di manual ezmlm-nya.

 

 

 

Tidak ada komentar:

Posting Komentar