Nama 		: Dodi Maryanto Subhan
NIM		: 13295044
Dosen		: Onno W. Purbo

Instalasi qmail-1.03 untuk FreeBSD versi 3.0

Instalasi qmail pada freebsd tidak sulit, tapi yang perlu diperhatikan adalah langkah-langkah instalasi perlu dilakukan secara berurut dan teliti. Mungkin cara pertama yang ditawarkan yaitu cara manual, akan terasa panjang dan memusingkan, namun cara inilah yang terbaik. Terbaik karena semua langkah dilakukan secara manual tanpa otomatisasi script yang akan membuat lebih mengerti secara detail apa saja yang berubah pada sistem sewaktu instalasi.

Ada cara kedua, yaitu lansung menginstall dari /usr/ports/mail/qmail atau cara lebih mudah dengan pkg_add yaitu utility untuk menambah packages (software yang berdiri di atas sistem) . Namun kedua cara ini tidak menuntaskan semuanya menjadi selesai. Instalasi dengan dua cara di atas akan berhenti pada level tertentu apabila host yang akan diinstall belum dikenali di domain name server. Sehingga diperlukan tambahan setting untuk menuntaskannya. Apabila tidak berpengalaman menginstall sebelumnya maka akan terjadi kebingungan sampai manakah sistem telah menginstall qmail. 

Untuk memulai instalasi , dokumentasi telah tersedia dengan lengkap dan jelas dan ini semua sudah ada dalam paket qmail. Pilihan berbagai jenis sistem dilengkapi pula dalam dokumentasi ini, termasuk sun solaris , bsdi , freebsd, linux ,dan aix. Dipilihnya sistem freebsd karena yang paling mudah didapat, tidak ada faktor lainnya. Konfigurasi MUA (Mail User Agent) seperti pine dan mail yang telah terbiasa bekerja di lingkungan sendmail perlu diubah sedikit.

Untuk menghidupkan fasilitas pop dari qmail, perlu software tambahan yang didapatkan dari tempat yantg sama dengan qmail yaitu paket checkpassword. Proses ini akan dijelaskan kemudian. Berikut ini dijelaskan cara instalasi qmail dari berbagai cara. Untuk mendapatkan informasi yang lebih lengkap tentang qmail dapat diperoleh dari http://www.qmail.org

Cara Pertama , yaitu cara manual :

•	Ambil source dari http://pobox.com/~djb/qmail
Source ini masih berupa file compress yang berekstension tgz. Versi terbaru sampai saat ini adalah versi 1.03 .
•	Extrack file qmail1.03.tar.gz dengan command :
# tar -xvf qmail1.03.tar.gz
      Setelah itu file akan di ekstrak dan disimpan dalam direktori  
/tempat_file_qmail.tgz/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 pw yaitu :
# pw groupadd nofiles
   # pw useradd alias -g nofiles -d /var/qmail/alias -s    
     /nonexistent
   # pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
   # pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
   # pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
   # pw groupadd qmail
   # pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
   # pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
•	Kembali ke direktori dimana source qmail diletakkan. Lalu compile source dengan command :
#  make setup check
•	cd /var/qmail/configure
•	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.
•	Alias yaitu file yang berisikan nama-nama alias yang mengacu kepada nama sesungguhnya. Pada sendmail file ini terdapat pada /etc/aliases. Qmail mempunyai mekanisasi sendiri untuk alias yaitu dengan meletakkan alias-alias pada home direktori alias yaitu /var/qmail/alias. Bentuk alias qmail berbeda dengan sendmail. Sewaktu instalasi minimal harus dibuat 3 buah alias untuk :
•	Mailer-daemon
•	Root
•	Postmaster
Ketiga alias dibuat dengan membuat sebuah file kosong yang bernama :
.qmail-mailer-daemon
.qmail-root
.qmail-postmaster
Hal ini dapat dilakukan dengan command :
# cd ~alias
# touch .qmail-mailer-daemon .qmail-root .qmail-mailer-daemon
Lalu untuk keperluan sistem , dibuat hak untuk ketiga file tersebut dengan mode 644 dengan command :
# chmod 644 ~alias/.qmail*
•	Instalasi yang dilakukan pada sistem yang sedang berjalan dan menyalakan sendmail pada port 25 perlu mengecek terlebih dahulu apakah ada antrian mail. Akan lebih baik apabila sewaktu memulai instalasi, port 25 ditutup terlebih dahulu apabila yakin instalasi qmail ini akan memakan waktu kurang dari 1 jam. Dan akan jauh lebih mudah untuk menginstall pada sistem yang masih baru dan belum banyak mempunyai user.
Apabila kondisi terburuk harus dihadapi yaitu sistem yang sudah stabil dan mempunyai banyak user, bisa dilakukan dengan cara (sebaiknya dilakukan pada mode single, yaitu sistem hanya dapat dipakai oleh 1 orang yaitu root) :
•	Memindahkan /var/mail/nama_user ke /home/nama_user/Mailbox, dengan command :
# mv /var/mail/udin ~udin/Mailbox
•	Membuat link dari masing-masing /var/mail/nama_user ke 
~nama _user/Mailbox
 dengan command :
# ln -s ~udin/Mailbox /var/mail/udin
•	Lalu mengubah mode file supaya tidak bisa terhapus :
# chmod 1777 /var/mail/udin
	Semuanya harus dilakukan untuk setiap user. Hal ini merupakan sebuah hal 
yang sangat melelahkan, kecuali ada script yang dapat melakukannya.
•	Untuk memulai qmail bekerja di bawah inetd maka edit /etc/inetd.conf dengan menambahkan line :
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-en 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. Pada freebsd versi 2.2.7 ke atas, line tersebut sudah ada, hanya tinggal membuka tanda #.
•	File yang menjalankan qmail berupa script sederhana yang dapat dilihat pada /var/qmail/boot. Untuk sistem ini dipilih file home yang akan meletakkan mail baru pada file Mailbox di tiap home direktori user. Untuk melakukan hal itu :
# cp /var/qmail/boot/home /var/qmail/.
Maka file home akan terletak pada /var/qmail
•	Qmail perlu dijalankan setiap kali sistem hidup, oleh karena itu perlu dibuat script yang akan menjalankan qmail. Pada waktu booting, freebsd 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/home.
# ln -s /var/qmail/home qmail.sh
•	Instalasi telah selesai, tinggal mereboot ulang sistem atau dengan merestart inetd dan menjalankan script yang memulai qmail.
# kill -HUP [pid inetd]
# /var/qmail/home &
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 berupa 4 proses qmail yang sedang idle, yaitu :
qmail-send, qmail-lspawn, qmail-rspawn and qmail-clean. 

•	Untuk melakukan testing, ada dua jenis 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 : dodi@students.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 127.0.0.1 25
       Trying 127.0.0.1...
       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 :
# chmod 0 /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
•	Selanjutnya adalah merubah sedikit konfigurasi dari MUA agar dapat bekerja dengan qmail. MUA yang dibahas adalah pine dan mail. Sistem yang sudah terinstall pine akan mempunyai file konfigurasi umum pada direktori /usr/local/etc/pine.conf. Yang perlu ditambahkan pada file ini adalah pada bagian :
   inbox path = Mailbox
   sendmail-path = /var/qmail/bin/qmail-inject
•	Untuk mengubah konfigurasi MUA mail, file konfigurasi yang perlu diedit adalah /etc/mail.conf.  Tambahkan line set sendmail=/var/qmail/bin/date-mail .

Cara kedua, yaitu dengan menggunakan port.

Pada sistem freebsd, terdapat direktori /usr/ports yang berisikan beragam aplikasi yang dapat diinstall pada sistem. Untuk versi 2.2.7 ke atas, port untuk qmail sudah tersedia. Pada dasarnya port menggunakan sekumpulan script untuk menginstall paket software yang diinginkan. Semua yang perlu dilakukan pada instalasi manual tidak perlu lagi, karena sudah ada script yang melakukannya. Instalasi dengan mneggunakan port dilakukan dengan :
# cd /usr/ports/mail/qmail
# make
# make install
Hanya tiga langkah itu yang perlu dilakukan. Langkah make memulai dari pengambilan paket qmail dari sumbernya, lalu membuat direktori /var/qmail serta membuat nama-nama user dan group yang diperlukan. Setelah itu make akan mengkompile paket qmail dan make install akan meletakkannya pada direktori /var/qmail/ .
Biasanya langkah terhenti karena host yang sedang diinstall belum mempunyai nama internet pada domain name server. Langkah yang terhenti ini mengakibatkan /var/qmail/control akan kosong yang berarti qmail tidak mempunyai file konfigurasi sama sekali. Oleh karena itu perlu dilakukan file konfigurasi minimal yaitu file me. Isi file me adalah berupa nama dari host, misalnya gerbang.fmipa.itb.ac.id . Setelah file me ada, maka qmail dapat digunakan untuk deliver dan receive.
Yang tidak dilakukan oleh port adalah :
•	Membuang sendmail
Ini harus dilakukan secara manual mengingat kemungkinan sistem sedang mengadakan delivery menggunakan sendmail. Perlu dicek apakah masih ada antrian, bila ada tunggu sampai selesai.
•	Membuat qmail berada di bawah inetd
Hal ini dilakukan dengan mengedit /etc/inetd.conf dan menambahkan baris seperti yang telah diterangkan pada cara manual.
•	Setting konfigurasi MUA seperti pine dan mail.
Keduanya hanya perlu mengedit file konfigurasi umum yang diletakkan pada /usr/local/etc/pine.conf untuk pine dan /etc/mail.conf untuk mail. Pine secara otomatis akan membuat file .pinerc pada home direktori user pada saat pertama kali user menjalankan pine. Untuk user yang telah menjalankan pine sebelumnya, perlu dihapus dulu agar file konfigurasi .pinerc sehingga yang baru akan secara otomatis dibuatkan dengan konfigurasi yang telah disesuaikan dengan qmail.
•	Terkadang tidak otomatis membuat link pada /usr/local/etc/rc.d/qmail.sh ke /var/qmail/home. Oleh karena itu link ini harus dibuat manual.

Cara ketiga yaitu dengan menggunakan pkg_add.

Pada ftp site freebsd, pada direktori packages-current terdapat packages qmail. Cara termudah untuk menginstallnya adalah dengan /stand/sysinstall. Dengan menggunakan perintah ini, yang perlu dilakukan hanya memilih jenis packages yang akan diinstall dan urusan selanjutnya diotomatisasi oleh sistem. Cara lain adalah dengan mengambil packages secara manual dengan ftp. Lalu gunakan perintah pkg_add. Pkg_add melakukan ekstack dari packages yang dimaksud. Biasanya packages ini sudah dikompile sebelumnya jadi yang lansung disalin ke sistem adalah file binary saja.
Kelemahan dari menggunakan utilitas pkg_add adalha sama seperti menggunakan ports. Konfigurasi qmail akan kosong sama sekali bila host belum terdaftar di domain name server. Bila sudah, konfigurasi secara otomatis akan terbentuk. Yang perlu ditambahkan yaitu dengan mengedit file /etc/inetd.conf seperti pada cara manual dan membuat link dari /usr/local/etc/rc.d/qmail.sh ke /var/qmail/home.

Tips
Untuk memudahkan pekerjaan untuk membuat file Mailbox pada setiap user home direktori, maka yang perlu dilakukan adalah dengan menambahkan file Mailbox kosong ke /usr/share/skel. Setiap kali akan menambah user baru maka secara otomatis semua file yang diletakkan pada /usr/share/skel akan disalin ke home direktory user tersebut.