fbpx

qmail – the hard way

Detta är ett minnesdokument, eftersom ingen annan har lyckats särskilt bra med att dokumentera en fungerande installation av qmail från punkt A till punkt B. Och det är väl rätt typiskt när det gäller sånt här, som man gärna vill skall fungera på en gång.

Installera en mailserver borde vara lätt tycker man. Och det är det säkerligen också, om man inte har allt för höga krav, lite pengar, licenslust och en windows-server. Har man inte det, så brukar å andra sidan en mailserver under linux gå lika bra. Alternativen är många – exim, postfix, sendmail, osv och jag har alltid haft lite beslutsångest inför valet av mailserver. Men det har alltid fallit på qmail, eftersom jag är tidigt född med den servern. Den hade sin storhetstid för många år sedan. Många anser att ”det kunde ha blivit något” om det inte hade varit för bland annat licensvalet – att släppa källkoden som helt öppen och att det var upp till användarna att göra mailservern så bra som möjligt. Stoltheten bakom qmail var säkerheten, det var den säkraste mailservern som fanns. Men den har tappat lite. Funktionaliteten är lite för ”simpel” känns det som. Ändå går den som vinnare ur kampen ännu en gång, nu när jag förflyttar mailservern till en annan plats. Valet blev naturligtvis återigen qmail.

Men denna gången är det lite annorlunda. Innan jag börjat installera qmail har jag verkligen sett till att kontrollera att allt fungerar under installationen. Och den verkar faktiskt fungera denna gången. Mina höga krav har alltså lett till att jag äntligen lyckats få den exakt som jag vill ha den!

Så hur vill jag ha mailservern?

  1. Ja, med tanke på att mina internetleverantörer hittills har levererat sämre tjänster än jag själv kan frambringa – ja, vissa av deras mailservrar är faktiskt svartlistade på vissa ställen eftersom det kommer spam från dem. I vissa fall är de även svartlistade på grund av namnen de döpt adresserna till. De påminner helt enkelt för mycket om dynamiska adresser, vilket orsakar stopp i mailkedjan. Domän är det visserligen inga problem med, men många internetleverantörer har alltid varit lite griniga över relaying, så det är inget alternativ det heller.
  2. Ett problem med qmails gamla mailbox-system var att alla mail lagrades i en enda stor fil. Kraschar mailboxen så kraschar således alla mail på en enda gång. Filen blir otymplig att hantera om man har ett par tusen mail (ja, jag arkiverar och sparar på allt). Jag är inte helt säker på hur det ligger till, men en gissning är att det inte heller går att lägga upp undermappar i mailboxen med det gamla formatet. Detta har tydligen förändrats i och med att användarna själva får distribuera sin källkod. Perfekt alltså. Det kanske skall sägas att jag använder imap och inte pop. Därför krävs det, förutom qmail lite extra funktionalitet från andra serverdemoner. Mitt val har landat på courier, som klarar exakt det jag vill. Imap och undermappar. Många mail blir det!
  3. SMTP-AUTH – guld i kampen mot spam. Mail går fram, om avsändaren använder någon av serverägarens tillåtna domännamn. Om mottagaren inte tillhör servern, stoppas mailet. Användare som loggar in för att skicka mail fritas helt från den regeln och kan skicka mail precis hur som helst. Det går alltså att ha en ÖPPEN mailserver tack vare detta komplement. En annan fördel med konfigurationen jag hittat är att man samtidigt kan tillåta full relaying utan inloggning. Tack för detta tcpserver!
  4. Qmailqueue – Innan ett mail processas för inkommande trafik kan man låta mailet passera programkod man själv valt att lägga till. Vill man filtrera bort något speciellt från ett mail, så det aldrig når fram, så är detta underbart enkelt med qmail. Detta kommer dock senare, eftersom jag installerar ett kraftfullare paket (dock något långsamt i vissa fall), vid namn qmail-scanner.
  5. Spamfri!

Det var nog de viktigaste punkterna. Så hur fixar man detta utan att implodera? Jo, genom att plocka ned mitt specialanpassade paket för den här sortens installationer och sedan följa instruktionerna. Den här specifika installationen har gjorts från en Slackware-distribution. Närmare bestämt slackware 13, med så mycket som möjligt av utvecklingspaketen installerade. Installationen av antivirusprogram och spamprogram inkluderas inte i detta inlägg heller, utan detta är enbart grundinstallationen.

Instrukionerna är samlade rakt upp och ned utan någon större ingående förklaring. Dessa har jag helt enkelt inte orkat pilla in. Några grejer att tänka på är att flytta bort eventuella gamla sendmail-program från standardmapparna och istället symlänka den sendmail-applikation som följer med qmail. Instruktionerna nedan inkluderar inte detta. Faktum är att allt som handlar om att flytta/ta bort/byta namn på filer inte finns med här. Å andra sidan så tror jag att det här fungerar väldigt bra ändå. Observera även att qmail är den sändande delen i installationen, medan courier tar hand om den mottagande.

Filen tcp.smtp är enbart en mall på ipadresser jag tillåter relaying. rc.mail och rc.tcpserver startar mailsystemet utan att gnälla. Även detta är exempel på hur det kan göras (jag öppnar bland annat både port 25 och port 2525, av olika skäl). qmail bör gå att köras från inetd …

smtp   stream  tcp     nowait  qmaild  /usr/sbin/tcpd  /var/qmail/bin/tcp-env -R /var/qmail/bin/qmail-smtpd tornevall.net /bin/checkpassword /bin/false

… men jag har istället valt att dra hela systemet genom tcpserver (därav tcp.smtp). rblsmtpd som finns med i exemplen återfinns i courier-paketen. Något annat alternativ fungerar inte särskilt bra.

Installationspaketet finns på – om någon märker att något saknas, välkommen att meddela detta.

mkdir package >/dev/null
cp -v daemontools-0.76.tar.gz package
chmod -v 1755 package
tar zxf ucspi-tcp-0.88.tar.gz
cd package
tar zxf daemontools-0.76.tar.gz
rm daemontools-0.76.tar.gz
cd ..
mkdir /var/qmail
ln -s /var/qmail/control /etc/qmail
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
tar zxf qmail-smtpd-auth-0.31.tar.gz
tar zxf netqmail-1.06.tar.gz
cd netqmail-1.06
cp ../qmail-smtpd-auth-0.31/base64.c ../qmail-smtpd-auth-0.31/base64.h .
patch < ../qmail-smtpd-auth-0.31/auth.patch
patch < ../qmail-smtpd-auth-close3.patch
patch < ../outgoingip.patch
make setup check
./config-fast tornevall.net
cd ..
cd ucspi-tcp-0.88
patch < ../netqmail-1.06/other-patches/ucspi-tcp-0.88.errno.patch
make
make setup check
cd ../package/admin/daemontools-0.76/src
patch < ../../../../netqmail-1.06/other-patches/daemontools-0.76.errno.patch
cd ..
package/install
cd ../../..
tar zxf checkpassword-0.90.tar.gz
cd checkpassword-0.90
patch <../netqmail-1.06/other-patches/checkpassword-0.90.errno.patch
make
make setup check
chmod a+xr,u+s /bin/checkpassword
cd ..
tar jxf courier-imap-4.6.0.tar.bz2
cd courier-imap-4.6.0
./configure –prefix=/usr/local/courier-imap4 –with-syslog=auth –with-dirsync –with-ssl –disable-root-check
make
make install
cp imapd-ssl.rc /etc/rc.d/rc.imapd-ssl
cp imapd.rc /etc/rc.d/rc.imapd
chmod +x /etc/rc.d/rc.imapd-ssl /etc/rc.d/rc.imapd
cd ..
tar jxf courier-authlib-0.62.4.tar.bz2
cd courier-authlib-0.62.4
./configure
make
make install
make install-configure
cp authdaemond /etc/rc.d/rc.authdaemond
cp /usr/local/courier-imap4/etc/imapd.dist /usr/local/courier-imap4/etc/imapd
cp /usr/local/courier-imap4/etc/imapd-ssl.dist /usr/local/courier-imap4/etc/imapd-ssl
chmod +x /etc/rc.d/rc.authdaemond
cd ..
tar zxf cmd5checkpw-0.22.tar.gz
cp rc.mail /etc/rc.d
cp rc.tcpserver /etc/rc.d
cp qmailrc /var/qmail
cp tcp.smtp /etc
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp


Upptäck mer från Tornevall

Prenumerera för att få de senaste inläggen skickade till din e-post.

You may also like