Installasi Qmail

by : budsz ( budsz@indofreebsd.or.id )
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.2.1 qmail-1.03.tar.gz (MTA).
 2.2.2 vpopmail-5.3.8.tar.gz (Virtual email untuk protokol POP ).
 3.2.3 courier-imap-1.4.6.20020529.tar.gz (Virtual mail untuk protokol IMAP).
 4.2.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
            
              Pastiakan 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 apachenya:

              $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 apachenya:
$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:
              $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 qmailnya:

              $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.1) atau bisa persubnet (192.168.0.) artinya
              host yg bernomor ip 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: atau
              $mysql -u root -h kumprang.or.id -p
              Enter password:
              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 Alamat email ini telah dilindungi dari spam bots, anda perlukan Javascript enabled untuk melihatnya
                    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:

                Dan untuk memasukan data ke database lagi anda tinggal
              ubah tanda redirect sebaliknya, misalnya:

              $mysqldump -u root -p vpopmail < vpopmail_backup.txt
              Enter password:
            
                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 kira 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-imat 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/
              mejadi:

              $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 IMAPnya 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
              $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 Alamat email ini telah dilindungi dari spam bots, anda perlukan Javascript enabled untuk melihatnya 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 denga 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 localkumprang.or.id-budsz@kumprang.org
              @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@indofreebsd.or.id   mengigat memang saya juga masih
              newbie.

           
              $Id: Setup-WWW-Mail-Server.txt,v 1.6 2005-02-04 21:51:18+07 budsz Exp $

Related

Email Server 5477664294846812063

Posting Komentar

emo-but-icon

Follow Us

Hot in week

Recent

Comments

Side Ads

Text Widget

Connect Us

item