Difference between revisions of "Mail"

Line 10: Line 10:
  
 
E-post som KTH vet att vi hanterar, som t.ex. <code>*@stacken.kth.se</code> eller <code>*@karspexet.se</code> går sedan till <code>incoming-email.stacken.kth.se</code>.
 
E-post som KTH vet att vi hanterar, som t.ex. <code>*@stacken.kth.se</code> eller <code>*@karspexet.se</code> går sedan till <code>incoming-email.stacken.kth.se</code>.
 
=== Exempel av mailflöde ===
 
 
En klassisk "mailing-list.conf"-style baserad mailing-lista som är baserad på virtual_alias_maps. I dag finns det en mailing-lists.yml i git-repot.
 
 
    TO:staff@stacken.kth.se  --->  mx.kth.se  --->  mail-N  --->  mx.kth.se  --->  frost@example.com
 
                                                      \
 
                                                        \-  --->  Mailbox (nsg)
 
 
En lista baserad på mailman, den går till mailman-servern karamell, och skickar sedan mailet ut samma väg igen.
 
 
    TO:stacken@stacken.kth.se  --->  mx.kth.se  --->  mail-N  --->  karamell  ---> mail-N  --->  mx.kth.se  --->  frost@example.com
 
                                                                                    \
 
                                                                                      \-  --->  Mailbox (nsg)
 
 
Användaren nsg till användaren fabian där båda har IMAP-lådor.
 
 
    TO:nsg@stacken.kth.se  ---> Mailbox (fabian)
 
 
Slutligen, om du mailar en adress som ej finns så går mailet på de domänerna som har mailman uppsatt på först till mail-1 eller mail-2, och sedan vidare till karamell. Det för att slippa specificera alla listor på mail-1/2. Det finns mycket möjligheter att konfigurera hur mailen flödar fram över om man t.ex. vill ha flera olika listsystem samtidigt.
 
  
 
== Stacken Mailservrar ==
 
== Stacken Mailservrar ==

Revision as of 08:35, 4 August 2018

Användaren nsg på Stacken har e-post på Stacken, han använder Stackens e-post fullt ut och får sin post levererad till Stackens servrar vilket han läser med en IMAP-klient.
Användaren frost skickar vidare sin e-post till en extern adress, via det en forward, eller via en Sieve-regel.
Servern Karamell processer Stackens listor, i det här exemplet så får både mailboxar på Stacken mail, samt en del användare har valt att skicka vidare till en extern leverantör. All mail ut från Stacken flödar alltid genom smtp.stacken.kth.se, och sedan ut genom KTH.

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, vi skickar även ut all post via KTH.

   $ 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.

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.

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

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. Reglerna 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.

För att få de här redigerade så behöver du maila staff, så länge du inte är staff och kan ändra själv.

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.