Gentoo Logo

Disclaimer : Dokumen ini masih berupa rancangan dan belum dapat dianggap sebagai dokumen resmi.


Panduan Virtual Mail Hosting System dengan netqmail/vpopmail

Daftar Isi:

1.  Pendahuluan

Jika anda ingin menyediakan e-mail hanya untuk daemon sisem, server tunggal, sebuah domain, atau untuk banyak domain virtual, netqmail dapat dipersiapkan dengan mudah untuk menyediakan kebutuhan anda. Panduan ini akan membantu anda mempersiapkan netqmail untuk semua skenario dengan berfokus pada akses jauh dan komunikasi terenkripsi.

Secara spesifik, paket-paket yang digunakan di panduan ini adalah netqmail, courier-imap, vpopmail, dan horde/imp. Paket-paket inti ini juga akan menarik daemontools, ucspi-tcp, mysql, apache, dan mod_php. netqmail menyediakan fungsi inti mta, courier-imap menyediakan layanan penerimaan, vpopmail menyediakan manajemen domain virtual, dan horde/imp menyediakan akses webmail.

Sebelum anda menginstal paket apapun, anda harus mengaktifkan beberapa flag USE berikut ini. Jika anda sudah menginstal salah satu dari paket-paket tersebut di atas, anda mungkin harus menginstalnya kembali. USE="maildir ssl imap mysql". Sebagai tambahan, jika anda ingin menggunakan horde/imp untuk webmail, anda memerlukan USE="nls" sebelum menginstal mod_php.

Catatan: Panduan ini ditulis dengan beberapa tahap secara berurutan. Jika pada salah satu tahap anda merasa bahwa sistem e-mail anda sudah 'lengkap', anda tidak perlu melanjutkan.

Langkah terakhir yang harus anda lakukan adalah membuat komitmen dengan sistem netqmail. Ada beberapa paket lain yang dapat anda gabungkan ke dalam sistem e-mail anda. Sekarang adalah saat yang tepat untuk meneliti dan memutuskan apakah netqmail tepat untuk kebutuhan anda. Kami memiliki panduan bagus lain yang berfokus pada Postfix, atau anda boleh melihat exim. Anda harus memilih sendiri solusi yang tepat untuk anda; tugas kami hanyalah memandu anda dalam mempersiapkan netqmail.

2.  netqmail (berbicara pada diri sendiri)

Daftar Kode 2.1: Instalasi netqmail

# emerge mail-mta/netqmail

Penting: Panduan ini ditulis untuk netqmail-1.05-r4 atau yang lebih baru. Apakah panduan ini dapat digunakan dengan versi yang lebih lama? Mungkin. Apakah anda harus melakukan upgrade? Ya, jika anda ingin memastikan bahwa anda dapat menyelesaikan panduan ini dengan sukses.

Peringatan: Jika anda mendapatkan pesan seperti the virtual/mta package conflicts with another package, berarti anda harus membuang MTA lain dari sistem anda. Untuk mengetahui paket apa yang harus anda buang, jalankan saja emerge netqmail -p.

Ketika anda menginstal netqmail, ucspi-tcp dan daemontools juga akan ikut diinstal. Anda boleh membaca ucspi-tcp dan daemontools jika mau. Pada dasarnya, daemontools bertanggung jawab atas pengaturan netqmail sebagai sebuah servis/layanan, sedangkan uscpi-tcp bertanggung jawab atas pengaturan koneksi TCP yang masuk ke layanan netqmail.

Pertama kita harus menjalankan beberapa tahap konfigurasi pasca instalasi.

Daftar Kode 2.2: Konfigurasi netqmail

(Sesuaikan dengan informasi personal anda)
# nano /var/qmail/control/servercert.cnf
# emerge --config netqmail

netqmail dirancang dengan berfokus pada keamanan sehingga e-mail tidak pernah dikirimkan kepada root. Jadi, sekarang anda harus memilih satu pengguna dari sistem anda yang akan menerima e-mail untuk root. Dari sekarang, pada panduan ini kita akan menggunakan user 'vapier'.

Daftar Kode 2.3: Pengaturan akun non-root untuk e-mail

# cd /var/qmail/alias
# echo vapier > .qmail-root
# echo vapier > .qmail-postmaster
# echo vapier > .qmail-mailer-daemon

Sekarang kita jalankan layanan penerimaan netqmail.

Daftar Kode 2.4: Menjalankan layanan penerimaan netqmail

# rc-update add svscan default
# /etc/init.d/svscan start
# cd /service
# ln -s /var/qmail/supervise/qmail-send qmail-send

Kita juga harus memastikan bahwa netqmail bekerja dengan baik dengan melakukan beberapa pengujian.

Daftar Kode 2.5: Pemeriksaan layanan

# ssh vapier@localhost
# maildirmake .maildir
# qmail-inject root << EOF
test root e-mail!
EOF
# qmail-inject postmaster << EOF
test postmaster e-mail!
EOF
# qmail-inject vapier << EOF
test vapier e-mail!
EOF
# mutt 
(Sekarang anda seharusnya mendapatkan 3 e-mail baru)

Itu saja! Sekarang anda sudah memiliki sistem e-mail yang dapat menangani surat-surat di komputer lokal dan daemon sistem/pengguna yang menggunakannya.

Peringatan: Jika anda tidak mendapatkan e-mail dan melihat error aneh di file log (periksalah /var/log/qmail/) yang mencantumkan 'localhost.localhost', ini berarti informasi domain/dns anda belum diatur dengan benar. Secara default, netqmail menggunakan output dari hostname --fqdn. Jika perintah ini memberikan output 'localhost', maka anda harus memeriksa pengaturan di /var/qmail/control/. Gunakan contoh pengaturan di bawah ini jika anda memerlukan bantuan.

Daftar Kode 2.6: Contoh file /var/qmail/control/ untuk domain level 2

# hostname --fqdn
wh0rd.org
# cat me
wh0rd.org
# cat defaultdomain
wh0rd.org
# cat plusdomain
wh0rd.org
# cat locals
wh0rd.org
# cat rcpthosts
wh0rd.org

Daftar Kode 2.7: Contoh file /var/qmail/control/ untuk domain level 3

# hostname --fqdn
mail.wh0rd.org
# cat me
mail.wh0rd.org
# cat defaultdomain
wh0rd.org
# cat plusdomain
wh0rd.org
# cat locals
mail.wh0rd.org
# cat rcpthosts
mail.wh0rd.org

3.  vpopmail

Daftar Kode 3.1: Instalasi vpopmail

# emerge vpopmail

Penting: Panduan ini ditulis untuk digunakan dengan vpopmail-5.4.6 atau yang lebih baru. Apakah dapat digunakan dengan versi yang lebih lama? Mungkin. Apakah anda harus melakukan upgrade? Ya, jika anda ingin berhasil mengikuti panduan ini.

Penyiapan vpopmail sedikit lebih rumit dari paket yang telah kita bahas sebelumnya. Karena vpopmail dijalankan dari mysql, kita harus memastikan dahulu bahwa mysql telah dijalankan. Selanjutnya kita baru dapat menyiapkan database vpopmail dan melanjutkan ke tahap berikutnya. Sebelum menjalankan langkah ini, anda harus memastikan bahwa anda sudah menginstal dan mengatur mysql dengan benar. Perlu dicatat bahwa password yang penulis gunakan untuk database vpopmail adalah 'vpoppw', namun anda harus menggunakan password lain.

Daftar Kode 3.2: Pengaturan vpopmail di mysql

# rc-update add mysql default
Jika anda baru saja menginstal mysql untuk pertama kali, jangan lupa
jalankan perintah ebuild <mysql.ebuild> config dan ikuti petunjuk
yang diberikan sebelum menjalankan server mysql.
# /etc/init.d/mysql start
# nano /etc/vpopmail.conf 
(Mengganti password dari 'secret' menjadi 'vpoppw')
# mysql -p << EOF
create database vpopmail;
use mysql;
grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'vpoppw';
flush privileges;
EOF
(Langkah-langkah berikut ini boleh anda jalankan atau tidak jalankan,
tetapi kita akan menjalankannya untuk mendapatkan kepastian)
# chown root:vpopmail /etc/vpopmail.conf
# chmod 640 /etc/vpopmail.conf
# chown root:vpopmail /var/vpopmail/bin/vchkpw
# chmod 4711 /var/vpopmail/bin/vchkpw

Peringatan: Jika anda mendapatkan masalah perizinan pada mysql/vpopmail, anda mungkin harus me-restart mysql. Jalankan saja /etc/init.d/mysql restart.

Sekarang, vpopmail sudah siap untuk digunakan. Di sini, kita akan menyediakan virtual hosting untuk domain 'wh0rd.org'. Ini artinya, kita harus memberitahukan vpopmail tentang domain ini. Kita juga akan menambahkan akun pengguna baru, yaitu 'vapier'.

Daftar Kode 3.3: Penambahan domain

(Anda hanya perlu menjalankan langkah ini jika perintah vadddomain memberikan output "command not found")
# source /etc/profile

(Ketika men-debug vpopmail, anda mungkin perlu membaca log)
# mysql -u vpopmail -p
mysql> select * from vpopmail.vlog;

# vadddomain wh0rd.org postpass
(Sekarang periksa apakah domain sudah diatur dengan benar)
# printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0
uid=89(vpopmail) gid=89(vpopmail) groups=0(root)
(Jika anda tidak melihat output seperti di atas, maka kemungkinan ada perizinan yang tidak benar)
# vadduser vapier@wh0rd.org vappw

Setiap domain yang diciptakan oleh vpopmail memiliki akun 'vpopmaster'. Di sini kita akan memberitahukan vpopmail bahwa password untuk akun vpopmaster adalah 'postpass'. Sebelum vpopmail dapat digunakan, kita harus memastikan dahulu bahwa kita sudah bisa menerima e-mail melalui courier dan mengirimkan e-mail melalui netqmail dan SMTP.

4.  Courier POP/IMAP

Daftar Kode 4.1: Emerge courier-imap

# emerge net-mail/courier-imap

Penting: Anda harus menginstal courier-imap setelah vpopmail agar modul authvchkpw dibangun.

Penting: Panduan ini dirancang untuk digunakan dengan net-mail/courier-imap-3.0.7 atau yang lebih baru. Apakah dapat digunakan dengan versi yang lebih lama? Mungkin. Apakah anda harus melakukan upgrade? Ya, jika anda ingin berhasil mengikuti panduan ini.

Sekarang untuk langkah konfigurasi umum pasca instalasi. Langkah-langkah ini hanya diperlukan jika anda ingin menggunakan komunikasi yang terenkripsi dengan SSL (yang memang seharusnya anda gunakan!). Jika tidak, anda boleh melewatkan dua langkah di bawah ini dan menghapus '-ssl' dari setiap nama skrip init.

Daftar Kode 4.2: Pengaturan POP3/SSL

# nano /etc/courier/authlib/authdaemonrc
(Menetapkan variabel authmodulelist agar hanya berisi "authvchkpw")
# cd /etc/courier-imap
# nano pop3d.cnf 
(Edit bagian [ req_dn ])
# mkpop3dcert
# rc-update add courier-pop3d-ssl default
# /etc/init.d/courier-pop3d-ssl start

Daftar Kode 4.3: Pengaturan IMAP/SSL

# cd /etc/courier-imap
# nano imapd.cnf 
(Edit bagian [ req_dn ])
# mkimapdcert
# rc-update add courier-imapd-ssl default
# /etc/init.d/courier-imapd-ssl start

Sekarang klien e-mail anda sudah bisa login ke host yang menjalankan courier dan menerima e-mail dari virtual host. Di sistem penulis, penulis sudah bisa login dengan menggunakan akun 'vapier@wh0rd.org' dan password 'vappw'.

5.  netqmail (berbicara kepada dunia)

Mari kita siapkan SMTP sambil memastikan bahwa tidak ada lagi lubang spam yang tersisa.

Daftar Kode 5.1: Menjalankan layanan SMTP netqmail

# cd /var/qmail/control/
# nano conf-smtpd
(Hapus tanda komentar pada variabel SMTP-AUTH dan tetapkan QMAIL_SMTP_CHECKPASSWORD di /var/vpopmail/bin/vchkpw)
# nano servercert.cnf 
(Edit bagian [ req_dn ] )
# mkservercert
# cd /service
# ln -s /var/qmail/supervise/qmail-smtpd qmail-smtpd
# /etc/init.d/svscan restart

Dengan anggapan anda belum pernah mengedit file konfigurasi netqmail sama sekali, netqmail sekarang akan menerima surat untuk virtual domain wh0rd.org dan untuk semua pengguna di komputer lokal. Selain itu, netwmail akan me-relay e-mail untuk siapa saja yang mengirimkannya melalui 127.0.0.1 dan untuk siapa saja yang berhasil melakukan otentikasi dengan vpopmail. Ketika anda mengatur klien e-mail anda untuk mengirimkan e-mail, jangan lupa pilih opsi seperti 'Server requires authentication'. Pada kasus penulis, penulis menggunakan akun 'vapier@wh0rd.org' dan password 'vappw'. Yang terakhir adalah memastikan bahwa anda memerintahkan klien e-mail anda untuk menggunakan SSL/TLS untuk komunikasi SMTP. netqmail tidak akan mengizinkan anda melakukan otentikasi jika sesi anda tidak terenkripsi.

6.  Klien Webmail Horde / IMP

Walaupun banyak sekali klien webmail yang disediakan (yang bebas anda pilih dan gunakan), penulis lebih menyukai Klien Webmail IMP yang merupakan bagian dari framework Horde. Alasan utamanya adalah, Horde dapat menyediakan akses Webmail, atau anda dengan mudah dapat menambahkan komponen lain untuk menangani Buku Alamat, Kalender, Tugas, dll... Jika anda masih belum tertarik, sebaiknya anda mengunjungi website Horde.

Sekarang kita harus menginstal IMP.

Daftar Kode 6.1: Instalasi IMP

# emerge horde-imp

Penting: Panduan ini dirancang untuk digunakan dengan horde-2.2.x dan horde-imp-3.2.x. Versi CVS (dan rilis mayor yang lebih baru) mungkin menggunakan konfigurasi yang sangat berbeda. Perlu dicatat juga bawha php-5.x kemungkinan akan merusak horde-2.x.

Untuk saat ini Horde belum terlalu mudah untuk dikonfigurasi, kecuali anda sudah berpengalaman. Kabar baiknya, penulis sudah berpengalaman, dan akan membagikan pengalaman tersebut kepada anda.

Daftar Kode 6.2: Konfigurasi Horde

# cd /var/www/localhost/htdocs/horde/config/
# for f in *.dist ; do mv ${f} ${f/.dist} ; done
# nano horde.php
(Di bawah 'Horde Authentication':)
$conf['auth']['driver'] = 'imap';
$conf['auth']['params']['dsn'] = '{localhost:993/imap/ssl/novalidate-cert}';

(Di bawah 'Horde Logging':)
$conf['log']['name'] = '/var/log/apache2/horde.log';

(Di bawah 'Problem Reporting':)
$conf['problems']['enabled'] = true;
$conf['problems']['email'] = 'webmaster@wh0rd.org';

# nano registry.php
(Di bawah 'Handlers':)
$this->registry['auth']['login'] = 'imp';
$this->registry['auth']['logout'] = 'imp';

(Di bawah 'Application registry':)
Tetapkan elemen 'status' applications['imp'] dari 'inactive' menjadi 'active'

# touch /var/log/apache2/horde.log
# chown apache:apache /var/log/apache2/horde.log

Catatan: Anda mungkin harus mengganti akun e-mail 'webmaster' dengan akun lain. Jika anda ingin menggunakan alamat e-mail ini, maka anda harus menambahkan akun tersebut melalui vpopmail (atau ikuti petunjuk di bawah ini tentang qmailadmin).

Sekarang kita atur IMP dengan cepat.

Daftar Kode 6.3: Konfigurasi IMP

# cd /var/www/localhost/htdocs/horde/imp/config/
# for f in *.dist ; do mv ${f} ${f/.dist} ; done
# nano servers.php

(Edit array $servers['imap'] :)
$servers['imap'] = array(
	'name' => 'wh0rd.org',
	'server' => 'localhost',
	'protocol' => 'imap/ssl/novalidate-cert',
	'port' => 993,
	'folders' => '',
	'namespace' => 'INBOX.',
	'maildomain' => 'wh0rd.org',
	'smtphost' => 'localhost',
	'realm' => '',
	'preferred' => ''
);

Terakhir, kita akan menjalankan apache agar kita dapat mulai menggunakan webmail.

Daftar Kode 6.4: Menjalankan apache

# nano /etc/conf.d/apache2 
(Hapus tanda komentar di APACHE2_OPTS="-D SSL -D PHP5")
# rc-update add apache2 default
# /etc/init.d/apache2 start

Peringatan: Anda harus mempertimbangkan penggunaan https bagi semua pengguna horde. Ini bukan masalah sepele, karena berhubungan dengan keamanan.

Untuk menguji pengaturan IMP baru kita, jalankan browser web dan kunjungi http://localhost/horde/ (atau ganti localhost dengan server yang sedang anda konfigurasikan). Anda seharusnya akan melihat halaman depan Horde tempat anda login. Lagi-lagi, pada pengaturan penulis, penulis menggunakan akun 'vapier@wh0rd.org' dan 'n password vappw'.

Sekarang, Horde dan IMP sudah siap pakai. Namun, anda harus kembali ke direktori konfigurasi jika anda ingin mengadakan beberapa penyesuaian lainnya.

7.  Paket-paket Tambahan

qmailadmin

Paket pertama yang penulis sarankan untuk anda adalah qmailadmin. Ini adalah antarmuka berbasis web untuk mengatur virtual domain. Jalankan saja emerge net-mail/qmailadmin lalu kunjungi http://localhost/cgi-bin/qmailadmin dengan browser web anda untuk menggunakannya. Hidup anda akan terasa lebih mudah.

qmHandle

Jika anda mendapatkan masalah dengan netqmail queue dan kesulitan ketika mengatasinya, anda mungkin perlu mempertimbangkan qmHandle. Ini adalah program perl sederhana yang dapat anda gunakan untuk melihat dan mengatur antrian pesan netqmail. Lagi-lagi, anda hanya perlu menjalankan emerge net-mail/qmhandle.

Tambahan horde

Penulis sangat menganjurkan anda untuk melihat aplikasi Horde lainnya. Aplikasi Turba, Kronolith, dan Nag adalah contoh aplikasi yang sangat bagus. Konfigurasinya mirip dengan IMP, jadi seharusnya anda tidak akan mendapatkan masalah. Yang terpenting, jangan lupa edit registry.php di dalam direktori konfigurasi horde agar aplikasi baru ditampilkan di bagian bawah halaman website horde.

ucspi-tcp

netqmail memanfaatkan ucspi-tcp untuk menangani koneksi ke dalam untuk netqmail. Jika anda ingin mengganti aturan-aturan penyaringannya, maka bacalah file-file konfigurasi di /etc/tcprules.d/ (versi lama menempatkannya di /etc). Di sana anda akan mendapatkan dua file untuk setiap servis, file konfigurasi (mis. tcp.qmail-smtp) versi file yang telah dikompilasi yang digunakan oleh ucspi-tcp (mis. tcp.qmail-smtp.cdb). Kapanpun anda memperbarui file konfigurasi, anda harus membangun-ulang versi binarinya. Jalankan saja tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp. Setiap kali ada koneksi untuk layanan netqmail, file aturan yang telah dikompilasi akan dibaca kembali, jadi anda tidak perlu me-restart servisnya.

qmail-scanner

Jika anda ingin melakukan penyaringan isi pada server e-mail anda (spam dan virus), maka anda harus mengganti program queueing default. Salah satu program yang bagus untuk tujuan ini adalah qmail-scanner. Jalankan saja emerge qmail-scanner lalu edit file /etc/tcprules.d/tcp.qmail-smtp.

Penting: Proses kompilasi qmail-scanner sangatlah buruk. Untuk mendukung paket-paket tertentu, anda harus menginstalnya terlebih dahulu. Artinya, anda harus menginstal SpamAssassin dan/atau Clam AntiVirus sebelum anda menginstal qmail-scanner. Bacalah bagian selanjutnya untuk mengetahui caranya.

Daftar Kode 7.1: Mengganti queuer

# cd /etc/tcprules.d/
# nano tcp.qmail-smtp
(Tambahkan QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" ke aturan catchall allow)
# tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp

Bacalah bagian berikut untuk mengetahui cara menyaring spam dan virus. Anda mungkin harus menetapkan beberapa opsi dengan mengedit /var/qmail/bin/qmail-scanner-queue.pl.

SpamAssassin

Salah satu panyaring spam Open Source terbaik yang tersedia adalah SpamAssassin. Jalankan saja emerge mail-filter/spamassassin untuk menginstalnya. Paket ini tersedia dalam dua bentuk, versi baris perintah dan versi klien/server. Untuk server yang menangani surat dalam jumlah kecil, versi baris perintah sudah cukup. Tetapi untuk server yang menangani banyak surat, anda sebaiknya menggunakan versi klien/server.

Daftar Kode 7.2: Konfigurasi SpamAssassin

# nano /etc/mail/spamassassin/local.cf
(Paling tidak, anda harus menambahkan opsi-opsi berikut:)
required_hits 6
skip_rbl_checks 1

# rc-update add spamd default
# /etc/init.d/spamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
(Pastikan agar variabel $spamc_binary berisi '/usr/bin/spamc'.)
(Jika berisi '', maka perhatikan catatan di bawah ini.)

Penting: Jika anda tidak menginstal SpamAssasin sebelum menginstal qmail-scanner, anda harus menginstal-ulang qmail-scanner sekarang juga. Proses kompilasinya sangat buruk dan hanya akan menambahkan fitur-fitur dari paket yang ditemukannya di sistem pada saat kompilasi.

Sekarang, surat yang masuk akan dikirmkan ke qmail-scanner dan akan disaring oleh SpamAssasin.

Clam AntiVirus

Seperti SpamAssassin, Clam AntiVirus tersedia dalam dua bentuk. Penulis akan menjelaskan dengan singkat cara megatur versi klien/server. Pertama jalankan emerge app-antivirus/clamav.

Daftar Kode 7.3: Pengaturan Clam AntiVirus

# nano /etc/conf.d/clamd 
(Tetapkan START_CLAMD=yes)
# nano /etc/clamav.conf
(Sesuaikan konfigurasi dengan kebutuhan anda)
# rc-update add clamd default
# /etc/init.d/clamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
(Pastikan agar variabel $clamscan_binary berisi '/usr/bin/clamscan'.)
(Jika berisi '', maka perhatikan catatan di bawah ini.)
# nano /var/qmail/control/conf-common
(Jika ClamAV melaporkan masalah memori, coba tingkatkan softlimit)

Penting: Jika anda belum menginstal Clam AntiVirus sebelum menginstal qmail-scanner, anda harus menginstal-ulang qmail-scanner sekarang juga. Proses kompilasinya sangat buruk dan hanya akan menambahkan fitur-fitur dari paket yang ditemukannya di sistem pada saat kompilasi.

Sekarang, surat yang masuk akan dikirimkan ke qmail-scanner dan akan disaring oleh Clam AntiVirus.

8.  Catatan Penutup

Penulis tidak memiliki catatan penutup kecuali, jika anda mendapatkan masalah dengan panduan ini, hubungilah penulis atau buatlah laporan bug di Website Bugzilla Gentoo. Jika anda memiliki ide yang menurut anda dapat memperbagus panduan ini, dengan segala hormat, kirimkan ide anda tersebut. Penulis mencintai netqmail dan akan dengan senang menambahkan apapun yang dapat membuat pengalaman pengguna MTA lebih mengasyikkan.



Print

Diperbarui 11 Oktober 2007

Versi asli dari dokumen ini terakhir diupdate 14 November 2010

Rangkuman: Dokumen ini menjelaskan cara membuat mail hosting system berbasis netqmail, vpopmail, courier-imap, mysql, dan imp Horde.

Mike Frysinger
Author

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.