Simple step-to-step guide to install Qmail+checkpassword
with MySQL patch and with patch for Spamcontrol, SMTP authentication access.
This guide covers installation of Ucspi and daemontools too.
You could download require packages and apply them related
patchs or go directly to step 22 and download sources with patchs already
installed
-
Install daemontools that runs and monitors qmail
processes.
-
Create the directory
mkdir /usr/local/daemontools
cd /usr/local/daemontools
-
for redhat 9 install this patch before:
http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
patch -p1 < /usr/src/qmail/daemontools-0.76.errno.patch
-
Install package
tar zxvf /usr/src/qmail/daemontools-0.76.tar.gz
cd admin/daemontools-0.76
./package/install
-
Create directory for supervise processes
mkdir -p /usr/local/qmail/supervise/qmail-send/log
mkdir -p /usr/local/qmail/supervise/qmail-smtpd/log
mkdir -p /usr/local/qmail/supervise/qmail-pop3d/log
mkdir /var/log/qmail
mkdir /var/log/qmail/smtpd
mkdir /var/log/qmail/pop3d
-
Set permission for log users
chown -R qmaill /var/log/qmail
-
Create startup file for qmail-send
cat >/usr/local/qmail/supervise/qmail-send/run <<EOF
#!/bin/sh
exec /usr/local/qmail/rc.qmail
EOF
-
Create log process for this service
cat > /usr/local/qmail/supervise/qmail-send/log/run<<EOF
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
/var/log/qmail
EOF
-
Create startup file for qmail-smtpd
cat >/usr/local/qmail/supervise/qmail-smtpd/run<<EOF
#!/bin/sh
QMAILDUID=\`id -u qmaild\`
NOFILESGID=\`id -g qmaild\`
MAXSMTPD=\`cat /usr/local/qmail/control/concurrencyincoming\`
exec /usr/local/bin/softlimit -m 4000000
\\
/usr/local/bin/tcpserver -v -p -x /etc/tcp/smtp.cdb -c "\$MAXSMTPD"
\\
-u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp \\
/usr/local/bin/rblsmtpd -r relays.ordb.org \\
sh -c '{ test -z "\$TCPREMOTEHOST" && [ "\$TCPREMOTEIP" != "127.0.0.1" ] ; } \\
&& echo "451 bad reverse DNS
\$TCPREMOTEIP" \\
|| /usr/local/qmail/bin/qmail-smtpd \\
/usr/local/qmail/bin/checkpassword /bin/true' 2>&1
EOF
-
Create log process for this service
cat >/usr/local/qmail/supervise/qmail-smtpd/log/run<<EOF
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
\\
/var/log/qmail/smtpd
EOF
-
Create startup file for pop3
cat > /usr/local/qmail/supervise/qmail-pop3d/run<<EOF
#!/bin/sh
exec /usr/local/bin/softlimit -m 4000000
\\
/usr/local/bin/tcpserver -v -x /etc/tcp/pop-3.cdb -R -H -l 0 0 pop-3 \\
/usr/local/qmail/bin/qmail-popup
\\
host.domain /usr/local/qmail/bin/checkpassword \\
/usr/local/qmail/bin/qmail-pop3d Maildir 2>&1
EOF
-
Create log process for this service
cat >/usr/local/qmail/supervise/qmail-pop3d/log/run<<EOF
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
\\
/var/log/qmail/pop3d
EOF
-
Make these scripts runnable with
chmod 755 /usr/local/qmail/supervise/qmail-send/run
chmod 755 /usr/local/qmail/supervise/qmail-send/log/run
chmod 755 /usr/local/qmail/supervise/qmail-smtpd/run
chmod 755 /usr/local/qmail/supervise/qmail-smtpd/log/run
chmod 755 /usr/local/qmail/supervise/qmail-pop3d/run
chmod 755 /usr/local/qmail/supervise/qmail-pop3d/log/run
-
Create concurrencyincoming
echo 20 > /usr/local/qmail/control/concurrencyincoming
chmod 664 /usr/local/qmail/control/concurrencyincoming
-
add mail filters
echo '*@*@*' > /usr/local/qmail/control/badrcptpatterns
echo '*!*' >> /usr/local/qmail/control/badrcptpatterns
echo '*@*@*' > /usr/local/qmail/control/badmailpatterns
echo '*!*' >> /usr/local/qmail/control/badmailpatterns
-
Link startap directory in /services
ln -s /usr/local/qmail/supervise/qmail-pop3d /service
ln -s /usr/local/qmail/supervise/qmail-send /service
ln -s /usr/local/qmail/supervise/qmail-smtpd /service
-
Download startup script from
http://www.ebruni.it/docs/qmail_mysql/bin/qmaild and
cp qmaild /etc/rc.d/init.d/qmaild
chmod 755 /etc/rc.d/init.d/qmaild
-
Remove sendmail
/etc/rc.d/init.d/sendmail stop
rpm -e --nodeps sendmail
-
Remove old pop3
vi /etc/xinetd.d/ipop3 e impostare disable=yes
service xinetd restart
-
startup qmail
/etc/rc.d/init.d/qmaild start
-
insert qmaild in the runlevel
chkconfig --add qmaild
chkconfig --level 235 qmaild on
-
create a link to simulate sendmail
ln -s /usr/local/qmail/bin/sendmail /usr/sbin/sendmail