Senin, 16 November 2009

Slackware Mail Server dengan Qmailrocks

Sebelum sebelumnya saya menggunakan sendmail sebagai MTA (Mail Transfer Agent) di server, tapi ada masalah yang sedikit mengganggu. Sebenarnya sih ga terlalu beresiko, tapi saya ga nyaman dengan itu. Apa masalahnya? sendmail secara default menggunakan user system, jadi untuk buat email account user harus punya account di system (bisa diakali dengan shell /bin/false). Rasanya teralu memenuhi server. Maka dari itu saya ingin mencoba Qmail yang data usernya ga perlu ada di system


Goolgling dan terus mencari referensi akhirnya ketemu beberapa situs yang membantu saya setup mail server dengan Qmailrocks. Stepnya Panjang Sekali, jadi harus siapin alat tempur dulu, kopi, cemilan dll. ;) Oke Langsung aja step2nya sebagai berikut :




# cd /
# mkdir downloads
# cd downloads
# wget -c http://www.qmailrocks.org/downloads/qmailrocks.tar.gz


  • Extract File nya dengan perintah:


# tar xvzf qmailrocks.tar.gz


  • Eksekusi file installasi nya dengan perintah:


# /downloads/qmailrocks/script/install/qmr_install_linux-st1.script


  • Patch Qmail dengan perintah:


# /downloads/qmailrocks/script/util/qmail_big_patches.script


  • Pindah ke directory source qmail, install dan konfigurasi ssl untuk qmail:



# /usr/src/qmail/qmail-1.03
# make man && make setup check
# ./config_fast mail.fadhlyridha.com  <== Sesuaikan
#
make cert <== Akan ada wizard, isi dengan informasi anda
#
chmod 640 /var/qmail/control/servercert.pem
# chown qmaild.qmail /var/qmail/control/servercert.pem
# ln -s /var/qmail/control/servercert.pem /var/qmail/control/clientcert.pem
# chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem



  • Install paket ucspi-tcp-0.88, ketik perintah:


# cd /usr/src/qmail/ucspi-tcp-0.88
# patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
# make && make setup check


  • Install daemon tools, ketik perintah :


# cd /package/admin/daemontools-0.76/src/
# patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch
# cd /package/admin/daemontools-0.76/
# ./package/install


  • Install ezmlm-0.53, ketik perintah:


# cd /downloads/qmailrocks
# tar xvzf ezmlm-0.53-idx-0.41.tar.gz
# cd ezmlm-0.53-idx-0.41
# make && make setup


  • Install autorespond-2.0.5, ketik perintah:


# cd /downloads/qmailrocks
# tar xvzf autorespond-2.0.5.tar.gz
# cd autorespond-2.0.5
# make && make install


  • Install Vpopmail, ketik perintah:


# cd /downloads/qmailrocks
# tar xvzf vpopmail-5.4.13.tar.gz
# cd vpopmail-5.4.13
# ./configure --enable-logging=p
# make && make install-strip


  • Install Vqadmin, ketik perintah:


# cd /downloads/qmailrocks
# tar zxvf vqadmin-2.3.6.tar.gz
# cd vqadmin-2.3.6
# ./configure --enable-cgibindir=/path/to/your/cgi-bin --enable-htmldir=/path/to/your/html/directory
# make && make install-strip


  • Konfigurasi httpd.conf untuk cgi-bin nya, tambahkan script ini di httpd.conf :


<Directory "/path/to/your/cgi-bin/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>


  • Konfigurasi .htaccess nya, ketik perintah:


# cd /path/to/your/cgi-bin/vqadmin
# pico .htaccess <== tentukan dimana akan disimpan file .htpasswd
# chown apache .htaccess
# chmod 644 .htaccess
# htpasswd -bc /path/to/where/you/want/to/store/the/password/file/.htpasswd admin admin_password
# chmod 644 /path/to/where/you/want/to/store/the/password/file/.htpasswd
# /etc/rc.d/rc.httpd restart


  • Coba akses vqadmin lewat browser http://mail.fadhlyridha.com/cgi-bin/vqadmin/vqadmin.cgi dan masukkan username dan password yang barusan dibuat

  • Kalau tidak ada masalah, lanjut dengan menambahkan domain, di menu add domain dan jangan lupa set password untuk postmasternya.

  • Install maildrop-1.6.3 dengan perintah:


# cd /downloads/qmailrocks
# tar zxvf maildrop-1.6.3.tar.gz
# cd maildrop-1.6.3
# ./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota
# make && make install-strip && make install-man


  • Install Qmailadmin dengan perintah:


# cd /downloads/qmailrocks
# tar zxvf qmailadmin-1.2.9.tar.gz
# cd qmailadmin-1.2.9
# ./configure --enable-cgibindir=/path/to/your/cgi-bin --enable-htmldir=/path/to/your/html/directory
# make && make install-strip


  • Tahap Akhir Installasi (tapi belum beres lho), ketik perintah:


# /downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script
# pico /var/qmail/supervise/qmail-pop3d/run <== cari "mail.example.com" ganti dengan domain anda
#
pico /var/qmail/supervise/qmail-smtpd/run <== cari "mail.example.com" ganti dengan domain anda
#
qmailctl stop
# echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
# qmailctl cdb
# echo some_address > /var/qmail/alias/.qmail-root
# echo some_address > /var/qmail/alias/.qmail-postmaster
# echo some_address > /var/qmail/alias/.qmail-mailer-daemon
# ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
# chmod 644 /var/qmail/alias/.qmail*


  • Uninstall sendmail


# /etc/rc.d/rc.sendmail stop (to stop Sendmail)
# pkgtool <== pilih remove dan uninstall sendmail nya.
# mv /usr/lib/sendmail /usr/lib/sendmail.old
# mv /usr/bin/sendmail /usr/bin/sendmail.old
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# chmod 0 /usr/lib/sendmail.old /usr/bin/sendmail.old /usr/sbin/sendmail.old
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/bin/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail


  • Testing Qmail nya, ketik perintah :


# /downloads/qmailrocks/scripts/util/qmr_inst_check <==  kalau pesan yang keluar tidak masalah berarti sudah oke.
#
qmailctl stop
# qmailctl start
# qmailctl stat <== keluar hasil kira kira seperti ini:

/service/qmail-send: up (pid 29956) 2 seconds
/service/qmail-send/log: up (pid 29960) 2 seconds
/service/qmail-smtpd: up (pid 29963) 2 seconds
/service/qmail-smtpd/log: up (pid 29968) 2 seconds
/service/qmail-pop3d: up (pid 29971) 2 seconds
/service/qmail-pop3d/log: up (pid 29972) 2 seconds
messages in queue: 0
messages in queue but not yet preprocessed: 0

# telnet localhost 110 <== kira kira akan keluar seperti ini, lakukan testing

Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
+OK <16658.1054485137@yourserver.com>
user postmaster@mydomain.com (enter your username here. remember to use the full e-mail address)
+OK
pass your_password
+OK
quit
+OK
Connection closed by foreign host.

# telnet localhost 25 <== kira kira akan keluar seperti ini, lakukan testing

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 somewhere.anywhere.com ESMTP
ehlo localhost
250-somewhere.anywhere.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-STARTTLS
250-PIPELINING
250 8BITMIME
starttls
220 ready for tls
quit
quit
Connection closed by foreign host.


  • Install Courier IMAP, ketik perintah:


# cd /downloads/qmailrocks/
# tar jxvf courier-imap-3.0.8.tar.bz2
# cd courier-imap-3.0.8
# ./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authdaemon --without-authldap --disable-root-check --with-ssl --with-authchangepwdir=/usr/local/libexec/authlib
# make && make install-strip && make install-configure
# cd /usr/local/etc
# cp imapd.dist imapd
# cp imapd-ssl.dist imapd-ssl
# /usr/local/sbin/mkimapdcert

# pico imapd-ssl
Pastikan konfigurasi file tersebut memiliki baris berikut:
IMAPDSSLSTART=YES
TLS_CERTFILE=/usr/local/share/imapd.pem

# cp /usr/local/libexec/imapd.rc /etc/rc.d/rc.imap
# cp /usr/local/libexec/imapd-ssl.rc /etc/rc.d/rc.imaps
# /etc/rc.d/rc.imap start
# /etc/rc.d/rc.imaps start

Lakukan testing dengan perintah berikut:

#telnet localhost 143

Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc. See COPYING for distribution information.
a login postmaster@mydomain.com my_password
a OK LOGIN Ok. (successful login!)
a logout (logs you out)
* BYE Courier-IMAP server shutting down
a OK LOGOUT completed
Connection closed by foreign host


  • Install Courrierpasswd agar user dapat mengganti password, ketik perintah:


# cd /downloads/qmailrocks
# tar zxvf courierpassd-1.1.0-RC1.tar.gz
# cd courierpassd-1.1.0-RC1
# ./configure
# make && make install

# pico /etc/services <== tambahkan baris berikut:
courierpassd 106/tcp #for /etc/xinetd.d/courierpassd

#/etc/rc.d/rc.inetd restart

lakukan testing courierpasswd, ketik perintah:
#
telnet localhost 106

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 courierpassd v0.30 hello, who are you?
user postmaster@qmailrocks.org
200 Your password please.
pass my_password (don't be a dumbass. Put your own password here)
200 Your new password please.
newpass my_new_password (don't be a dumbass. Put your new password here)
200 Password changed, thank-you.
quit
200 Bye.
Connection closed by foreign host.


  • Sampai disini sebenarnya email server sudah bisa jalan, tinggal konfigurasi2 tambahan seperti kemampuan  spamassasin, clamav dll. Tapi bagi saya segini dulu cukup. Udah panjang banget.. capek.. :(

  • Tahap akhir tinggal konfigurasi squirrelmailnya (webmail) nya untuk dapat berjalan dengan server tersebut.


Semangat.. dan selamat mencoba.. :D

2 komentar: