Friday, October 19, 2007

MailServer Linux menggunakan Qmail

+++++++++++++++++++++++++++

Apliasi yg diperlukan:

+++++++++++++++++++++++++++

1.qmail-1.03.tar.gz

merupakan source aplikasi mail server (qmail MTA).

2.ucspi-tcp-0.88.tar.gz

merupakan program bantu yang menjalankan aplikasi mail server (qmail), sehingga qmail tidak berjalan dalam mode standalone.

3.daemontools-0.76.tar.gz

merupakan suatu paket yang menghasilkan beberapa tools untuk proses monitoring dan controlling layanan-layanan (service) server. Program ini akan menghasil beberapa tools diantaranya:

-svc

-multilog

-setuidgid

-svscan



4.checkpassword-0.90.tar.gz



merupakan program tambahan yang berfungsi untuk

mengautentikasi dalam proses pop3 .

5.sqwebmail-3.4.1.tar.gz

merupakan program aplikasi webmail yang mendukung qmail MTA dengan berbagai macam fitur dan didukung bermacam-macam proses autentikasi. Untuk menggunakan aplikasi webmail ini tentunya diasumsikan kita telah menginstal apache web server terlebih dahulu.

Menginstall paket-paket program

=======================================

1. Menginstall ucspi-tcp-0.88.tar.gz.

=======================================

Lakukan proses ini sebagai root:

-Ekstrak paket ucspi-tcp-0.88.tar.gz (sebaiknya di direktori /usr/local/src )

# tar -xzvf /path/to/ucspi-tcp-0.88.tar.gz

-Kompilasi dan setup ucspi-tcp-0.88

# cd ucspi-tcp-0.88

# make

# make setup check

==========================================

2. Menginstal daemontools-0.76.tar.gz

==========================================

-Create directory /package

# mkdir -p /package

# chmod 1755 /package

# cd /package

-Ekstrak paket daemontools-0.76.tar.gz

# tar -xzvf /path/to/daemontools-0.76.tar.gz

-Kompilasi and setup daemontools-0.76

# cd admin/daemontools-0.76/

# package/install

====================================

3. Menginstall qmail-1.03.tar.gz

====================================

-Ekstrak qmail-1.03.tar.gz ( sebaiknya di dalam direktori /usr/local/src )

# tar -xzvf /path/to/qmail-1.03.tar.gz

-Buat direktori /var/qmail sebagai direktori utama tempat seluruh program qmail terinstall

# mkdir /var/qmail

-Buat user dan group yang akan menjalankan program-program qmail

# groupadd nofiles

# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias

# useradd -g nofiles -d /var/qmail -s /bin/false qmaild

# useradd -g nofiles -d /var/qmail -s /bin/false qmaill

# useradd -g nofiles -d /var/qmail -s /bin/false qmailp

# groupadd qmail

# useradd -g qmail -d /var/qmail -s /bin/false qmailq

# useradd -g qmail -d /var/qmail -s /bin/false qmailr

# useradd -g qmail -d /var/qmail -s /bin/false qmails

-Kompilasi qmail package dan setup qmail-1.03

# cd qmail-1.03

# make setup check

# ./config-fast hostname_with_FQDN

contoh:

# ./config-fast mail.nurulfikri.com

-Buat user alias utk email postmaster,root dan mailer-daemon .

# echo "admin" > ~alias/.qmail-postmaster

# echo "admin" > ~alias/.qmail-root

# echo "admin" > ~alias/.qmail-mailer-daemon

# chmod 644 ~alias/.qmail*

catatan:

admin adalah user yang ada pada sistem

-Tambahkan template Maildir (default delivery sistem utk qmail ) ke directori /etc/skel

# /var/qmail/bin/maildirmake /etc/skel/Maildir

-Tambahkan pula template dot-qmail ke /etc/skel

# echo "./Maildir/" > /etc/skel/.qmail

-Buat file "rc" dan letakkan di direktori /var/qmail, isi file "rc" sbb:
---------------------------------------------------------------

#!/bin/sh

exec env - PATH="/var/qmail/bin:$PATH" \

qmail-start "`cat /var/qmail/control/defaultdelivery`"

---------------------------------------------------------------

-Buat agar file "rc" executable

# chmod 755 /var/qmail/rc

-Buat File "defaultdelivery" dan letakkan di direktori /var/qmail/control , isi file tsb hanya satu baris yang menunjukkan mail direktori sbb:

-----------------------------

./Maildir/

-----------------------------

-Buat symbolic link untuk kompatibelity dengan mail server lama "sendmail"

# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

catatan:

-Jika sebelumnya telah terinstall sendmail, maka matikan dahulu service sendmail sbb:

# /etc/rc.d/init.d/sendmail stop

or

# service sendmail stop

dan lakukan sbb....

# mv /usr/lib/sendmail /usr/lib/sendmail.old

# mv /usr/sbin/sendmail /usr/sbin/sendmail.old

-selanjutnya agar service sendmail tidak diaktifkan setiap mesin boot , maka lakukan sbb:

# chkconfig --del sendmail

-Lalu Uninstall sendmail jika perlu

-Buat directori supervise di dalam direktori /var/qmail

# mkdir -p /var/qmail/supervise/qmail-send/log

# mkdir -p /var/qmail/supervise/qmail-smtpd/log

# mkdir -p /var/qmail/supervise/qmail-pop3d/log

-Buat scrïpts-scrïpts "run" supervise
-scrïpt "run" untuk qmail-send yang akan diletakkan di direktori "/var/qmail/supervise/qmail-send". Isi dari scrïpt "run" tsb sbb:

------------------------

#!/bin/bash

exec /var/qmail/rc

------------------------

-Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-send/run

-scrïpt "run" untuk loging qmail-send yang akan diletakkan di direktori "/var/qmail/supervise/qmail-send/log" . Isi dari scrïpt "run" tsb sbb:
-----------------------------------------------------------------------------

#!/bin/bash

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

-----------------------------------------------------------------------------
-Jangan lupa buat file "run" ini executable

# chmod 755 /var/qmail/supervise/qmail-send/log/run

-scrïpt "run" untuk qmail-smtpd yang akan diletakkan di direktori "/var/qmail/supervise/qmail-smtpd".Isi dari scrïpt "run" tsb sbb:
-------------------------------------------------------------------------------

#!/bin/bash

QMAILDUID=`id -u qmaild`

NOFILESGID=`id -g qmaild`

MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" ]; then

echo QMAILDUID, NOFILESGID, or MAXSMTPD is unset in

echo /var/qmail/supervise/qmail-smtpd/run

exit 1

fi

exec /usr/local/bin/softlimit -m 2000000 \

/usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \

-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

--------------------------------------------------------------------------------

-Jangan lupa buat file "run" ini executable

# chmod 755 /var/qmail/supervise/qmail-smtpd/run

-scrïpt "run" untuk loging qmail-smtpd yang akan diletakkan di direktori "/var/qmail/supervise/qmail-smtpd/log".Isi dari scrïpt "run" tsb sbb:

-------------------------------------------------------------------------------

#!/bin/bash

exec /usr/local/bin/setuidgid qmaill \

/usr/local/bin/multilog t /var/log/qmail/smtpd

-------------------------------------------------------------------------------

-Jangan lupa buat file "run" ini executable

# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

-scrïpt "run" untuk qmail-pop3d yang akan diletakkan di direktori "/var/qmail/supervise/qmail-pop3d". Isi dari scrïpt "run" tsb sbb:

-------------------------------------------------------------------------------

#!/bin/bash

exec /usr/local/bin/softlimit -m 2000000 \

/usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \

your.hostname /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1

-------------------------------------------------------------------------------

catatan:

kata "your.hostname" pada isi file "run" diatas diganti dgn nama komputer/hostname/domain anda sesuai dengan yang terdaftar pada DNS server.

-Jangan lupa buat file "run" ini executable

# chmod 755 /var/qmail/supervise/qmail-pop3d/run

-scrïpt "run" untuk logging qmail-pop3d yang akan diletakkan di direktori "/var/qmail/supervise/qmail-pop3d/log". Isi dari scrïpt "run" tsb sbb:
------------------------------------------------------------------------

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill \

/usr/local/bin/multilog t /var/log/qmail/pop3d

--------------------------------------------------------------------------

-Jangan lupa buat file "run" ini executable

# chmod 755 /var/qmail/supervise/qmail-pop3d/log/run

-Setting concurrencyincoming,concurrencylocal dan concurrencyremote

# echo 20 > /var/qmail/control/concurrencyincoming

# echo 20 > /var/qmail/control/concurrencylocal

# echo 20 > /var/qmail/control/concurrencyremote

-Buat direktori-direktori logging

# mkdir -p /var/log/qmail/smtpd

# mkdir -p /var/log/qmail/pop3d

# chown qmaill /var/log/qmail

# chown qmaill /var/log/qmail/smtpd

# chown qmaill /var/log/qmail/pop3d

-Buat File seleksi relay email dan diberi nama "tcp.smtp" diletakkan di /etc

# echo '127.:allow,RELAYCLIENT=""' > /etc/tcp.smtp

# echo '192.168.1.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

# chmod 644 /etc/tcp.smtp.cdb

-Buat symbolic link semua service qmail (qmail-smtpd,qmail-send dan qmail-pop3d) ke "/service" direktori

# ln -s /var/qmail/supervise/qmail-send /service

# ln -s /var/qmail/supervise/qmail-smtpd /service

# ln -s /var/qmail/supervise/qmail-pop3d /service

-Buat startup scrïpt untuk service-service qmail dan diletakkan di "/etc/rc.d/init.d ",scrïpt "qmail" berisi sbb:
-------------------------------------------------------------------------------

#!/bin/bash
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin

export PATH

QMAILDUID=`id -u qmaild`

NOFILESGID=`id -g qmaild`

case "$1" in

start)

echo "Starting qmail"

if svok /service/qmail-send ; then

svc -u /service/qmail-send

else

echo qmail-send supervise not running

fi

if svok /service/qmail-smtpd ; then

svc -u /service/qmail-smtpd

else

echo qmail-smtpd supervise not running

fi

if [ -d /var/lock/subsys ]; then

touch /var/lock/subsys/qmail

fi

if svok /service/qmail-pop3d ; then

svc -u /service/qmail-pop3d

else

echo qmail-pop3d supervise not running

fi

;;

stop)

echo "Stopping qmail..."

echo " qmail-smtpd"

svc -d /service/qmail-smtpd

echo " qmail-send"

svc -d /service/qmail-send

if [ -f /var/lock/subsys/qmail ]; then

rm /var/lock/subsys/qmail

fi

echo " qmail-pop3d"

svc -d /service/qmail-pop3d

;;

stat)

svstat /service/qmail-send

svstat /service/qmail-send/log

svstat /service/qmail-smtpd

svstat /service/qmail-smtpd/log

svstat /service/qmail-pop3d

svstat /service/qmail-pop3d/log

echo

qmail-qstat

;;

doqueue|alrm|flush)

echo "Flushing timeout table and sending ALRM signal to qmail-send."

/var/qmail/bin/qmail-tcpok

svc -a /service/qmail-send

;;

queue)

qmail-qstat

qmail-qread

;;

reload|hup)

echo "Sending HUP signal to qmail-send."

svc -h /service/qmail-send

;;

pause)

echo "Pausing qmail-send"

svc -p /service/qmail-send

echo "Pausing qmail-smtpd"

svc -p /service/qmail-smtpd

echo "Pausing qmail-pop3d"

svc -p /service/qmail-pop3d

;;

cont)

echo "Continuing qmail-send"

svc -c /service/qmail-send

echo "Continuing qmail-smtpd"

svc -c /service/qmail-smtpd

echo "Continuing qmail-pop3d"

svc -c /service/qmail-pop3d

;;



+++ok, it's done++++

No comments:

Post a Comment