PRAKTIKUM JARINGAN KOMPUTER Modul 5 ( QMail )
Oleh :
Kelompok 2 Galih Maulana Ardi Roy Nugroho
5101100010 5102100022
Asisten : Icuk Hertanto
5101100079
LABORATORIUM ARSITEKTUR DAN JARINGAN KOMPUTER JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2005
Mail Server – Qmail Aplikasi qmail (http://www.qmail.org) adalah salah satu contoh aplikasi untuk server e-mail yang berjalan pada platform Unix/Linux. qmail diciptakan oleh Dan J. Bernstein (http://cr.yp.to/djb.html), seorang profesor departemen matematika, statistik dan ilmu komputer Universitas Illinois, Chicago. Qmail mampu digunakan untuk sebuah server e-mail dari lingkup yang kecil, misalnya untuk jaringan lokal sebuah sekolah atau perusahaan sampai ke server e-mail besar, seperti sebuah ISP yang menampung ribuan account. Instalasi Qmail Debian menyediakan paket qmail-src yang berisi source code qmail yang telah dilengkapi dengan build-script yang memudahkan anda dalam melakukan kompilasinya. Paket source qmail ini juga telah dilengkapi dengan patch QMAILQUEUE yang memungkinkan anda untuk mengubah isi queue sebelum suatu mail dikirimkan. Selain qmail-src itu sendiri, qmail juga membutuhkan ucspi-tcp yang juga disertakan pada Debian Sarge dengan nama paket ucspi-tcp-src. Paket ini bertugas sebagai TCP Server yang mengatur koneksi jaringan yang dilakukan oleh qmail. Instalasi kedua paket di atas dapat dilakukan dengan perintah: root:~# apt-get install ucspi-tcp-src qmail-src Setelah kedua paket di atas terinstall, kita akan melakukan kompilasi yang dimulai dengan ucspi-tcp terlebih dahulu. Setelah terinstall barulah kita dapat menjalankan kompilasi qmail dan menginstallnya. root:~# build-ucspi-tcp Anda akan diminta memasukkan direktori untuk melakukan kompilasi (defaultnya /tmp/ucspi-tcp). Ikuti perintah pada layar, dan setelah selesai anda akan mendapatkan file ucspi-tcp_0.88-9_i386.deb yang dapat langsung anda install. root:~# dpkg -i /tmp/ucspi-tcp/ucspi-tcp_0.88-9_i386.deb Kemudian kita teruskan dengan kompilasi qmail. Sebelum kompilasi dimulai PASTIKAN bahwa komputer yang akan menjadi mailserver telah terdaftar pada DNS, dan segala record seperti MX, A, serta PTR telah terkonfigurasi dengan baik. Kesalahan konfigurasi DNS berakibat pada kegagalan proses instalasi qmail. Qmail tidak dapat langsung diinstall karena pada Debian secara default sudah terinstall exim. Sebelum menginstall qmail hapus dulu paket-paket exim yang telah terinstall. root:~# dpkg -P -–force-all exim4-daemon-light exim4-config exim4 root:~# build-qmail This script unpacks the qmail source into a directory, and compiles it to produce a binary qmail*.deb file. The directory where this is done will end up containing the source and package files for the qmail binary package, along with a directory containing the unpacked source.
2
!* WARNING *! There have been reports of undesired behavior when attempting to build qmail in a directory on a tmpfs based filesystem. Please do not try to build on an tmpfs filesystem. Enter a directory where you would like to do this [/tmp/qmail] dpkg-source: extracting qmail in qmail-1.03 tar: Read 1024 bytes from – dpkg-source: extracting qmail in qmail-1.03 tar: Read 1024 bytes from Binary package qmail will be compiled now If you want to apply a custom patch, switch to another console and do it now The following patches have been applied for you automagically: netscape-progress -Fixes compatibility bug in POP3 daemon pop3-supplementarygroups -Update to checkpasswd to allow multiple groups qmail-link-sync -Filesystem performance patch qmailqueue -Allows use of external qmail-queue programs qregex -Allows use of regular expressions for anti-relay / spam control errno -Fixes glibc compatibility error qmail_local -Fixes memory corruption in certain .qmail files Patches already applied can be found in the patches/ directory where the qmail-src package was extracted. This can take long time, depending on your machine Press ENTER to continue... Setelah proses kompilasi selesai anda akan mendapatkan file /tmp/qmail/qmail_1.0336_i386.deb pada direktori /tmp/qmail. File ini dapat digunakan untuk instalasi qmail di komputer lain (termasuk ucspi-tcp_0.88-9_i386.deb) tanpa perlu melakukan kompilasi dari awal lagi. root:~# dpkg -i /tmp/qmail/qmail_1.03-36_i386.deb Konfigurasi Qmail Bila sebelumnya instalasi qmail tidak dapat menemukan hostname anda, itu berarti entri pada file /etc/resolv.conf harus anda perbaiki agar merujuk pada nameserver yang seharusnya anda gunakan. Qmail membutuhkan domain name yang lengkap sebagai “identitas” dirinya. Masukkan nama server(FQDN) anda ke /var/qmail/control/me. Setelah instalasi selesai jangan lupa untuk memasukkan domain yang akan ditangani pada file /var/qmail/control/rcpthosts. Hal ini ditujukan agar mailserver anda tidak menjadi mail server open relay yang dapat disalahgunakan oleh pihak-pihak yang tidak bertanggugjawab.
3
Selain itu periksa juga apakah sudah terdapat file /var/qmail/control/locals. Bila belum, buat file itu dan masukkan nama-nama domain yang ditangani secara local, non-virtual domain, dan non routed. Untuk mailserver yang sederhana isi file ini sama dengan file /var/qmail/control/rcpthosts. Jangan lupa untuk memeriksa isi file /etc/tcp.smtp untuk menentukan network mana saja yang dapat menggunakan mailserver anda. Secara default, isi dari file ini adalah: 127.0.0.1:allow,RELAYCLIENT="" Anda dapat mengubah isi file itu menjadi: 127.0.0.1:allow,RELAYCLIENT="" [IP Network Anda]:allow,RELAYCLIENT="" :allow Dengan konfigurasi semacam itu maka semua email yang berasal dari localhost dan dari network anda dapat menggunakan mailserver ini untuk mengirim email ke mana saja, sedangkan dari luar kedua network tersebut hanya dapat menggunakan mailserver ini untuk mengirimkan email ke alamat-alamat pada domain yang anda sebutkan pada /var/qmail/control/rcpthosts. Perbedaan dari kedua model perilaku ini ditentukan oleh RELAYCLIENT="". Opsi variabel ini menyebabkan network yang menyandangnya mempunyai hak untuk menggunakan mailserver ini untuk mengirim email ke alamat apa pun (tidak hanya pada yang disebutkan pada /var/qmail/control/rcpthost). Setelah anda mengubah isi /etc/tcp.smtp jangan lupa untuk membangun databasenya dengan menjalankan perintah: root:~# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp Hal terakhir yang kini harus anda lakukan adalah mengubah perilaku penyimpanan qmail untuk menggunakan format Maildir. Qmail hasil kompilasi Debian tidak memerlukan supervise script dan daemontools melainkan mengunakan file /etc/init.d/qmail seperti halnya server lain yang terdapat pada Debian. Untuk itu anda dapat mengubah file tersebut pada bagian alias_empty="|/usr/sbin/qmail-procmail" menjadi alias_empty="./Maildir/". Setting ini kira-kira terdapat pada baris ke-14 dan 15. Setelah itu anda dapat menjalankan(start)/menghentikan(stop) dan merestart qmail dengan perintah: root:~# /etc/init.d/qmail [start|stop|restart] Anda dapat mencoba mailserver baru anda dengan menggunakan telnet seperti yang digambarkan pada potongan program di bawah ini. root:~# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 exp1.its.ac.id ESMTP MAIL FROM:
250 ok RCPT TO: <[email protected]> 250 ok DATA 354 go ahead
4
ketik pesan anda di sini dan setelah selesai akhiri dengan tanda titik (.) . 250 ok [angka aneh] Bila anda mendapatkan jawaban seperti di atas itu berarti mailserver anda sudah berjalan dengan baik. Penyimpanan Email Biasanya, setelah mailserver menerima email untuk suatu domain, mail server kemudian akan menyimpan email tersebut ke mailbox user sehingga dapat dibaca oleh user. Pada awalnya, debian menyimpan semua email pada satu file, yaitu /var/mail/$USER. File ini sendiri hanya dibuka oleh user yang bersangkutan, dan jumlahnya hanya satu. Bila email yang masuk lebih dari satu, maka semua email itu disusun dalam file tersebut dengan pemisah khusus yang berguna untuk membedakan email satu dengan lainnya. Metode penyimpanan ini memungkinkan terjadinya data corrupt saat terjadi kecelakaan, misal: listrik mati mendadak. Untuk mengatasi hal itu qmail(dan MTA modern lainnya) menyediakan metode penyimpanan lain yakni Maildir. Pada format ini tiap email yang masuk disimpan dalam file yang berbeda sehingga kemungkinan terjadinya corrupt menjadi lebih kecil, dan bila terjadi pun tidak akan merusak semua email yang tersimpan. Maildir harus dibuat di dalam HomeDIR user(misal: /home/budi/Maildir/). Ini berarti saat kita membuat user, direktori itu juga harus kita buatkan. Untuk mempermudah dan memperlancar urusan itu kita dapat membuat direktori tersebut di direktori /etc/skel, sehingga saat kita membuat user baru direktori Maildir juga secara otomatis telah berada pada home direktorinya. root:~# cd /etc/skel && maildirmake ./Maildir/ Dalam direktori Maildir terdapat beberapa direktori lagi yaitu cur, new, dan tmp. Direktori cur digunakan untuk menyimpan email yang telah terbaca/difetch oleh client. Direktori new digunakan untuk menyimpan email yang baru diterima, dan direktori tmp digunakan untuk penyimpanan sementara bila diperlukan oleh sistem. Bila ternyata sudah ada user yang masih belum mempunyai direktori Maildir maka root harus membuatkan direktori tersebut untuk user yang bersangkutan. Jangan lupa juga untuk mengganti kepemilikan direktori tersebut agar menjadi milik user yang bersangkutan. Contoh, bila kita membuatkan Maildir untuk user “budi”, langkahlangkah inilah yang harus kita lakukan. root:~# cd /home/budi root:~# maildirmake ./Maildir/ root:~# chown -R budi /home/budi Alternatif lainnya adalah meminta user “budi” untuk melakukan pembuatan Maildir ini sendiri.
5
Layanan POP3 POP3 (Post Office Protocol 3) adalah suatu protokol/bahasa yang memungkinkan kita mendownload email yang tersimpan di mailserver sehingga dapat kita baca saat offline. Kita dapat menggunakan bermacam-macam Mail User Agent seperti Mozilla Thunderbird, Microsoft Outlook, The Bat, Mutt, dan lain-lain. Qmail juga menyertakan server pop3 namun secara default layanan ini tidak aktif. Untuk mengaktifkannya kita harus mengedit file /etc/init.d/qmail, dan menghapus karakter “#” yang menutup beberapa line, yakni sekitar line 58-61 sehingga isinya menjadi seperti ini: sh -c "start-stop-daemon --start --quiet --user root \ --exec /usr/bin/tcpserver ---R -H \ 0 pop-3 /usr/sbin/qmail-popup `hostname`.`dnsdomainname` \ /usr/bin/checkpassword /usr/sbin/qmail-pop3d Maildir &" Selain itu kita juga harus mengaktifkan bagian yang “mematikan” server pop3 yakni line 71 sehingga menjadi seperti ini: start-stop-daemon --user root --stop --quiet --oknodo \ --exec /usr/bin/tcpserver Setelah melakukan perubahan pada startup-script qmail kita harus merestart qmail untuk mengaktifkan konfigurasi yang baru. Untuk mencoba layanan POP3, kita dapat menggunakan telnet ke server pada port 110 seperti contoh di bawah ini. [sokam@aphrodite 12:25 sokam]$ telnet mailserver 110 Trying 202.154.63.7... Connected to pegasus.its.ac.id. Escape character is '^]'. +OK <[email protected]> user kamas +OK pass *********** +OK quit +OK Connection closed by foreign host. Bila anda mendapatkan output seperti di atas berarti layanan POP3 telah berjalan dengan lancar. Kini anda dapat mencoba layanan ini dengan menggunakan mail client.
6
Layanan IMAP IMAP merupakan protokol yang mirip dengan POP3, hanya saja pada metode ini email tidak secara otomatis didownload ke client, namun tetap berada di mailserver dan dapat dibaca secara online. Layanan ini berjalan pada protokol TCP port 143. Mail client yang biasa digunakan untuk membaca email melalui POP3 biasanya juga mendukung penggunaan protokol IMAP. Ada beberapa program seperti Courier IMAP, BINCIMAP, dan sebagainya yang dapat menyediakan jenis layanan ini. Pada contoh di bawah kita akan menggunakan Courier IMAP. root:~# apt-get install courier-imap File konfigurasi Courier IMAP terdapat di /etc/courier/imapd. Untuk menjalankan atau menghentikan daemon imapd kita dapat menggunakan perintah berikut: root:~# /etc/init.d/courier-imap [start | restart | stop] SquirrelMail SquirrelMail pada dasarnya merupakan suatu aplikasi berbasis web yang kita gunakan untuk membaca atau mengirim email. Karena aplikasi ini menggunakan web, maka sebelum menggunakan aplikasi ini kita harus menginstall web server terlebih dahulu. Di sini diasumsikan anda telah sukses menginstall apache. Untuk menggunakan squirrelmail ini ada beberapa program tambahan yang harus diinstall yakni php4 dan php4-imap. Bila sebelumnya anda sudah mengkonfigurasi PHP4 maka anda hanya perlu menginstall php4-imap. root:~# apt-get install squirrelmail php4-imap Setelah instalasi jalankan konfigurasi squirrelmail.
/usr/sbin/squirrelmail-configure
untuk
mengubah
SquirrelMail Configuration : Read: config.php (1.4.0) -------------------------------------------------------------------Main Menu -1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color on S Save data Q Quit Command >>
7
Pada prompt command masukkan “2”, dan kemudian telitilah apakah konfigurasi ini sesuai dengan yang kita inginkan. Bila belum sesuaikan dengan memilih menu konfigurasi yang ada. SquirrelMail Configuration : Read: config.php (1.4.0) ----------------------------------------------------------------Server Settings General ---------1. Domain : trim(implode('', file('/etc/'.(file_exists ('/etc/mailname') ?' mail' : 'host'). 'name'))) 2. Invert Time : false 3. Sendmail or SMTP : SMTP IMAP Settings ------------------4. IMAP Server : localhost 5. IMAP Port : 143 6. Authentication type : login 7. Secure IMAP (TLS) : false 8. Server software : other 9. Delimiter : detect B. Update SMTP Settings : localhost:25 H. Hide IMAP Server Settings R Return to Main Menu C Turn color on S Save data Q Quit Command >>
Dari setting di atas tampak bahwa server IMAP kita adalah “other” sedangkan yang baru kita install adalah courier-IMAP. Kita dapat mengubahnya dengan memasukkan angka “8” pada prompt. Each IMAP server has its own quirks. As much as we tried to stickto standards, it doesn't help much if the IMAP server doesn't follow the same principles. We have made some work-arounds for some of these servers. If you would like to use them, please select your IMAP server. If you do not wish to use these work-arounds, you can set this to "other", and none will be used. cyrus = Cyrus IMAP server uw = University of Washington's IMAP server exchange = Microsoft Exchange IMAP server courier = Courier IMAP server macosx = Mac OS X Mailserver hmailserver = hMailServer other = Not one of the above servers [other]:
8
Masukkan “courier”, kemudian tekan [Enter]. Masukkan “S” untuk menyimpan konfigurasi, dan “Q” untuk keluar dari program konfigurasi squirrelmail. Pada direktori /etc/squirrelmail terdapat file apache.conf yang isinya seperti di bawah ini. Alias /squirrelmail /usr/share/squirrelmail php_flag register_globals off Options Indexes FollowSymLinks DirectoryIndex index.php # access to configtest is limited by default to prevent information leak order deny,allow deny from all allow from 127.0.0.1 Konfigurasi di atas merupakan salah satu cara untuk mengaktifkan squirrelmail sehingga dapat diakses melalui http://alamat.web.server/squirrelmail. Selain cara itu anda juga dapat membuat sebuah virtual-host sendiri untuk squirrelmail. Setelah selesai cobalah membuka alamat yang telah anda tentukan pada konfigurasi apache. Seharusnya anda akan mendapatkan tampilan web yang tidak jauh berbeda dengan gambar di bawah ini. Pada prompt login masukkan username dan password anda. Cobalah untuk mengirim dan membaca email!
9