E-mail merupakan salah satu layanan di internet yang paling populer setelah web, dan oleh karena itu membicarakan e-mail di sini adalah hal yang penting. Berikut ini akan diberikan langkah-langkah dalam membangun mailserver dengan menggunakan Qmail+Vpopmail. 1. Membuat user dan group untuk Qmail dan Vpopmail #pw groupadd -n nofiles -g 81 #pw groupadd -n qmail -g 82 #pw useradd -n alias -u 81 -g 82 -d /var/qmail/alias -s /nonexistent #pw useradd -n qmaild -u 82 -g 81 -d /var/qmail -s /nonexistent #pw useradd -n qmaill -u 83 -g 81 -d /var/qmail -s /nonexistent #pw useradd -n qmailp -u 84 -g 81 -d /var/qmail -s /nonexistent #pw useradd -n qmailq -u 85 -g 82 -d /var/qmail -s /nonexistent #pw useradd -n qmailr -u 86 -g 82 -d /var/qmail -s /nonexistent #pw useradd -n qmails -u 87 -g 82 -d /var/qmail -s /nonexistent #mkdir /home/vpopmail #pw groupadd -n vchkpw -g 88 #pw useradd -n vpopmail -u 88 -g 88 -c Vpopmail -d /home/vpopmail -s /nonexistent 2. Instalasi Qmail #tar -zxvf qmail-1.03.tar.gz #cd qmail-1.03 #ee conf-split ganti dengan angka 200 #ee conf-spawn ganti dengan angka 255 Download file qmailqueue-patch, yang nantinya berguna untuk menjalankan program qmailscanner dan antivirus. #wget http://www.qmail.org/qmailqueue-patch #patch -p1 < qmailqueue-patch Kompile qmail #make setup check #./config-fast domain.com Install Daemon Tools #tar -zxvf daemontools-0.70.tar.gz #cd daemontools-0.70 #make;make setup check #tar -zxvf ucspi-tcp-0.88.tar.gz #cd ucspi-tcp-0.88 #make;make setup check #cp tcpserver /usr/local/bin #cp tcprules /usr/local/bin Membuat User dan Direktori untuk menyimpan log-log dan script untuk menjalankan Qmail #mkdir /var/qmail #mkdir /var/log/qmail /var/log/qmail/qmail-send #mkdir /var/log/qmail/qmail-smtpd /var/log/qmail/qmail-pop3d #chown -R qmaill:wheel /var/log/qmail #chmod -R 750 /var/log/qmail #mkdir /service /var/qmail/supervise #chmod 755 /service #chmod 755 /var/qmail/supervise #mkdir /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-smtpd/log #chmod +t /var/qmail/supervise/qmail-smtpd #mkdir /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-send/log #chmod +t /var/qmail/supervise/qmail-send #mkdir /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3d/log #chmod +t /var/qmail/supervise/qmail-pop3d sekarang edit file /var/qmail/rc #ee /var/qmail/rc , dan ganti menjadi #!/bin/sh env env - PATH="/var/qmail/bin:/usr/local/bin" \ qmail-start ./Maildir/ kemudian : #chmod 700 /var/qmail/rc Script untuk menjalankan qmail-smtp #ee /var/qmail/supervise/qmail-smtpd/run, dan isinya #!/bin/sh exec /usr/local/bin/tcpserver -p -R -x /etc/tcp.smtp.cdb -u 82 -g 81 -c 100 0 smtp rblsmtpd -r relays.ordb.org /var/qmail/bin/qmail-smtpd 2>&1 ubah permission nya sehingga bisa di eksekusi #chmod 755 /var/qmail/supervise/qmail-smtpd/run membuat script untuk menjalankan qmail-smtp log #ee /var/qmail/supervise/qmail-smtpd/log/run, dan isinya #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-smtpd 2>&1 dan ubah permissionnya sehingga bisa di eksekusi #chmod 755 /var/qmail/supervise/qmail-smtpd/log/run script untuk menjalankan qmail-send #ee /var/qmail/supervise/qmail-send/run , dan isinya #!/bin/sh exec /var/qmail/rc , kemudian ubah permission nya sehingga bisa di eksekusi #chmod 755 /var/qmail/supervise/qmail-send/run buat script untuk menjalankan qmail-send log #ee /var/qmail/supervise/qmail-send/log/run , dan isinya #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-send 2>&1 ubah permissionnya sehingga bisa di eksekusi #chmod 755 /var/qmail/supervise/qmail-send/log/run buatlah direktori Maildir di dalam direktori /etc/skel/ #/var/qmail/bin/maildirmake /etc/skel/Maildir Buat relay client #ee /etc/tcp.smtp , dan isinya 127.0.0.1:allow,RELAYCLIENT="" memberikan ijin IP/Network mana saja yang bisa menggunakan layanan smtp dari mailserver 192.168.10.:allow,RELAYCLIENT="" , atau 192.158.20.11:allow,RELAYCLIENT="" buat database baru #/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp #chmod 644 /etc/tcp.smtp Buat mail yang nantinya di gunakan untuk menghandle mail bounce, #cd /var/qmail/alias #echo postmaster@domain.com > .qmail-root #echo postmaster@domain.com > .qmail-postmaster #echo postmaster@domain.com > .qmail-mailer-daemon #ln -s /var/qmail/supervise/* /service/ 6. Install Vpopmail (Virtual Domain dan POP) #tar -zxvf vpopmail-5.2.1.tar.gz #cd vpopmail-5.2.1 #./configure --enable-roaming-users=y --enabling-logging=y --enable-defaultquota=15000000000 --enable-ip-alias-domains=y --enable-default-domain=domain.com #make;make install-strip Kemudian edit file crontab #crontab -e dan tambahkan baris berikut 40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null Buat script untuk menjalankan qmail-pop #ee /var/qmail/supervise/qmail-pop3d/run , dan isinya #!/bin/sh exec /usr/local/bin/tcpserver -H -R -v -c100 0 pop3 /var/qmail/bin/qmail-popup domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 ubah permissionnya sehingga bisa di eksekusi #chmod 755 /var/qmail/supervise/qmail-pop3d/run buat script untuk menjalankan log qmail-pop #ee /var/qmail/supervise/qmail-pop3d/log/run , dan isinya #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-pop3d 2>&1 dan ubah permissionnya menjadi #chmod 755 /var/qmail/supervise/qmail-pop3d/log/run Dan yang terakhir adalah membuat script untuk start/stop qmail #ee /usr/local/etc/rc.d/qmail , dan isinya #! /bin/sh #PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin #export PATH case "$1" in start) echo -n "Starting qmail: svscan" cd /var/qmail/supervise env - PATH="/var/qmail/bin:/usr/local/bin:/usr/bin:/bin" svscan & echo $! > /var/run/svscan.pid echo "." ;; stop) echo -n "Stopping qmail: svscan" kill `cat /var/run/svscan.pid` echo -n " qmail" svc -dx /var/qmail/supervise/* echo -n " logging" svc -dx /var/qmail/supervise/*/log echo "." ;; stat) cd /var/qmail/supervise svstat * */log ;; doqueue|alrm) echo "Sending ALRM signal to qmail-send." svc -a /var/qmail/supervise/qmail-send ;; queue) qmail-qstat qmail-qread ;; reload|hup) echo "Sending HUP signal to qmail-send." svc -h /var/qmail/supervise/qmail-send echo "Sending HUP signal to qmail-pop3d." svc -h /var/qmail/supervise/qmail-pop3d ;; pause) echo "Pausing qmail-send" svc -p /var/qmail/supervise/qmail-send echo "Pausing qmail-smtpd" svc -p /var/qmail/supervise/qmail-smtpd echo "Pausing qmail-pop3d" svc -p /var/qmail/supervise/qmail-pop3d ;; cont) echo "Continuing qmail-send" svc -c /var/qmail/supervise/qmail-send echo "Continuing qmail-smtpd" svc -c /var/qmail/supervise/qmail-smtpd echo "Continuing qmail-pop3d" svc -c /var/qmail/supervise/qmail-pop3d ;; restart) echo "Restarting qmail:" echo "* Stopping qmail-smtpd." svc -d /var/qmail/supervise/qmail-smtpd echo "* Sending qmail-send SIGTERM and restarting." svc -t /var/qmail/supervise/qmail-send echo "* Restarting qmail-smtpd." svc -u /var/qmail/supervise/qmail-smtpd echo "* Sending qmail-pop3d SIGTERM and restarting." svc -t /var/qmail/supervise/qmail-pop3d ;; cdb) tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp chmod 644 /etc/tcp.smtp* echo "Reloaded /etc/tcp.smtp." ;; *) echo "Usage: $0 {start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue}" exit 1 esac exit 0 dan ubah permissionnya #chmod 755 /usr/local/etc/rc.d/qmail Untuk mengecek apakah qmail kita sudah berjalan dengan benar atau tidak #ps ax|grep qmail 19462 ?? I 0:04.65 qmail-send 19463 ?? IW 0:00.00 /usr/local/bin/tcpserver -H -R -v -c100 0 pop3 /var/qmail/bin/qmail-pop domain.com 19464 ?? I 0:00.59 qmail-lspawn ./Maildir/ 19465 ?? I 0:00.56 qmail-rspawn 19466 ?? I 0:00.33 qmail-clean 77072 p0 R+ 0:00.00 grep qmail 154 con- I 0:00.18 supervise qmail-smtpd 156 con- I 0:00.19 supervise qmail-send 158 con- I 0:00.20 supervise qmail-pop3d 163 con- I 0:00.03 /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-pop3d 165 con- I 0:00.30 /usr/local/bin/multilog t s100000 n20 /var/log/qmail/qmail-smtpd 166 con- I 0:02.37 /usr/local/bin/multilog t s 100000 n20 /var/log/qmail/qmail-send #ps ax|grep tcpserver 19461 ?? I 0:00.27 /usr/local/bin/tcpserver -H -p -R -x /etc/tcp.smtp.cdb -u82 -g81 -v -c1 19463 ?? IW 0:00.00 /usr/local/bin/tcpserver -H -R -v -c100 0 pop3 /var/qmail/bin/qmail-pop domain.com 77118 p0 R+ 0:00.00 grep tcpserver NB: domain.com di ganti dengan domain name yang FQDN [Submitted by chemod]