1. Program yg digunakan:
1.1 Webserver + addon:
1.1.1 apache_1.3.27.tar.gz (Webserver).
1.1.2 openssl-0.9.6h.tar.gz
1.1.3 mod_ssl-2.8.8-1.3.27.tar.gz
1.1.4 mod_perl-1.27.tar.gz
1.1.5 php-4.2.3.tar.gz
1.1.6 mod_gzip-1.3.26.1a.tar.gz
1.2 Database:
1.2.1 mysql-3.23.54.tar.gz
1.3 Aplikasi Email:
1.3.1 qmail-1.03.tar.gz (MTA).
1.3.2 vpopmail-5.3.8.tar.gz (Virtual email untuk protokol POP ).
1.3.3 courier-imap-1.4.6.20020529.tar.gz (Virtual mail untuk protokol IMAP).
1.3.4 squirrelmail-1.2.6.tar.gz (Web base email reader untuk protocol IMAP).
2. Perencanaan dan tata letak.
Silahkan anda "pikirkan masak-masak" anda mau simpen dimana data untuk web, mail anda. dan semuanya tergantung dari keperluan anda, kalo saya lebih seneng kalo meletakan khusus di partisi tersendiri sebagai contoh:
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 197M 58M 123M 32% /
/dev/ad0s1g 4.9G 23M 4.5G 0% /home
/dev/ad0s1d 2.4G 1.6M 2.2G 0% /mail
/dev/ad0s1e 4.9G 1.0G 3.5G 23% /usr
/dev/ad0s1f 1008M 9.1M 918M 1% /var
/dev/ad0s1h 4.9G 205M 4.3G 4% /www
procfs 4.0K 4.0K 0B 100% /proc
Nah untuk data webserver
/www
, email /mail
diletakan di partisi terpisah, nah perencanaan ini sebetulnya tidak layak untuk dibicarakan pada session ini karena memang ini dipikirkan pas anda mulai menginstall box anda.3. Langkah langkah pengerjaan:
3.1 Apache + PHP + OpenSSL + mod_ssl + mod_perl + mod_gzip + MySQL
3.1.1 Pembuatan bikin direktori source. Sebelum kita mulai terlebih dahulu kita harus login sbg
root
dan pastikan letak untuk source2 file tersebut, saya pribadi suka meletakan di /usr/local/src/
# mkdir /usr/local/src
Pastikan semua source kita diletakan di direktori tersebut, sebetulnya tergantung anda mau disimpen dimana.
3.1.2 Pengekstrakan semua source kita. Untuk sistem operasi berbasis UNIX tentunya kita tidak asing dengan perintah
tar
dan program kompresi gzip
, gunzip
, bzip
, bzip2
. Sekarang kita lakukan untuk semua
program pengekstrakan:
# pwd
/usr/local/src
# tar zxvf apache_1.3.27.tar.gz
# tar zxvf mod_perl-1.27.tar.gz
# tar zxvf mod_ssl-2.8.8-1.3.27.tar.gz
# tar zxvf mysql-3.23.54.tar.gz
# tar zxvf openssl-0.9.6h.tar.gz
# tar zxvf php-4.2.3.tar.gz
# tar zxvf mod_gzip-1.3.26.1a.tar.gz
Note: mod_ssl
harus sama mutlak dng versi apache anda.Setelah perintah di atas dieksekusi pastikan terbentuk direktori:
# ls -l
apache_1.3.27
mod_perl-1.27
mod_ssl-2.8.8-1.3.27
mysql-3.23.54
openssl-0.9.6h
php-4.2.3
mod_gzip-1.3.26.1a
3.1.3 Kompile source.
Sekarang lakukan kompile source
MySQL
tersebut, tapi diwajibkan anda membuat user/group
untuk daemon MySQL
dengan cara:# pw adduser mysql
# pw addgroup mysql
Untuk opsi lengkapnya silahkan terlebih dahulu anda ketik: # ./configure --help | more
Kalo memang anda sudah paham silahkan anda mulai kompile MySQL
: # cd mysql-3.23.54
# ./configure (defaulnya ini akan di ekstrak ke direktori /usr/local)
# make
# make check
# make install
# make clean
Pastikan anda tidak mendapatkan error, kalo misalnya terjadi error tolong check pesan errornya. agar daemon
MySQL
running pas pertama kali booting silakan anda entri di /etc/rc.local
:# vim /etc/rc.local
isi dng : /usr/local/bin/safe_mysqld --user=root &
Secara default daemon MySQL
akan running dng user root
.Note: Silahkan baca2 untuk manual
README
, INSTALL
dsb.Sekarang kita kompile
OpenSSL
, kita lakukan sbb:# cd ../openssl-0.9.6h
# ./config --prefix=/usr/local
# make
# make install
Defaultnya hasilnya akan disimpan di
/usr/local/openssl
, kita lanjutkan kompile mod_ssl
sbb:# cd ../mod_ssl-2.8.8-1.3.27
# ./configure --with-apache=/usr/local/src/apache_1.3.27 \
--with-ssl=/usr/local/src/openssl-0.9.6h \
--prefix=/www \
--enable-module=ssl \
--enable-module=all \
--enable-rule=EAPI
Perintah diatas akan mengabungkan
mod_ssl
, apache
dan OpenSSL:
, Hasilnya akan disimpen di parsisi /www
, kita lakukan compile juga untuk apache
nya:# cd ../apache_1.3.27
# make
# make certificate TYPE=option (Jawab pertanyaan ini dengan seksama)
# make install
Jika anda ingin membuat sertifikat sendiri maka tambahkan options
TYPE=custom
pas make certificate
, Ada beberapa option dibawah ini yg bisa anda pake:- TYPE=dummy, Jika anda sbg maintainer paket.
- TYPE=test, Jika anda sbg admin dan ingin ngetes saja.
- TYPE=custom, Jika anda sbg admin yang ingin build server sendiri.
- TYPE=existing, Jika anda sbg admin yang mengupgrade server.
Jika anda tidak menyertakan
options
maka defaultnya punya orang dalam hal ini "Snake Oil CA" nanti kita bisa bikin sendiri sertifikatnya, kita lanjutkan dengan kompile PHP
digabungkan dengan apache
, mysql
:# cd ../php-4.2.3
# ./configure --with-apxs=/www/bin/apxs \
# --with-mysql \
# --enable-trans-sid \
# --enable-debug=no \
# --enable-track-vars
# make
# make install
Pastikan tidak keluar pesan error, nah selanjutnya kita perlu mengkopi file config untuk
PHP
ini:# cp /usr/local/src/php-4.2.3/php.ini-dist /usr/local/lib/php.ini
Pastikan supaya
php
module jalan di web anda, anda bisa tambahkan beberapa options
di php.ini
, sebelumnya silahkan anda baca dulu keterangan ttg options ini.# vim /usr/local/lib/php.ini
Edit/Tambahkan:
register_globals = On
Berikut keteranganya:You should do your best to write your scripts so that they do not require register_global to be on; Using form variables as globals can easily lead to possible security problems, if the code is not very well thought of.
Kalo memang sudah benar, kita lanjutkan ke proses kompile
mod_perl
tolong silahkan check pastikan perl sudah terinstall pada sistem anda, kompilenya dengan cara:# cd ../mod_perl-1.27
# perl Makefile.PL USE_APXS=1 WITH_APXS=/www/bin/apxs EVERYTHING=1
# make
# make install
Penginstalan mod_gzip
eksternal, kita mulai dengan langkah: # cd ../mod_gzip-1.3.26.1a
Ada beberapa line dari script Makefile
musti kita rubah:# ls -l
total 444
drwxr-xr-x 3 mysql mysql 512 Jan 10 22:33 .
drwxr-xr-x 32 root wheel 2048 Jan 10 21:46 ..
-rw-r--r-- 1 root wheel 4866 Oct 1 14:29 ChangeLog
-rw-r--r-- 1 root wheel 257 Jan 10 22:29 Makefile
-rw-r--r-- 1 root wheel 252 Oct 1 14:29 Makefile.libdir
-rw-r--r-- 1 root wheel 2042 Oct 1 14:29 Makefile.tmpl
drwxr-xr-x 3 root wheel 512 Jan 10 22:02 docs
-rw-r--r-- 1 root wheel 227701 Oct 1 14:29 mod_gzip.c
-rw-r--r-- 1 root wheel 10099 Oct 1 14:29 mod_gzip.h
-rwxr-xr-x 1 root wheel 80758 Jan 10 22:29 mod_gzip.so
-rw-r--r-- 1 root wheel 71415 Oct 1 14:29 mod_gzip_compress.c
-rw-r--r-- 1 root wheel 19671 Oct 1 14:29 mod_gzip_debug.c
-rw-r--r-- 1 root wheel 4322 Oct 1 14:29 mod_gzip_debug.h
# vim Makefile
Edit/Tambahkan jadi:
APXS?=/www/bin/apxs
# make
# make build
# make install
# make clean
3.1.4 Konfigurasi.
Nah untuk proses kompile dah kelar tinggal kita lakukan beberapa konfigurasi, pertama kita konfigurasi apache kita dulu dan backup file yg aslinya, adapun langkahnya:
# cp /www/conf/httpd.conf /www/conf/httpd.conf.old
# vim /www/conf/httpd.conf
Cari: <IfDefine SSL>
LoadModule ssl_module libexec/libssl.so
LoadModule php4_module libexec/libphp4.so
LoadModule perl_module libexec/libperl.so
LoadModule gzip_module libexec/mod_gzip.so
</IfDefine>
Edit/Tambahkan jadi:<IfDefine SSL>
LoadModule ssl_module libexec/libssl.so
</IfDefine>
LoadModule php4_module libexec/libphp4.so
LoadModule perl_module libexec/libperl.so
LoadModule gzip_module libexec/mod_gzip.so
Cari:<IfDefine SSL>
AddModule mod_ssl.c
AddModule mod_php4.c
AddModule mod_perl.c
AddModule mod_gzip.c
</IfDefine>
Edit/Tambahkan:<IfDefine SSL>
AddModule mod_ssl.c
</IfDefine>
AddModule mod_php4.c
AddModule mod_perl.c
AddModule mod_gzip.c
Tambahkan juga agar engine gzip
bisa running di mesin anda:<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_can_negotiate Yes
mod_gzip_static_suffix .gz
AddEncoding gzip .gz
mod_gzip_update_static No
mod_gzip_command_version '/mod_gzip_status'
mod_gzip_keep_workfiles No
mod_gzip_minimum_file_size 500
mod_gzip_maximum_file_size 500000
mod_gzip_maximum_inmem_size 60000
mod_gzip_min_http 1000
mod_gzip_handle_methods GET POST
mod_gzip_item_exclude reqheader "User-agent: Mozilla/4.0[678]"
mod_gzip_item_include file \.html$
mod_gzip_item_exclude file \.js$
mod_gzip_item_exclude file \.css$
mod_gzip_item_include file \.pl$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/html$
mod_gzip_item_include mime ^text/plain$
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_exclude mime ^image/
mod_gzip_dechunk Yes
LogFormat "%h %l %u %t \"%V %r\" %<s %b mod_gzip: %{mod_gzip_result}n %In:%{mod_gzip_input_size}n -< %Out:%{mod_gzip_output_size}n = %%{mod_gzip_compression_ratio}n pct." %common_with_mod_gzip_info2
CustomLog logs/mod_gzip.log
common_with_mod_gzip_info2
mod_gzip_add_header_count Yes
mod_gzip_send_vary Yes
</IfModule>
Note: Intinya yg ada di dalam tanda tag ('<', '>') hanya untuk module
libssl.so
dan mod_ssl.c
saja.Cari/Tambahkan:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Note:
AddType
di atas bertujuan agar ekstensi .php
dapat dikenal web browser.Cari:
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
Edit/Tambahkan:<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php
</IfModule>
Note: Penambahan index.php
, index.htm
ini untuk menentukan ekstensi index.
Sekarang kita coba untuk create sertifikat sendiri tapi sebelomnya kita bikin direktori dulu agar terlihat lebih
rapih, adapun langkah2nya sbb:
# mkdir /www/conf/sertifikat
# cd /www/conf/sertifikat
# openssl genrsa -des3 -out server.key 1024
# openssl rsa -noout -text -in server.key
# openssl rsa -in server.key -out server.key.unsecure
# openssl req -new -key server.key -out server.csr
# openssl req -noout -text -in server.csr
# openssl req -new -x509 -days 365 -key server.key -out server.crt
# openssl genrsa -des3 -out ca.key 1024
# openssl rsa -noout -text -in ca.key
# openssl rsa -in ca.key -out ca.key.unsecure
# openssl req -new -x509 -days 365 -key ca.key -out ca.crt
# openssl x509 -noout -text -in ca.crt
Nah langkah diatas kita bikin sertifikat di bawah direktori
/www/conf
, kita bikin file yg kita namakan server.key
, server.key.unsecure
, server.csr
, server.crt
. selanjutnya kita perlu sedikit pengeditan PATH
di file /www/conf/httpd.conf
sbb:# vim /www/conf/httpd.conf
Cari/Edit/Tambahkan:SSLCertificateFile /www/conf/sertifikat/server.crt
SLCertificateKeyFile /www/conf/sertifikat/server.key
SSLCertificateChainFile /www/conf/sertifikat/ca.crt
Cari/Edit/Tambahkan:SSLCertificateChainFile /www/conf/ssl.crt/ca.crt
Coba anda check
PATH
-nya sudah tepat atau belom, nah selanjutnya kita jalankan daemon apache
nya:# apachectl starssl (SSL aktif)
# apachectl start (tanpa SSL)
# apachectl stop (untuk berhenti)
Untuk mengetes sudah jalan atau belom
SSL
-nya coba anda browse ke server anda misalnya https://www.kumprang.or.id
, biasakan check log file di /www/logs/error_log
, nah check baris per baris kalo2 ada yg error.3.2 Qmail + ucspi-tcp + daemontools + vpopmail + courier-imap + squirrelmail
3.2.1 Perencanaan penyimpanan email. Semua email saya coba letakan di
/mail
, sesuai dengan rencana semula, nah otomatis saya akan PATH
-kan semua konfigurasinya ke /mail
. 3.2.2 Pengekstrakan file.
Seperti biasa file tarball
*.tar.gz
diletakan di direktori /usr/local/src
. kita akan lakukan pengekstrakan dengan login super user root
untuk file dibawah ini:# cd /usr/local/src
# tar zxvf qmail-1.03.tar.gz
# tar zxvf ucspi-tcp-0.88.tar.gz
# tar zxvf daemontools-0.76.tar.gz
# tar zxvf vpopmail-5.3.8.tar.gz
Khusus untuk
squirrelmail
kita letakan di dokumen apache
, sebagai contoh saya akan letakan di /www/htdocs
dan saya rename dng nama webmail
langkahnya sebagai berikut:# cd /www/htdocs
# cp /usr/local/src/squirrelmail-1.2.6.tar.gz /www/htdocs/
# tar zxvf squirrelmail-1.2.6.tar.gz
# mv squirrelmail webmail
Sama halnya dengan
courier-imap
ini kita musti lakukan dengan access user biasa, dan kita letakan tarballnya di /home/budsz
(misalnya), langkahnya:# whoami
root
# cp /usr/local/src/courier-imap-1.4.6.20020529.tar.gz ~budsz/
# chown budsz.petugas ~budsz/courier-imap-1.4.6.20020529.tar.gz
# exit
# whoami
budsz
# pwd
/home/budsz
# ls -l courier-imap-1.4.6.20020529.tar.gz
-rw-r--r-- 1 budsz petugas 1182227 Jan 6 00:11 courier-imap-1.4.1.tar.gz
# tar zxvf courier-imap-1.4.6.20020529.tar.gz
Langkah diatas adalah mengcopi tarball
courier-imap-1.4.6.20020529.tar.gz
ke ~/budsz
(homedir budsz
), selanjutnya memberikan identifikasi file ke user budsz
dan group petugas
(chown
), anda exit
dari account root
dan lakukan pengekstrakan di homedir budsz
.3.2.3 Penginstalan source dan konfigurasi file.
Awalnya saya biasa menginstall
qmail
dan kawan2 terlebih dahulu, adapun langkah-langkahnya meliputi:# su -
Password:<input password root>
# whoami
root
# cd /usr/local/src
# cd qmail-1.03
# cp INSTALL.ids ids
# chmod 755 ids
Login dengan
root
, kita menuju ke direktori /usr/local/src
tempat source kita diletakan, kita pertama2 akan membuat user
dan group
untuk menjalankan daemon qmail
dan kawan2, pastikan anda buang yg tidak anda perlukan disini saya akan ambil untuk sistem operasi FreeBSD
dan tanda uncomment (#)
silahkan dihilangkan, langkahnya meliputi:# vim ids
Cari:#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
Edit/Hilangkan: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
Sebelom kita execute file terlebih dahulu kita bikin homedir untuk
qmail
:# mkdir /var/qmail
# sh ids
# cat /etc/master.passwd | grep qmail
alias:*:1002:1004::0:0:User &:/var/qmail/alias:/nonexistent
qmaild:*:1003:1004::0:0:User &:/var/qmail:/nonexistent
qmaill:*:1004:1004::0:0:User &:/var/qmail:/nonexistent
qmailp:*:1005:1004::0:0:User &:/var/qmail:/nonexistent
qmailq:*:1006:1005::0:0:User &:/var/qmail:/nonexistent
qmailr:*:1007:1005::0:0:User &:/var/qmail:/nonexistent
qmails:*:1008:1005::0:0:User &:/var/qmail:/nonexistent
# cat /etc/group | grep nofiles ; cat /etc/group | grep qmail
nofiles:*:1004:
qmail:*:1005:
Nah kita lakukan pengecheckan seperti diatas, dan ternyata sudah OK. kita juga akan buat direktori untuk log
qmail
:# mkdir /var/log/qmail
# mkdir /var/log/qmail/qmail-send
# mkdir /var/log/qmail/qmail-smtpd
# mkdir /var/log/qmail/qmail-pop3d
# chown -R qmaill.wheel /var/log/qmail
# chmod -R 750 /var/log/qmail
Sekarang kita lakukan tuneup qmail
terlebih dahulu:# cd /usr/local/src/qmail-1.03
# vim conf-split
Cari:23
Edit/Ganti:199
# vim conf-spawn
Cari:120
Edit/Ganti:255
Pengeditan di atas bertujuan agar limit antrian
queue
direktori qmail
menjadi lebih besar sehingga kapasitas antrian queue
qmail
lebih besar, modifikasi untuk conf-spawn
artinya menambah jumlah pembatasan control file. anda "tidak diperbolehkan" mengeset lebih dari 255
karena qmail
akan menolak pas anda kompile. selanjutnya kita akan kompile qmail
nya:# make setup check
# ./config atau $./config-fast mail.domainkamu.com
Nah jika anda menggunakan
./config
ini diasumsikan DNS
anda untuk host ini udah OK, tapi kalo anda pake ./config-fast mail.domainkamu.com
diasumsikan DNS
kamu belom aktif. nah ./config-fast
akan meletakan nama domain yang kamu input di /var/qmail/control/me
, /var/qmail/control/locals
, dan /var/qmail/control/rcpthosts
sehingga qmail
akan menerima email atas nama mail.domainkamu.com
Sekarang kita lanjutkan install
daemontools
, nah langkahnya sbb:# cd /usr/local/src/admin/daemontools-0.76
# package/install
Untuk penginstalan
daemontools-0.76
memang sedikit berbeda dengan versi sebelomnya, pas anda ekstrak otomatis direktori admin
akan terbentuk (bukan direktori daemomtools-0.76
) nah dengan penginstalan ini otomatis akan terbentuk direktori /command
, ini bersini link2 ke direktori /usr/local/src/admin/daemontools-0.76/package/command/
agar source kita bisa kita hapus maka kita:# cd /command
# rm -rf *
# cp -r /usr/local/src/admin/daemontools-0.76/package/command/* /command/
Sebelom daemonnya running ada lebih baik untuk men-nonaktifkan sendmail bawaan box (asumsi anda running
sendmail
), caranya:# vim /etc/rc.local
Cari:sendmail_enable="YES"
Edit/ganti:sendmail_enable="NO"
# chmod 0 /usr/sbin/sendmail
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
Kita ganti
sendmail
daemonnya dengan sendmail
yg punya qmail
langkahnya baiknya anda check dulu isi file dan kasi comment di:# vim /etc/mail/mailer.conf
Cari:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
Edit/Ganti menjadi:#sendmail /usr/libexec/sendmail/sendmail
#send-mail /usr/libexec/sendmail/sendmail
#mailq /usr/libexec/sendmail/sendmail
#newaliases /usr/libexec/sendmail/sendmail
Edit/Tambah:sendmail /var/qmail/bin/sendmail
newaliases /var/qmail/bin/newaliases
Silahkan reboot mesin anda untuk melihat hasilnya dan pastikan sebelom mereboot terdapat entry di
/etc/rc.local
seperti:# cat /etc/rc.local | grep svscanboot
csh -cf '/command/svscanboot &'
# shutdown -r now
Sekarang kita lakukan penginstalan
ucspi-tcp-0.88
, kita lakukan langkah seperti ini:# cd /usr/local/src/ucspi-tcp-0.88
# make
# make setup check
Sekarang kita konfigurasi host yg boleh ngerelay email ke server kita:# cd /etc
# mkdir tcpserver
# cd tcpserver
# vim tcp.smtp
Isi dengan:127.0.0.1:allow,RELAYCLIENT=""
198.168.1.:allow,RELAYCLIENT=""
200.200.200.:allow,RELAYCLIENT=""
:allow
Listing diatas artinya host yg diperbolehkan untuk ambil/kirim email via mail server kita atau istilahknya "ngerelay". nah sebagai contoh anda input ip untuk formatnya anda bisa listing perip
192.168.0. artinya host yg bernomor ip 192.168.0.1
atau bisa persubnet 192.168.0.XXX
, dimana XXX
bernilei antara 1 - 255 host
. nah tipe accessnya allow
(diperbolehkan).
Sekarang kita lanjutkan membikin direktori
alias
untuk qmail
pertama2 kita periksa dulu apakah direktori alias
telah dibikin apa belom tapi defaultnya telah terbentuk coba kita check:# ls -l /var/qmail/
Saya asumsikan direktori
alias
belom ada, OK kita mulai untuk untuk create direktori dan kasi mode access tersebut:# mkdir ~alias
# chown alias.qmail ~alias
Setelah itu kita akan masukan user alias
untuk ngehandle qmail
contohnya:# echo budsz > /var/qmail/alias/.qmail-root
# echo budsz > /var/qmail/alias/.qmail-postmaster
# echo budsz > /var/qmail/alias/.qmail-mailer-daemon
# chmod 2755 ~alias
# chmod 644 ~alias/.qmail-*
# ls -l /var/qmail/ | grep alias
drwxr-sr-x 2 alias qmail 512 Jun 8 09:16 alias
Kita check lagi untuk direktori /var/qmail/control/
:# ls -l /var/qmail/control/
total 14
-rw-r--r-- 1 root qmail 4 Jun 7 23:28 concurrencyremote
-rw-r--r-- 1 root qmail 6 Jun 8 09:23 defaultdomain
-rw-r--r-- 1 root qmail 10 Jun 9 05:05 locals
-rw------- 1 root qmail 0 Jun 9 05:05 locals.lock
-rw-r--r-- 1 root qmail 15 Jun 8 09:22 me
-rw-r--r-- 1 root qmail 6 Jun 7 23:27 plusdomain
-rw-r--r-- 1 root qmail 15 Jun 13 01:22 rcpthosts
-rw------- 1 root qmail 0 Jun 9 05:05 rcpthosts.lock
# echo 255 > /var/qmail/control/concurrencyremote
# chmod 644 /var/qmail/control/concurrencyremote
Pastikan nilei di dalam file
concurrencyremote
berisi 255
dan kita beri mode access 644
, isi file defaultsdomain
berisi or.id
, isi file locals
berisi localhost
, isi me
berisi kumprang.or.id
, isi plusdomain
berisi or.id
, isi rcpthosts
berisi kumprang.or.id
. Dengan daemontools
yg versi baru ini anda bekerja lebih praktis dan tidak perlu untuk bikin startup script
, jika konfigurasi anda telah kelar otomatis daemon akan running. Nah jika semua dah OK kita akan coba buat startup supervise qmail
dkk, langkahnya meliputi:# cd /
# mkdir service
# chmod 755 /service
# mkdir /var/qmail/supervise
# chmod 755 /var/qmail/supervise
Langkah diatas bertujuan untuk membuat direktori link agar memudahkan untuk pengontrolan. nah kita buat beberapa direktori untuk daemon
qmail
. langkahnya meliputi:# mkdir /var/qmail/supervise/qmail-pop3d
# mkdir /var/qmail/supervise/qmail-pop3d/log
# chmod +t /var/qmail/supervise/qmail-pop3d
# mkdir /var/qmail/supervise/qmail-send
# mkdir /var/qmail/supervise/qmail-send/log
# chmod +t /var/qmail/supervise/qmail-send
# mkdir /var/qmail/supervise/qmail-smtpd
# mkdir /var/qmail/supervise/qmail-smtpd/log
# chmod +t /var/qmail/supervise/qmail-smtpd
# ln -s /var/qmail/supervise/* /service
Setelah direktori tersebut terbentuk maka kita coba untuk membuat script2nya dengan cara:
# vim /var/qmail/rc
Isi:#!/bin/sh
env env - PATH="/var/qmail/bin:/usr/local/bin" \
qmail-start ./Maildir/
# chmod 700 /var/qmail/rc
Langkah diatas adalah untuk membuat control file untuk
qmail
dan kita kasi mode 700
.# vim /var/qmail/supervise/qmail-pop3d/run
Isi:#!/bin/sh
exec /usr/local/bin/tcpserver -H -R -v -c100 0 110 \
/var/qmail/bin/qmail-popup mail-host.domainkamu.org \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
# chmod 755 /var/qmail/supervise/qmail-pop3d/run
Membikin startup log qmail-pop3d
dan kita kasi mode 755
untuk filenya.# vim /var/qmail/supervise/qmail-pop3d/log/run
Isi:#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
s100000 n20 /var/log/qmail/qmail-pop3d 2>&1
# chmod 755 /var/qmail/supervise/qmail-pop3d/log
# chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
Membikin control file untuk
log qmail-pop3d
dan kita kasi mode 755
untuk direktorinya dan mode 755
untuk file runnya
.# vim /var/qmail/supervise/qmail-smtpd/run
Isi:#!/bin/sh
exec /usr/local/bin/tcpserver -p -R -x /etc/tcp.smtp.cdb \
-u 1003 -g 1004 -v -c 100 0 smtp rblsmtpd /var/qmail/bin/qmail-smtpd 2>&1
# chmod 755 /var/qmail/supervise/qmail-smtpd/run
Untuk menjalankan
qmail-smtpd
maka kita membuat script kayak diatas, nah untuk -u 1003
dan -g 1004
itu silahkan anda check dengan uid/gid
qmaild
di mesin anda. Untuk opsi rblsmtpd
berguna untuk ngeblock
address, ini berguna untuk solusi Open relay
nantinya disini kita bisa buat link ke database open relay di dunia, selanjutnya kita kasi mode 755
untuk file runnya
.# vim /var/qmail/supervise/qmail-smtpd/log/run
Isi:#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t s100000 n20 \
/var/log/qmail/qmail-smtpd 2>&1
# chmod 755 /var/qmail/supervise/qmail-smtpd/log
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
Mengontrol file
log
untuk qmail-smtpd
dan kita kasi mode 755
untuk direktori log
maupun file log runnya
. Kita sekarang mulai install vpopmail
, setelah souce tarball kita ekstrak di direktori /usr/local/src/
, maka sebelom kita install terlebih dahulu kita buat direktori di /mail
untuk meletakan semua email user-user dan membuat user untuk daemon vpopmail
.# pw groupadd -n vchkpw -g 98
# mkdir /mail/vpopmail
# pw useradd -n vpopmail -u 98 -g 98 -c VpopMail-User -d /mail/vpopmail
# cd /usr/local/src/vpopmail-5.2.1
# vim vmysql.h
Cari:/* Edit to match your set up */
#define MYSQL_UPDATE_SERVER "localhost"
#define MYSQL_UPDATE_USER "root"
#define MYSQL_UPDATE_PASSWD "secret"
#define MYSQL_READ_SERVER "localhost"
#define MYSQL_READ_USER "root"
#define MYSQL_READ_PASSWD "secret"
Edit/Ganti:#define MYSQL_UPDATE_SERVER "Host_MySQL"
#define MYSQL_UPDATE_USER "User_Untuk_konek_Ke_Database"
#define MYSQL_UPDATE_PASSWD "Password_Untuk_Konek_Ke_Database"
#define MYSQL_READ_SERVER "Host_Database"
#define MYSQL_READ_USER "User_Untuk_Konek_Ke_Database"
#define MYSQL_READ_PASSWD "Password_Untuk_Konek_Ke_Database"
# ./configure --enable-roaming-users=y --enable-logging=y \
--enable-defaultquota="2400000000S" \
--enable-ip-alias-domains=y \
--enable-mysql=y \
--enable-sqllib=/usr/local/lib/mysql/ \
--enable-sqlincdir=/usr/local/include/mysql/
# make
# make install-strip
Pengeditan diatas adalah untuk menjalankan script otomatis pas install yg berfungsi untuk "mengkonekan"
vpopmail
dengan database MySQL
, maka dari itu kita wajib untuk terlebih dahulu membuatkan database untuk vpopmail
:# mysqladmin -u root -h kumprang.or.id -p password
Enter password: <Masukan password baru untuk root> atau
# mysql -u root -h kumprang.or.id -p
Enter password: <Masukan password untuk management user>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 787 to server version: 3.23.49
Type 'help;' or '\h' for help. Type '\c' to clear the
buffer.
mysql>GRANT ALL PRIVILEGES ON *.* TO mysql@kumprang.or.id
IDENTIFIED BY 'Password_Konek_Ke_Database';
mysql>CREATE DATABASE vpopmail;
Query OK, 1 row affected (0.09 sec)
mysql>exit
Untuk membackup database silahkan pake perintah
mysqldump
dengan nama databasenya vpopmail
akan di redirect ke file vpopmail_backup.txt
, sebagai contoh:# mysqldump -u root -p vpopmail > vpopmail_backup.txt
Enter password: <Enter_password_root_Konek_Ke_Database>
Dan untuk memasukan data ke database lagi anda tinggal ubah tanda redirect sebaliknya, misalnya:
# mysqldump -u root -p vpopmail < vpopmail_backup.txt
Enter password: <Enter_password_root_Konek_Ke_Database>
Coba anda check di direktori
/mail/vpopmail
, dengan perintah ls -l
misalnya:# ls -l /mail/vpopmail/
total 12
drwxr-xr-x 2 vpopmail vchkpw 512 Jun 9 04:38 bin
drwxr-xr-x 4 vpopmail vchkpw 512 Jun 9 04:38 doc
drwxr-xr-x 3 vpopmail vchkpw 512 Jun 12 15:03 domains
drwxr-xr-x 2 vpopmail vchkpw 512 Jun 15 15:08 etc
drwxr-xr-x 2 vpopmail vchkpw 512 Jun 9 04:38 include
drwxr-xr-x 2 root wheel 512 Jun 9 04:38 lib
Nah agar
vpopmail
kita aktif, maka kita coba untuk bikin domain
dan user pop
misalnya:# cd /mail/vpopmail/bin/
# ./vadddomain domainkamu.com
# ./vadduser user@domainkamu.com
Please enter password for user@domainkamu.com:
enter password again:
Dengan langkah diatas maka akan terbentuk direktori
domainkamu.com
di /mail/vpopmail/domains/
dan didalamnya akan ada user yg anda create tadi. untuk login nanti silahkan anda entri di Outlook Express/Netscape mail etc Login: user@domainkamu.com
, passwordnya masukan juga berikut untuk setting server dsb..dsb saya asumsikan anda dah bisa. Nah agar anda bisa check email via web base maka saya pake squirrelmail
. anda bisa pilih webmail yg lainnya nah untuk squirrelmail
ini dia butuh IMAP
server maka dari itu kita musti install courier
, nah ada beberapa macam courier
tapi saya pilih courier-imap
, OK kita coba untuk install courier-imap
terlebih dahulu, untuk menginstallnya anda tidak perlu access root
:# exit
# whoami
user
# cd
# pwd
/home/budsz
# wget -c http://www.kumprang.or.id/ftp/tarball/courier-imap-1.4.1.tar.gz
# ls -l courier-imap-1.4.1.tar.gz
-rw-r--r-- 1 user user-group 1182227 Jan 6 00:11 courier-imap-1.4.1.tar.gz
Pastikan sebelom kita ekstrak ownernya milik user yg bersangkutan. kita mulai penginstalan:
# tar zxvf courier-imap-1.4.1.tar.gz
# cd courier-imap-1.4.1
# ./configure --without-authuserdb
# make
# make check
Untuk opsi configure yg saya pake
--without-authuserdb
, ini artinya kita tidak memperkenankan autorisasi userdb
, nah pastikan untuk proses make
dan make check
tidak terjadi error. nah untuk proses selanjutnya kita butuh access root
:# su -
Password:
# whoami
root
# make install-strip
# make install-configure
Hasil install kita secara default diletakan di
/usr/lib/courier-imap
, nah agar IMAP
server kita bisa booting di awal maka kita entry di /etc/rc.local
# vim /etc/rc.local
Isi:/usr/lib/courier-imap/libexec/imapd.rc start
Jangan lupa anda mengcopi file di /usr/lib/courier-imap/etc/
menjadi:# cp authdaemonrc.dist authdaemonrc
# cp imapd-ssl.dist imapd-ssl
# cp imapd.dist imapd
# cp pop3d-ssl.dist pop3d-ssl
# cp pop3d.dist pop3d
# /usr/lib/courier-imap/libexec/imapd.rc start
Pastikan pas anda jalankan
IMAP
nya pastikan tidak terjadi error, nah untuk configurasi IMAP
server ini anda check di /usr/lib/courier-imap/etc/imapd
selanjutnya kita akan create user IMAP
:# mkdir -p /mail/courier-imap/userdb
# cat > /mail/courier-imap/userdb/domainkamu.com <Tekan ctrl + d>
# userdbpw -md5 | userdb -f \
/mail/courier-imap/userdb/domainkamu.com \
user-imap@domainkamu.com set uid=1010 gid=1001 \
home=/mail/vpopmail/domains/domainkamu.com/user-imap \
mail=/mail/vpopmail/domains/domainkamu.com/user-imap/Maildir
Langkah diatas kita membuat direktori
courier-imap
dan userdb
sekaligus dan file domainkamu.com
dimana didalam file domainkamu.com
akan disimpan account user-imap
dengan password encrypt tipe -md5
dengan UID/GID
ini tergantung anda bisa definisikan atau tidak artinya kalo user tersebut ada entri di /etc/master.passwd
maka anda isi UID/GID
-nya, tapi kalo tidak anda bisa mengabaikannya, untuk direktori penyimpanan diletakan di mail=/mail/vpopmail/domains/domainkamu.com/user-imap/Maildir
dan homedirnya di home=/mail/vpopmail/domains/domainkamu.com/user-imap
, nah untuk memudahkan pekerjaan ini silahkan anda buat script kecil# echo "userdbpw -md5 | userdb -f /mail/courier-imap/userdb/domainkamu.com
user-imap@domainkamu.com set uid=1010 gid=1001
home=/mail/vpopmail/domains/domainkamu.com/user-imap
mail=/mail/vpopmail/domains/domainkamu.com/user-imap/Maildir" > /root/adduser-imap
Semua perintah diatas ditulis "sebaris" anda akan di insert ke file
adduser-imap
di direktori root
, agar bisa di eksekusi silahkan kasi mode 755
untuk file ini dan kasi PATH shell
:# vim /root/adduser-imap
Isi:/bin/sh
# chmod 766 /root/adduser-imap
Jadi jika nanti anda mo create user baru lagi anda tinggal ganti
user-imap
dengan udin misalnya
Note: Terlebih dahulu anda create user
vpopmail
dan selanjutnya create user IMAP
.
Sekarang kita konfigurasi
squirrelmail
, pada langkah sebelumnya kita telah ekstrak di direktori web server kita:# cd /www/htdocs/webmail/config
# perl conf.pl
SquirrelMail Configuration : Read: config.php (1.2.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books (LDAP)
7. Message of the Day (MOTD)
8. Plugins
9. Database
D. Set pre-defined settings for specific IMAP servers
C. Turn color on
S Save data
Q Quit
Command >>
Nah anda sekarang melihat menu setup untuk
squirrelmail
, nah silahkan anda ubah hal-hal yg perlu. pastikan sebelom langkah diatas anda telah install perl
, atau jika ada lebih menyukai cara manual. anda bisa melakukan langkah seperti:# pwd
# /www/htdocs/webmail/config
# cp config.php config.php.old
# vim config
Edit opsi seperlunya
Selain anda menggunakan script kecil
conf.pl
, anda bisa mengedit langsung file config .php
.3.2.4 Pengujian dan pemeriksaan.
Untuk ini anda wajib melakukan pengujian, silahkan anda gunakan mailer favorit anda misalnya coba anda kirim email keluar dengan menggunakan
mutt
atau pine
, setelah itu anda check log
file di /var/log/qmail/qmail-send/current
coba apakah pesannya model gini:@400000003d10e18016ad32dc new msg 442
@400000003d10e18016afa3dc info msg 442: bytes 2513 from <owner-freebsd-questions@FreeBSD.ORG> qp 70883 uid 1003
@400000003d10e18017d63604 starting delivery 1283: msg 442 to local kumprang.or.id-budsz@kumprang.or.id
@400000003d10e18017d8aaec status: local 1/10 remote 0/255
@400000003d10e18018ffe50c delivery 1283: success: did_0+0+1/
@400000003d10e18019050d5c status: local 0/10 remote 0/255
@400000003d10e1801909ef5c end msg 442
Kalo seperti diatas berarti pengiriman sudah OK, kalo belom coba anda teliti apakah daemon dah running atau belom, sama halnya dengan anda ngepop email dari mesin lain misalnya anda menggunakan outlook express, anda silahkan setting untuk server email anda, dan login/passwordnya. coba anda bisa nggak ngepop email berikut ngirimnya.
Untuk web base mail coba anda browse dengan Internet Explorer atau Netscape. coba anda browse
http://www.domainkamu.com/webmail
kalo pas pertama menampilkan login
dan password squirrelmail
berati langkah pertama dah OK, selanjutnya anda coba login misalnya user-imap@domainkamu.com
dan input juga passwordnya
, trus anda anda bisa liat tampilan layaknya email yahoo berarti dah OK selanjutnya anda juga testing untuk pengiriman via web mail ini kalo misalnya ada pesan permission deny
untuk inbox anda tolong check permission /mail/vpopmail/domains/domainkamu.com/user
pastikan karena memang defaultnya mode 600
untuk homedir
mail user ini dan owner usernya vpopmail
maka agar bisa dipake bersamaan dengan squirrelmail
maka anda ubah ke mode 755
. Untuk keamanan memang ini rentan karena user lain bisa membaca hanya dengan login shell
, kalo tidak anda ubah untuk owner yang lebih aman. nah memang sampe tulisan ini dibuat masih menjadi delematis, mengigat vpopmail
ini pasangannya dengan sqwebmail
untuk itu kita rada repot jika pake squirrelmail
karena squirrelmail
ini tidak "kenal" POP
protokol dia hanya bisa IMAP protokol
.
Jika ada pesan atau kritik silahkan anda layangkan sepucuk elektron ke budsz@kumprang.or.id mengigat memang saya juga masih newbie.
Tidak ada komentar:
Posting Komentar