Difference between revisions of "Mail"

(Mail)
(Exempel av mailflöde)
Line 12: Line 12:
 
Användaren nsg som har en IMAP postlåda.
 
Användaren nsg som har en IMAP postlåda.
  
     nsg@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se   --->  Mailbox (Dovecot)
+
     nsg@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se --->  Mailbox (Dovecot)
 +
 
 +
Användaren frost som har en forward i Postfix "på det klassiska sättet" via en virtual_alias_maps.
 +
 
 +
    frost@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se  --->  mx.kth.se  --->  frost@example.com
 +
 
 +
Användaren fabian som har en forward i Sieve (rekommenderade nya sättet).
 +
 
 +
    fabian@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se  --->  mx.kth.se  --->  fabian@example.com
  
 
== Stacken Mailservrar ==
 
== Stacken Mailservrar ==

Revision as of 21:51, 1 August 2018

Mail

Utifrån kommer mail in via KTH:s MX, vilket syns tydligt om man kollar på Stackens DNS. Det är uppsatt så för att KTH vill att mail under *.kth.se ska gå via dem, det har dessutom den stora fördelen att vi slipper mycket spam.

   $ dig +short mx stacken.kth.se
   10 mx.kth.se.

E-post som KTH vet att vi hanterar, som t.ex. *@stacken.kth.se eller *@karspexet.se går sedan till incoming-email.stacken.kth.se.

Exempel av mailflöde

Användaren nsg som har en IMAP postlåda.

   nsg@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se  --->  Mailbox (Dovecot)

Användaren frost som har en forward i Postfix "på det klassiska sättet" via en virtual_alias_maps.

   frost@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se  --->  mx.kth.se  --->  frost@example.com

Användaren fabian som har en forward i Sieve (rekommenderade nya sättet).

   fabian@stacken.kth.se  --->  mx.kth.se  --->  incoming-email.stacken.kth.se  --->  mx.kth.se  --->  fabian@example.com

Stacken Mailservrar

Stacken har i dag två servrar som kan ta i mot e-post, mail-1 och mail-2.stacken.kth.se. Båda är identiska och provisionerade av en Ansible playbook. För tillfället ligger den i ett privat repo som bara ett fåtal har tillgång till, prata med nsg för att få tillgång. Planen är att flytta det till en maskin på Stacken så att alla administratörer har tillgång.

Maskinerna är virtuella maskiner på Marlin. Planen är att en av maskinerna ska flytta till fysiska separat hypervisor.

Maskinerna kör keepalived för att hantera IP-numret som incoming-email.stacken.kth.se pekar på, ingen av dem har högre vikt så IP:t prioriterar inte en maskin över den andra, det är garanterat att bara en maskin åt gången har IP-nummret. Det gör det säkert att ta ner en av maskinerna för service m.m. utan att ta ner några tjänster.

Tjänster

Postfix

MTA på maskinerna är Postfix, den har en ganska strikt konfiguration där bara en vitlista av adresser får prata SMTP för att leverera mail. Då all inkommande mail ska gå via KTH kommer vi undan med det. Normalt sätt måste man tillåta hela världen prata SMTP med en så de kan leverera mail, men vi vet att det bara är Stackens maskiner och KTH som pratar med oss. Är man inloggad med användarnamn och lösenord så får man dock prata SMTP med servern, det är viktigt för att kunna skicka mail från t.ex. Thunderbird när du är hemma på ett icke-Stackennät.

Vi har smtp.stacken.kth.se som pekar på service-IP:t.

Dovecot

Dovecot är en utmärkt IMAP-server som vi använder för lokala mailboxar. Postfix använder dessutom Dovecot för auth mot SMTP. Mailboxarna är det enda "state" som finns på maskinerna, de är replikerade mellan mail-1 och mail-2 med Dovecots inbyggda replikering. Det gör att även om du får mail på mail-1 och den går ner så kan mail-2 direkt efter fortsätta och ta över jobbet transparent.

Sieve

Sieve filter är ett regelspråk för att skapa e-postfilter som ligger på servern. Ett plugin till Dovecot hanterar dina filter på inkommande mail. Vi kör även en Sieve Server vilket gör att du kan redigera dina filer i e-postläsare som stödjer Sieve Management Protocol, ett exempel på det är Thunderbird med ett plugin. Filtren replikeras mellan servrarna.

Forwards & Alias-baserade mailinglistor

Gamla mailing-list.conf används inte längre, just nu används en kraftigt städad lista i Git-repot för både forwards och klassiska alias-baserade mailing-listor. Planen är att avveckla forwards och be folk använda Sieve filters i stället, samt många alias-baserade mailing-listor bör bli riktiga mailing-listor, t.ex. Mailman.

Mailman

Stackens mailman-server heter karamell.stacken.kth.se och hanterar ett flertalet listor. Servern har en egen Postfix som tar i mot post från Stackens övriga mailservrar, utgående post går sedan tillbaka till smtp.stacken.kth.se.