Exim

I løpet av et typisk døgn i ikke-UKE-tid mottar vi 3000-4000 og leverer 12000-14000 e-post-meldinger på Samfundet. (I UKEtid er tallene typisk rundt 150 000 og 450 000.) All denne e-posten blir flyttet på av programvaren Exim, på cassarossa.

Vi bruker exim4, rett fra standard Debian Etch. Exim i Debian kommer med ganske ekstensiv konfigurasjon, som vi har gjort noen lokale endringer i. Exim-konfigen ligger i cassarossa:/etc/exim4/. I denne katalogen finner vi filen update-exim.conf.conf, som er konfigurasjonsfilen til skriptet update-exim4-conf, derav navnet. Denne filen forteller hvordan konfigurasjonen skal hentes og genereres. I Debian ligger ikke den faktiske konfigurasjonsfilen exim bruker i /etc/exim4 - her ligger bare konfigurasjon som forteller hvordan den egentlige konfigfilen skal bli. Skriptet update-exim.conf knar på konfigurasjonen og plasserer den i /var/lib/exim4/config.autogenerated, som exim leser. Denne filen skal aldri røres for hånd.

Vi bruker såkalt split config, (dc_use_split_config='true' i update-exim.conf.conf). Det fører til at konfigurasjonen genereres ut fra alle filene i /etc/exim4/conf.d/ og underkataloger. Konfigurasjonen er svær, men godt kommentert. Steder med norske kommentarer er stort sett lokale endringer (-:

Vi relayer e-post for dc_other_hostnames i update-exim4.conf. I tillegg til samfundet.no og uka.no er vi MX for et antall tilknyttede domener, som stv.no og pirum.no, samt noen private domener.

E-post relayes fritt for nettene 129.241.93.0/24 og 2001:700:300:1800::/64, i tillegg til autentiserte SMTP-tilkoblinger (se under).

Vi støtter selvsagt både SSL og TLS på IPv6 og IPv4.

Ting verdt å merke seg

Konfigurasjonen er ganske standard for Debian, men noe er verdt å merke seg for vårt oppsett.

Vanlig levering til brukere

Alle brukere mottar e-post på <brukernavn>@samfundet.no og <brukernavn>@uka.no. Det skilles ikke mellom de to domenene, e-post leveres til samme sted for brukere, men ikke nødvendigvis for e-postlister eller generelle aliaser. berge@samfundet.no og berge@uka.no er altså i praksis samme adresse, men de fiktive Amsit-listene bergefoo@samfundet.no og bergefoo@uka.no er forskjellige.

UKEmennesker vet gjerne ikke at de har en @samfundet.no-adresse, og Samfundet-brukere vet gjerne ikke det motsatte.

Vi bruker Maildir på brukernes hjemmeområder for lagring av e-post.

Greylisting

Vi har hjemmelaget, men effektivt system for greylisting. Idet en ny e-post kommer inn, sjekkes det om vi har mottatt e-post fra den IPen og domenet de siste syv dager. Dersom vi ikke har gjort det, sendes det en midlertidig feil tilbake til senderen, med beskjed om å prøve igjen om kun kort tid. Når det har gått ett minutt, anses senderen som whitelistet. Alle korrekt konfigurerte tjenere skal prøve igjen, og når de gjør det, leveres e-posten. Fascinerende mange spammere reagerer aldri på feilmeldinger og prøver aldri igjen.

Systemet består av en postgres-database på cirkus, greylisting, som inneholder én tabell med oversikt over domener og IPer vi har mottatt e-post fra tidligere. I main/30_samfundet-greylisting og acl/40_exim4-config_check_data finnes det enkel konfigurasjon som basically får exim til å spørre databasen om vi har mottatt e-post tidligere.

Svartelisting / Blacklisting

  1. Åpne /etc/exim4/local_sender_blacklist i din favoritteditor (vim...) og Legg til adressen(e) som skal svartelistes, wildcards er tillatt (f.eks *@apple.com, eller steve.jobs@apple.com).
  2. Kjør sudo update-exim4.conf for å oppdatere konfigurasjonsfilen
  3. Kjør sudo /etc/init.d/exim4 reload for å laste inn den nye konfigurasjonsfilen i mailserveren

Amsit

Amsit er kort fortalt et tynt, hjemmelaget e-post-listesystem gjengene administrer selv. Skriptet /root/exim4-amsit/update-amsit-lists.pl generer konfigurasjon for hver Amsitgruppe og lager filene router/4*_amsit-$gruppe. Disse autogeneres og overskrives hver gang noen kjører skriptet, så det er ikke mye poeng i å redigere dem selv. Amsit-konfigurasjonsfilene i Exim slår opp i databasefilene til Amsit (BerkeleyDB-filer), legger på noen headere for å indikerer at det er listepost og sender av gårde. Amsit er egentlig bare en litt avansert aliases-fil - en e-post-adresse som er en Amsit-liste ekspanderer bare til en rekke mottakere.

Autentisert SMTP

SMTP-tilkoblinger med TLS eller SSL kan autentiseres, og det åpnes da for fri relay. I auth/30_exim4-config er måtene å autentisere seg på konfigurert. Vi støtter den vanlige IMAP-metoden PLAIN, samt GSSAPI, som gir oss Kerberos-autentisert SMTP. Begge metodene snakker SASL og krever SSL eller TLS, såfremt man ikke er på Samfundet-trådnett. (De lærde kan få diskutere om vi burde tillate GSSAPI for ukrypterte forbindelser - i så fall er implementering en øvelse for leseren). Med PLAIN-metoden skaffer SASL TGT for brukeren.

GSSAPI-autentiseringen skjer med principalen smtp/cassarossa.samfundet.no@SAMFUNDET.NO, lagret i keytaben /etc/exim4/exim.keytab, lesbar av Debian-exim. I /etc/init.d/exim4 er KRB5_KTNAME satt i ENV til å peke på keytaben.

Så, i acl/30_exim4-config_check_rcpt, sørger en simpel accept authenticated = * for at alle autentiserte tilkoblinger får fri relay.

Mailman

Vi har en Mailman-installasjon på Samfundet. Denne har historisk sett ikke skilt mellom domener, men har hatt mulighet for det siden våren 2008. Det er ønskelig å opprette mailman-lister med et domene for å hindre feilleveranse. Mailman har en egen router router/499_itk-mailman og en egen transport transport/30_itk-config_mailman_pipe.

For å opprette en ny e-post-liste i mailman bruker du kommandoen newlist som root på cassarossa. newlist tar listenavn, administrators mailadresse og administrasjonspassord som parametere (eks: % newlist minliste minadresse@samfundet.no hemmelig). Gå deretter inn i administrasjonsgrensesnittet på http://lists.samfundet.no/ og sett opp listen slik du vil ha den.

Aliaser for mailman-listene ligger i /etc/aliases.mailman på cassarossa. Denne må manuelt oppdateres med aliaser for hver ny liste (newlist gir deg kommandoen).

Andre ting som kanskje kan utdypes

Legge til nytt e-postdomene

Vi antar her at vi skal lage nytt underdomene av uka.no, mer presist 2013.uka.no.

På cirkus:

  1. Legg til domenet i /etc/bind/pz/uka.no. Det skal være en MX -record.
  2. Endre serial i toppen av filen
  3. Reload bind: /etc/init.d/bind reload

På cassarossa:

  1. Legg til domenet i /etc/exim4/update-exim4.conf.conf
  2. Kjør update-exim4.conf (som sudo)
  3. Reload exim4: /etc/init.d/exim4 reload

Listesøk

Lenker: Start, amsit, internt epost-oppsett, kurs, medlemsdb2, lister, saslauthd

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2014-03-26 13:37 | Revisjon: 23 (historie, blame) | Totalt: 1479 kB | Rediger