mkdir /root/qmail
cd /root/qmail
wget http://www.qmail.org/netqmail-1.06.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz –> inetd/xinetd substitute manages various daemon that qmail shipped with.
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz –> Provide some services such as management as well as logging though 2 interfaces service scan and supervise (svscan/supervise).
tar -xvzf netqmail-1.06.tar.gz
tar -xvzf ucspi-tcp-0.88.tar.gz
mkdir /package
mv daemontools-0.76.tar.gz /package
mkdir /var/qmail
cd /root/qmail/netqmail-1.06
cp INSTALL.ids IDS –> This file used in compilation to create users and groups for qmail
Note:- IDS file should include only the following
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmmailr
useradd -g qmail -d /var/qmail qmails
. IDS && echo $? –> To source the file in order to execute it and echo the exist status
yum install gcc gcc-c++ make flex bison bison-devel
make setup check –> To build source files
./config-fast mail.linux.org (FQDN) –> If the FQDN is not defined you can check it using hostname -f
cd /root/qmail/ucspi-tcp-0.88
yum install patch-2.5.4-31.el5 –> Make sure that the patch command is installed
patch < /root/qmail/netqmail-1.06/other-patches/ucspi-tcp-0.88.errno.patch –> this will pactch ucspi patch to the environment
make && make setup check
cd /package
tar -xvzf daemontools-0.76.tar.gz
cd /package/admin/daemontools-0.76/src
patch < /root/qmail/netqmail-1.06/other-patches/daemontools-0.76.errno.patch
cd ..
package/install
vim /var/qmail/rc –> And add the following
!/bin/sh
Using stdout for logging
Using control/defaultdelivery from qmail-local to deliver messages by default
exec env – PATH=”/var/qmail/bin:$PATH” \
qmail-start “`cat /var/qmail/control/defaultdelivery`”
chmod 755 /var/qmail/rc
mkdir /var/log/qmail
echo “./Mailbox” > /var/qmail/control/defaultdelivery
The qmailctl script
wget http://lifewithqmail.org/qmailctl-script-dt70
mv qmailctl-script-dt70 /var/qmail/bin/qmailctl
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
The supervise scripts
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
vim /var/qmail/supervise/qmail-send/run –> Add the following
!/bin/sh
exec /var/qmail/rc
vim /var/qmail/supervise/qmail-send/log/run –> Add the following
!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
vim /var/qmail/supervise/qmail-smtpd/run –> Add the following
!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z “$QMAILDUID” -o -z “$NOFILESGID” -o -z “$MAXSMTPD” -o -z “$LOCAL” ]; then
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo “No /var/qmail/control/rcpthosts!”
echo “Refusing to start SMTP listener because it’ll create an open relay”
exit 1
fi
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l “$LOCAL” -x /etc/tcp.smtp.cdb -c “$MAXSMTPD” \
-u “$QMAILDUID” -g “$NOFILESGID” 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
Note: concurrencyincoming isn’t a standard qmail control file. It’s a feature of the above script. Also, that’s -1 (dash one) on the LOCAL line and -l (dash ell) on the tcpserver line.
Note: The memory limit specified in the softlimit command may need to be raised depending upon your operating system and hardware platform. If attempts to connect to port 25 fail or remote systems are unable to send you mail, or you see a message like:
/usr/local/bin/tcpserver: error while loading shared libraries:
libc.so.6: failed to map segment from shared object: Cannot allocate memory try raising it to 3000000 or 4000000.
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
vim /var/qmail/supervise/qmail-smtpd/log/run –> Add the following
!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
mkdir -p /var/log/qmail/smtpd
chown qmaill /var/log/qmail /var/log/qmail/smtpd
rm -rf /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin
rm -rf /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib
echo root > /var/qmail/alias/.qmail-root
echo root > /var/qmail/alias/.qmail-postmaster
ln -s var/qmail/alias/.qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster
echo ‘127.:allow,RELAYCLIENT=””‘ >>/etc/tcp.smtp
qmailctl cdb
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
Recent Comments