#/bin/sh echo "preparing to retrieve and install daemontools" echo "making directory /package" mkdir -p /package chmod 1755 /package echo "downloading daemontools-0.75 into /package, extracting" echo "and installing" cd /package wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz tar -zxvf daemontools-0.76.tar.gz cd admin/daemontools-0.76/ package/install echo "downloading ucspi-tcp-0.88 to /usr/src" cd /usr/src wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz echo "extracting and installing." tar -zxvf ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 make make setup check echo "Preparing to install qmail" echo "Creating users" 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 qmailr useradd -g qmail -d /var/qmail qmails mkdir /var/qmail echo "changing directories to /usr/src" cd /usr/src echo "Getting the qmail source files" wget http://cr.yp.to/software/qmail-1.03.tar.gz echo "extracting the qmail source" tar -zxvf qmail-1.03.tar.gz echo "changing to the qmail source directory" cd /usr/src/qmail-1.03 echo "compiling and installing qmail" make setup check echo "configuring your qmail installation to match your server's DNS name" ./config-fast {replace this with your mailserver name} echo "creating the standard alias accounts" echo "Be sure to go back later and assign real email addresses to these" cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 ~alias/.qmail* echo "Setting the default delivery type to Maildir" echo ./Maildir/ > /var/qmail/control/defaultdelivery echo "Adding a ./Maildir/ .qmail file to the /etc/skel directory" /usr/src/qmail-1.03/maildirmake /etc/skel/Maildir echo ./Maildir/ > /etc/skel/.qmail echo "Creating /var/qmail/rc file" echo 'exec env - PATH="/var/qmail/bin:$PATH" \' > /var/qmail/rc echo 'qmail-start "`cat /var/qmail/control/defaultdelivery`"' >> /var/qmail/rc chmod 755 /var/qmail/rc #removing existing sendmail executibles in case they exist rm -f /usr/lib/sendmail /usr/sbin/sendmail echo "Making the qmail sendmail wrapper available to MUAs" ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail echo "Creating authorized relay clients for your network" printf "{replace with your subnet}:allow,RELAYCLIENT=" > /etc/tcp.smtp # example printf "192.168:allow,RELAYCLIENT=" > /etc/tcp.smtp printf '""' >> /etc/tcp.smtp printf "\n:allow\n" >> /etc/tcp.smtp tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.temp < /etc/tcp.smtp echo "Getting the life with qmail qmailctl file" cd /var/qmail/bin wget http://www.lifewithqmail.org/qmailctl-script-dt70 mv qmailctl-script-dt70 qmailctl ln -s /var/qmail/bin/qmailctl /etc/rc.d/rc.qmail chmod 755 /var/qmail/bin/qmailctl echo "creating a symlink to qmailctl in /usr/sbin" ln -s /var/qmail/bin/qmailctl /usr/sbin/qmailctl echo "Adding the command to start qmailctl to /etc/rc.d/rc.local" echo "/etc/rc.d/rc.qmail start # starting qmail" >> /etc/rc.d/rc.local echo "making the lwq supervise and log directories" mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log echo "Creating the service directory runfiles." echo "Creating /var/qmail/supervise/qmail-send/run" echo "#!/bin/sh" > /var/qmail/supervise/qmail-send/run echo "exec /var/qmail/rc" >> /var/qmail/supervise/qmail-send/run echo "Creating /var/qmail/supervise/qmail-send/log/run" echo "#!/bin/sh" > /var/qmail/supervise/qmail-send/log/run echo "exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail" >> /var/qmail/supervise/qmail-send/log/run echo "creating /var/qmail/control/concurrencyincoming" echo "and /var/qmail/supervise/qmail-smtpd/run" echo 20 > /var/qmail/control/concurrencyincoming chmod 644 /var/qmail/control/concurrencyincoming echo "#!/bin/sh" > /var/qmail/supervise/qmail-smtpd/run echo "QMAILDUID=`id -u qmaild`" >> /var/qmail/supervise/qmail-smtpd/run echo "NOFILESGID=`id -g qmaild`" >> /var/qmail/supervise/qmail-smtpd/run echo "MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`" >> /var/qmail/supervise/qmail-smtpd/run echo "if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" ]; then" >> /var/qmail/supervise/qmail-smtpd/run echo "echo QMAILDUID, NOFILESGID, or MAXSMTPD is unset in" >> /var/qmail/supervise/qmail-smtpd/run echo "echo /var/qmail/supervise/qmail-smtpd/run" >> /var/qmail/supervise/qmail-smtpd/run echo "exit 1" >> /var/qmail/supervise/qmail-smtpd/run echo "fi" >> /var/qmail/supervise/qmail-smtpd/run echo 'exec /usr/local/bin/softlimit -m 2000000 /usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1' >> /var/qmail/supervise/qmail-smtpd/run echo "creating /var/qmail/supervise/qmail-smtpd/log/run " echo "#!/bin/sh" > /var/qmail/supervise/qmail-smtpd/log/run echo "exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd" >> /var/qmail/supervise/qmail-smtpd/log/run echo "Setting rights on the supervise directories" 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 echo "making the log directories" mkdir -p /var/log/qmail/smtpd chown qmaill /var/log/qmail /var/log/qmail/smtpd echo "making links in /service" ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service echo "DONE. Now wasnt this painless" echo "Thanks, Dan. Thanks, Dave."