Linux – Friheden til systemadministration: Version 2.8.20060113 – 2021-01-07 | ||
---|---|---|
forrige | Kapitel 8. E-post servere | næste |
Exim er en mailserver som er nem at sætte op til almindeligt brug. Den har også en del avancerede funktioner, som for eksempel indbygget filter og vacation-program. Og så skulle den iøvrigt være sendmail-kompatibel.
Man finder den her: http://www.exim.org. Her er der dog ingen rpm-filer, men dem kan man finde på http://rpmfind.net.
Der følger desværre ikke nogen fil med til automatisk at lave en rpm-fil, så hvis man selv vil lave den, så er det vigtigt at følge installationsvejledningen.
Exim styres fra 1 stor opsætningsfil, som ligger i /etc eller for SuSE 9.0 i /etc/exim/. Opsætningsfilen er indelt i 7 dele, og det er normalt ikke nødvendigt at ændre i den for at få et virksomt system, da det enten er noget som er defineret i systemet, eller fordi standard-værdierne er fornuftigt valgt.
Dog skal man sikre sig at kommandoen hostname giver det rigtige navn. Ellers skal man rette det i opsætningsfilen.
Her er de 7 dele af opsætningsfilen kort beskrevet:
Main configuration: Her indstiller man værtnavn, videresendelse mm. Dette er det eneste sted det kan være nødvendigt at rette noget for at få det til at virke.
Transports configuration: Dette er hvordan en mail bliver leveret til destinationen. Dette er kun selve leveringen som er defineret her.
Directors configuration: Når en mail skal afleveres lokalt, er det her man definerer hvad der skal ske med den. Man kan for eksempel indsætte et kald af en virusskanner, og det er også her man kan bestemme om .forward filer skal bruges. Herfra kalder man en transport som blev defineret ovenfor.
Routers configuration: Dette er opsætning af hvordan post skal sendes videre til andre maskiner. Man kan også her skanne for virus, men i modsætning til ovenstående, så forhindrer man her virus i at komme ud, og ikke ind. Også her kaldes en transport.
Retry configuration: Her indstiller man timeoutværdier, både for levering af post til andre maskiner, men også lokalt, som hvis en virus-skanner er gået død, og det er et krav at al post skal skannes. Man kan for eksempel også lade nogen domæner have en meget lang timeout, mens man kan sætte den til meget lidt for andre.
Rewrite configuration: Man kan her lave regler til at omskrive emailadresser, men dette skal man normalt holde sig fra at gøre, medmindre man ved hvad man gør, og har en god grund til dette. At gøre dette bliver af nogen betragtet som noget forbudt, og det er kun nødvendigt i sjældne og specielle tilfælde.
Authentication configuration: Under authentication har man mulighed for at åbne for relay af post fra specifikke maskiner. Det sker ved at man skal identificere sig over for mailserveren. Dette bliver defineret i denne del.
Hvis procmail altid skal bruges til at afleve posten til indbakken, så skal dette rettes til i opsætningsfilen.
Følgende skal sættes ind i exim.conf under Transports configuration:
# This transport is used for local mail deliveries with procmail procmail_pipe: driver = pipe command = /usr/bin/procmail -d $local_part return_path_add delivery_date_add envelope_to_add check_string = "From " escape_string =">From " user = $local_part group = mail
Og under directors skal følgende indsættes lige før linjen med localuser:
procmail: driver = localuser transport = procmail_pipe
Når man bruger Exim og Mailman sammen, så behøver man ikke at tænke på at rette forskellige alias-adresser til når man opretter og nedlægger lister. Dette sker automatisk, men kræver at man retter lidt i exim.conf.
Hvis man ikke vil dette, så skal man i stedet for huske at rette i filen /etc/alias hver gang man opretter eller nedlægger en liste.
I afsnittet Main configuration indsætter man følgende lige før linjen hvor der står "end":
## Mailman definitions MAILMAN_HOME=/var/mailman MAILMAN_DATA=/var/mailman MAILMAN_WRAP=MAILMAN_HOME/mail/wrapper MAILMAN_UID=mail MAILMAN_GID=mail
Disse rettes selvfølgelig til, så de passer med installationen.
Under Transports configuration skal man indsætte:
# Mailman definitions list_transport: driver = pipe command = MAILMAN_WRAP post ${lc:$local_part} current_directory = MAILMAN_HOME home_directory = MAILMAN_HOME user = MAILMAN_UID group = MAILMAN_GID list_request_transport: driver = pipe command = MAILMAN_WRAP mailcmd ${lc:$local_part} current_directory = MAILMAN_HOME home_directory = MAILMAN_HOME user = MAILMAN_UID group = MAILMAN_GID list_admin_transport: driver = pipe command = MAILMAN_WRAP mailowner ${lc:$local_part} current_directory = MAILMAN_HOME home_directory = MAILMAN_HOME user = MAILMAN_UID group = MAILMAN_GID
Dette skal igen være før "end"
Og endelig under Directors configuration skal følgende indsættes (det _skal_ stå lige før "end", da det er de sidste regler som skal kontrolleres).
# Mailman definitions # Accept mail to listname-owner and send it to listname-admin list_owner_director: driver = smartuser require_files = MAILMAN_DATA/lists/${lc:$local_part}/config.db suffix = "-owner" new_address = "${lc:$local_part}-admin@${domain}" # Accept mail to owner-listname and send it to listname-admin owner_list_director: driver = smartuser require_files = MAILMAN_DATA/lists/${lc:$local_part}/config.db suffix = "owner-" new_address = "${lc:$local_part}-admin@${domain}" list_admin_director: driver = smartuser suffix = "-admin" require_files = MAILMAN_DATA/lists/${lc:$local_part}/config.db transport = list_admin_transport list_request_director: driver = smartuser suffix = "-request" require_files = MAILMAN_DATA/lists/${lc:$local_part}/config.db transport = list_request_transport list_director: driver = smartuser require_files = MAILMAN_DATA/lists/${lc:$local_part}/config.db transport = list_transport
Herefter kan man blot oprette og nedlægge lister uden at bekynre sig om at sørge for at posten bliver sendt til Mailman programmet.