Qmail rocks

From Noah.org
Jump to navigationJump to search

Qmail Rocks on Ubuntu

A stock Ubuntu server install will need a few additional packages to support Qmail Rocks.

apt-get -q -y install build-essential sed flex bison autoconf
apt-get -q -y install libssl-dev
apt-get -q -y install openssl
apt-get -q -y install openssh-server
apt-get -q -y install csh
apt-get -q -y install expect
apt-get -q -y install libgdbm-dev
apt-get -q -y install libltdl3 libltdl3-dev
apt-get -q -y install mysql-server libmysqlclient15-dev # For Vpopmail MYSQL support

Virtual Hosts

When you run config-fast you set your main STMP host. If you need other virtual hosts then you must edit your rcpthosts file.

# ./config-fast mail.example.com
Your fully qualified host name is mail.example.com.
Putting mail.example.com into control/me...
Putting example.com into control/defaultdomain...
Putting example.com into control/plusdomain...
Putting mail.example.com into control/locals...
Putting mail.example.com into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to mail.example.com.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

Install qmail rocks script

Be sure to edit the few shell script variables at the top of this script. This assumes that you have Apache installed under /var/www/usr/local/apache2. If Apache is somewhere else then you will need to modify the CONFIGURATION OPTIONS section of the script.

#!/bin/sh
FQDN="mail.example.com"
CGI_BIN_PATH=/var/www/usr/local/apache2/cgi-bin
HTDOC_PATH=/var/www/usr/local/apache2/htdocs

echo "######################################################################"
echo "# Update Ubuntu packages"
echo "######################################################################"
apt-get install build-essential sed flex bison autoconf
apt-get install libssl-dev
apt-get install openssl
apt-get install openssh-server
apt-get install csh
apt-get install mysql-server libmysqlclient15-dev

echo "######################################################################"
echo "# Download qmailrocks"
echo "######################################################################"
mkdir /downloads
cd /downloads
wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
tar zxvf qmailrocks.tar.gz
/downloads/qmailrocks/scripts/install/qmr_install_linux-s1.script
/downloads/qmailrocks/scripts/util/qmail_big_patches.script

echo "######################################################################"
echo "# qmail"
echo "######################################################################"
cd /usr/src/qmail/qmail-1.03
make man && make setup check
./config-fast $FQDN
make cert
chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

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

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

echo "######################################################################"
echo "# HACK: Update modes and links "
echo "# I'm not sure why this is not happening automatically."
echo "######################################################################"
chmod 755 /var/log/qmail
mkdir -p /var/log/qmail/smtpd
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

echo "######################################################################"
echo "# EZmlm"
echo "######################################################################"
cd /downloads/qmailrocks/
tar zxvf ezmlm-0.53-idx-0.41.tar.gz
cd ezmlm-0.53-idx-0.41
make && make setup

echo "######################################################################"
echo "# Autoresponder"
echo "######################################################################"
cd /downloads/qmailrocks
tar zxvf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make && make install

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

echo "######################################################################"
echo "# Vqadmin"
echo "######################################################################"
cd /downloads/qmailrocks
tar zxvf vqadmin-2.3.6.tar.gz
cd vqadmin-2.3.6
./configure --enable-cgibindir=$CGI_BIN_PATH --enable-htmldir=$HTDOC_PATH
make && make install-strip
echo "###################################"
echo "# ADD THE FOLLOWING TO HTTPD.CONF #"
echo "# See Part 6 of Qmail Rocks       #"
echo "###################################"
echo 'AllowOverride All'
echo '<Directory "/path/to/your/cgi-bin/vqadmin">'
echo 'deny from all'
echo 'Options ExecCGI'
echo 'AllowOverride AuthConfig'
echo 'Order deny,allow'
echo '</Directory>'
echo

echo "######################################################################"
echo "# Maildrop"
echo "######################################################################"
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

echo "######################################################################"
echo "# Qmailadmin"
echo "######################################################################"
cd /downloads/qmailrocks
tar zxvf qmailadmin-1.2.9.tar.gz
cd qmailadmin-1.2.9
./configure --enable-cgibindir=$CGI_BIN_PATH --enable-htmldir=$HTDOC_PATH
make && make install-strip

echo "######################################################################"
echo "# Part 9, Finalizing the qmail installation"
echo "######################################################################"
/downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script
sed -i -e "s/mail.example.com/${FQDN}/g" /var/qmail/supervise/qmail-pop3d/run
sed -i -e "s/mail.example.com/${FQDN}/g" /var/qmail/supervise/qmail-smtpd/run
qmailctl stop
echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
qmailctl cdb
echo root > /var/qmail/alias/.qmail-root
echo root > /var/qmail/alias/.qmail-postmaster
echo root > /var/qmail/alias/.qmail-mailer-daemon
ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
chmod 644 /var/qmail/alias/.qmail*