Hoofdstuk 4 Mail Transfer Agents Email is een van de belangrijkste services die je als systeembeheer voor je gebruikers moet verzorgen. Als er geen mail verstuurd of ontvangen kan worden, kunnen de gebruikers meestal niet verder met hun werk. De mailserver werkend houden heeft dus een hoge prioriteit. Daarom gaan we deze week uitgebreid aandacht besteden aan Mail Transfer Agents (MTA s). Het programma bestaat uit de volgende onderdelen: De volgende MTA s installeren in een groepje van 4 studenten: Sendmail Postfix Qmail Exim Mail-backup verzorgen via MX fallback. Mailing-loops onderzoeken. Virtuele domeinen ondersteunen. Onderzoek van vorig jaar naar gebruikte mail software evalueren. 4.1 Email Email zoals we het nu gebruiken bestaat al ruim 20 jaar. Maar in de jaren zeventig bestonden er al systemen waarmee elektronische berichten konden worden uitgewisseld. Deze systemen waren redelijk spartaans en konden niet zelf email routeren, zodat de gebruikers zelf de route in het emailbericht moesten plaatsen. Pas in de jaren tachtig begonnen de academische en militaire instellingen email te gebruiken zoals wij die nu kennen. Een emailbericht bestaat uit een SMTP enveloppe en de inhoud. Net als bij een normale brief bevat de enveloppe de adresgegevens van de verzender 13
en de ontvanger, die worden gebruikt voor het versturen. SMTP staat voor Simple Mail Transfer Protocol. Dit protocol is inderdaad vrij simpel en dat is waarschijnlijk ook de reden dat het de algemene emailstandaard is geworden. Het protocol wordt gebruikt voor het versturen van emailberichten tussen de SMTP client (de verzender) en de SMTP server (de ontvanger). Het SMTP protocol wordt beschreven in RFC 2821. De inhoud van een emailbericht is gespecificeerd in RFC 2822 en bestaat uit een header en een body. De header bevat informatie over het emailbericht, zoals de verzender, de ontvanger, het onderwerp, etcetera. Soms worden de verzender en ontvanger uit de header gebruikt om de SMTP enveloppe te maken. De body van de email bevat de tekst van het emailbericht. 4.2 Mail Transfer Agents Er zijn veel MTA s beschikbaar 1, open source en commercieel. In dit practicum kijken we naar de vier meest bekende open source MTA s. Sendmail is met zijn vele mogelijkheden de meest complexe van deze vier en wordt ook nog steeds het meest gebruikt. Postfix en qmail strijden om de titel van meest veilige MTA. Qmail, en in mindere mate postfix, verschilt van de andere omdat het bestaat uit vele kleine programma s met ieder hun eigen taak. Deze methode sluit goed aan bij UNIX filosofie, maar compliceert ook de integratie van qmail in de UNIX daemon structuur. Exim is GPL software en is gebaseerd op de MTA smail. Jullie gaan werken in groepen van vier. Elke student kiest één van deze pakketten uit en installeert deze op zijn eigen machine 2. De voorkeur gaat uit naar een pakket dat je nog niet eerder hebt geïnstalleerd. Besteed bij de installatie aandacht aan de volgende punten: Zorg dat je de source code van een betrouwbare locatie haalt. Ga naar de officiële site voor je MTA en download de source code van een nabije officiële mirror site. Omdat het belangrijk is dat de MTA correct en veilig werkt wordt de source code van een MTA vaak voorzien van een digitale PGP/GPG handtekening. Als jouw pakket gesigneerd is, probeer dan met zoveel mogelijk zekerheid 3 de geldigheid van de gebruikte sleutel en de digitale handtekening te bepalen. Beschrijf welke stappen je hiervoor hebt ondernomen. Bepaalde configuratie-opties moet je aangeven voor de compilatie, zodat de functionaliteit in de executable gecompileerd kan worden. De 1 Zoeken in de Wikipedia op mailserver levert al een lijst met 23 MTA s. 2 Dwz. op je eigen Linux of BSD machine, niet op je imac. 3 Binnen redelijke grenzen natuurlijk. Ga bijvoorbeeld niet de ontwikkelaars mailen. 14
meeste opties plaats je in een configuratiefile die de MTA inleest als deze gestart wordt. Het is handig om te beginnen met een voorbeeldconfiguratiefile voor een installatie die veel lijkt op wat jij wilt. Deze kan je dan aanpassen aan jouw specifieke eisen. Dat is makkelijker dan de hele configuratiefile zelf te schrijven. Configureer jouw mailsoftware zo dat je mail lokaal aanpakt voor je eigen subdomein, waarvoor je ook nog steeds DNS verzorgt. Compileer de MTA en zorg ervoor dat de software en alle bijbehorende configuratiefiles in een geheel aparte directory komen te staan. 4.3 Mail-backup Als het goed is, heb je nu een werkende MTA voor je eigen domein. Maar als je server om een of andere reden niet bereikbaar zou zijn, wil je niet dat je mail teruggestuurd wordt. Daarom is de volgende stap het configureren van backup MTA s op andere servers. Een van deze backup MTA s zal jouw mail ontvangen als je eigen MTA niet bereikbaar is. Een backup mailserver zorgt hier dus voor een backup voor het ontvangen van mail. Dit moet je niet verwarren met een server die backups maakt van (mail)data. Twee backup MTA s is meestal wel voldoende. Regel dit binnen je eigen groep van vier. Het opzetten van mail-backup voor een domein bestaat uit twee stappen: De DNS informatie voor je domein aanpassen, zodat de backup mailservers gevonden kunnen worden. De MTA op de backup mailserver moet zo geconfigureerd worden dat hij mail accepteert om te relayen voor het domein waar hij backup voor is. Beschrijf deze twee stappen voor jouw domein. 4.4 Mailing-loops Maak met je eigen groep een email-loop door met behulp van aliassen email door te sturen van domein naar domein. De loop moet de lengte 4 hebben. Stuur een email vanuit je @os3.nl emailadres naar de loop en kijk wat er gebeurt. Kan je het gedrag dat de MTA vertoont bij deze email-loop veranderen? Wat doet een MTA nog meer om mail-loops te voorkomen? 4.5 Virtuele domeinen Een MTA kan de mailserver zijn voor meerdere domeinen. De MTA zal dan mail ontvangen en versturen alsof er voor elk domein een aparte mailserver 15
is. Het domein is virtueel, omdat het alleen bestaat in de MTA. Maak een nieuw subdomein van os3.nl met een MX entry aan op de DNS server. Breid de MTA van je eigen domein uit met virtuele domeinen functionaliteit en laat de mail voor dit nieuwe virtuele domein afleveren op je MTA. 4.6 Sendmail X Sendmail X is compleet nieuw en heeft een modulaire structuur. Er is een document van ruim 300 pagina s waarin de architectuur, de specificatie en de implementatie van sendmail X is beschreven. Dit document is te vinden via www.sendmail.org. Het is nuttig om te lezen wat voor keuzes de ontwikkelaars van sendmail hebben gemaakt bij het ontwerp van sendmail X. Voor deze opdracht gaan jullie één van deze keuzes nader bekijken. MTA s gebruiken soms headervelden die je nergens in de RFC s terugvindt. Ze worden gebruikt om informatie aan de header toe te voegen, zodat mailtransport efficiënter kan verlopen. Een van die headervelden is het Delivered-To: veld. Onderzoek aan de hand van het sendmail X document wat de exacte betekenis is van het Delivered-To: veld en hoe het gebruikt wordt. Kijk ook of de betekenis van dit veld verschilt met andere MTA s die dit veld ook gebruiken. 4.7 Opzet onderzoek MTA gebruik Sendmail heeft tijden lang de claim op hun website gehad dat 75% van alle email afgehandeld werd door sendmail MTA s. Dit heeft ertoe geleid dat andere mensen, zoals de auteur van qmail, onderzoek hebben gedaan naar het marktaandeel van de verschillende MTA s. Deze onderzoeken meten meestal het aantal geïnstalleerde MTA s per type. Sendmail heeft naar aanleiding van de resultaten zijn claims moeten aanpassen. Vorig jaar hebben de studenten van SNB ook een onderzoek uitgevoerd naar de MTA s die gebruikt worden op het internet. De resultaten en de gebruikte onderzoeksmethode van vorig jaar zijn te vinden op de website www.os3.nl/~jelmer/smtpscanner.html. Er zijn destijds naar aanleiding van dit MTA onderzoek wel klachten geweest van systeem- en netbeheerders die plotseling een grote hoeveelheid SMTP connecties te verwerken kregen. Omdat al deze connecties afkomstig waren vanuit het os3.nl domein werd het systeembeheer hier terecht op aangesproken. Het is jullie taak om het onderzoek van vorig jaar te bestuderen en te kijken hoe de toen gebruikte onderzoeksmethode verbeterd kan worden. Denk hierbij onder andere aan de zichtbaarheid, de betrouwbaarheid en de implementatie van het onderzoek. 16
4.8 Bonus bonusopdracht Voor veel mensen is ongevraagde commerciële email ofwel spam een groot probleem. Er zijn veel mogelijkheden voor het filteren van spam. Eén van de mogelijkheden is om spam mail te weigeren tijdens de SMTP sessie. Onderzoek de mogelijkheden van deze manier van spamfilteren en implementeer deze methode op je eigen MTA. bonusopdracht Gerelateerd aan het spam probleem is de authenticatie en encryptie van een SMTP sessie. Denk hierbij aan de problemen die veroorzaakt worden door open relays. Er zijn SMTP extensies, zoals SMTP-AUTH en TLS/SSL, die de authenticatie en encryptie voor je kunnen verzorgen. SMTP-AUTH 4 wordt vooral gebruikt voor authenticatie met een gebruikersnaam/wachtwoord combinatie. SSL en de opvolger TLS gebruiken certificaten om te zorgen voor een versleutelde verbinding. Het STARTTLS commando start hierbij de encryptie tijdens een SMTP sessie. Deze encryptie en authenticatie methodes worden vaak gecombineerd. Door TLS te gebruiken kan de buitenwereld niet zien hoe de SMTP- AUTH connectie tot stand komt. Bestudeer deze methodes en voeg authenticatie toe aan je MTA. 4 SMTP-AUTH is een Simple Authentication and Security Layer (SASL) profiel. SMTP-AUTH wordt beschreven in RFC2554 en SASL in RFC2222. 17