De standaard MTA (Mail Transfer Agent) op Unix (en dus op Internet) is sendmail. Hoewel deze software zijn werk op zich prima doet, is het een draak als u meer dan de standaardzaken van uw mail-systeem vraagt. Dan komt u terecht in een configuratiebestand vol obscure commando's. De complexiteit van deze MTA maakt hem daarnaast gevoelig voor veiligheidsproblemen.

Maildir-formaat

Qmail is geschreven met veiligheid als uitgangspunt. Daarbij wordt veel meer dan bij andere toepassingen gebruik gemaakt van de faciliteiten van het besturingssysteem. Zo bestaat de software uit allerlei verschillende daemons, die op hun beurt weer draaien onder zeven verschillende user accounts.

De mailberichten zelf worden ook niet in één groot bestand opgeslagen, zoals dat bij het traditionele mbox-formaat het geval is, maar als verschillende losse bestanden. Bij de aflevering en het lezen wordt gebruik gemaakt van drie verschillende directories om de integriteit te garanderen.

Dit Maildir-formaat is door de auteur van qmail, Dan Bernstein, speciaal voor deze gelegenheid ontwikkeld. Behalve dat het veiliger is, worden zo ook locking-problemen voorkomen. Het kan zelfs over NFS worden gebruikt.

Hoewel qmail ook in mbox-formaat kan afleveren, wordt Maildir inmiddels breed ondersteund door de uitbreidingen, aanvullingen en tools die voor qmail beschikbaar zijn.

Patches

Bernstein heeft deze maand precies tien jaar geleden zijn laatste versie van qmail uitgebracht. Sindsdien heeft de open source gemeenschap allerlei patches uitgebracht. Tot een paar jaar terug moest u deze her en der bij elkaar scharrelen. Maar inmiddels is een goede installatie beschikbaar onder de naam netqmail.

Wij hebben daar zelf nog een paar patches aan toegevoegd: oversize DNS patch, qmail-date-localtime.patch.txt, netqmail-maildir++.patch (ondersteuning voor Maildir++ quota), ezmlm-idx List-Unsubscribe header patch (extra header met mail-adres voor mailing listst).

Life with qmail

Voor de installatie van qmail wordt vaak de opzet van Life with qmail gebruikt. Dat betekent dat we eerst de TCP handler UCSPI-TCP installeren (voorzien van errno.patch, nobase.patch, a_record.patch). Gevolgd door de daemontools (met errno.patch) voor het monitoren en beheren van de qmail processen.

Vergeet voor de installatie niet om sendmail uit te zetten. De init scripts voor het starten en stoppen van de qmail daemons vindt u via Life with qmail. Hetzelfde geldt voor de supervise scripts. Daar kun je ook de DNSBL lookups (anti-spam) inhaken. De configuratie van qmail staat in /usr/local/qmail/control/, ook weer in een apart bestand voor elke parameter.

Outbox

Om de qmail installatie compleet te maken, installeer je vervolgens nog een heel stel aanvullende pakketten. Hoewel er ook een POP server bij qmail zelf zit, maken we liever gebruik van de Courier daemons van Inter7. Daarvoor moet je eerst de authenticatie library installeren. Wil je problemen voorkomen als gebruikers tegelijkertijd op dezelfde box inloggen (bijvoorbeeld als ze zowel hun IMAP client als de webmail open hebben staan), dan heb je nog gamin of FAM nodig voor de synchronisatie tussen de verschillende clients.

Interessante feature van de Courier server is dat je een Outbox kunt aanmaken. Alle mail die daarin wordt geplaatst, wordt automatisch door de IMAP server doorgestuurd. Deze optie is met name interessant voor reizigers die onderweg niet altijd mail mogen versturen via de SMTP server van de internet-provider.

Scanners

Voor het scannen van binnenkomende mail maken we gebruik van clamav (anti-virus) en SpamAssassin (anti-spam). Deze laatste wordt standaard meegeleverd met de Red Hat Linux distributies. Freshclam zorgt voor de automatische opdates van de virus-definities.

Beide scanners worden aan qmail gekoppeld via simscan. Deze is geschreven in de programmeertaal C, en daarmee de snelle opvolger van het Perl-gebaseerde Qmail-Scanner.

Wilt u meerdere domeinen lokaal door dezelfde server laten afhandelen (een typische setup voor aanbieders van internet-diensten), dan gebruik je vpopmail van Inter7. Hoewel u het beheer daarvan ook op de commandline zou kunnen uitvoeren, zijn er twee goede grafische interfaces voor vpopmail beschikbaar. Met vqadmin kunt u de domeinen zelf beheren. De eigenaren van de domeinen kunnen de mailboxen van hun gebruikers weer managen via qmailadmin.

Een laatste aanvulling die we hier willen noemen is ezmlm (Easy Mailing List Manager, voorzien van idx.patch). Werkt u met grote mailing-lijsten, dan wordt een laatste belangrijke eigenschap van qmail duidelijk: deze MTA is razendsnel!

Volwassen

Wilt u een volwassen mail-systeem voor grote gebruikers of meerdere domeinen opzetten, dan kunt u niet om qmail heen. De installatie van alle hier besproken onderdelen vraagt echter wel een flinke inspanning. Zet u voor het eerst zo'n grote omgeving op, dan hebt u aan een paar dagen niet genoeg om alle ingrediënten bij elkaar te grutten, uw weg te vinden in de software en een robuuste installatie en configuratie in elkaar te zetten.

Mocht u meer willen, dan vormt het overzicht op de qmail website een goede ingang. Wie er niet uitkomt, kan voor ondersteuning terecht bij Inter7. Bron: Techworld