Disclaimer :
Dokumen ini masih berupa rancangan dan belum dapat dianggap sebagai dokumen resmi.
|
Panduan Virtual Mail Hosting System dengan netqmail/vpopmail
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 |
# 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
|
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
# /etc/init.d/mysql start
# nano /etc/vpopmail.conf
# 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
# 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 |
# source /etc/profile
# mysql -u vpopmail -p
mysql> select * from vpopmail.vlog;
# vadddomain wh0rd.org postpass
# printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0
uid=89(vpopmail) gid=89(vpopmail) groups=0(root)
# 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
# cd /etc/courier-imap
# nano pop3d.cnf
# 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
# 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
# nano servercert.cnf
# 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
$conf['auth']['driver'] = 'imap';
$conf['auth']['params']['dsn'] = '{localhost:993/imap/ssl/novalidate-cert}';
$conf['log']['name'] = '/var/log/apache2/horde.log';
$conf['problems']['enabled'] = true;
$conf['problems']['email'] = 'webmaster@wh0rd.org';
# nano registry.php
$this->registry['auth']['login'] = 'imp';
$this->registry['auth']['logout'] = 'imp';
# 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
$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
# 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
# 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
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
|
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
# nano /etc/clamav.conf
# rc-update add clamd default
# /etc/init.d/clamd start
# nano /var/qmail/bin/qmail-scanner-queue.pl
# nano /var/qmail/control/conf-common
|
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.
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|