Kapitel 8. E-post servere
Hvis du installerer rpm-pakkenimap, kan din Linux-maskine bruges som server for indgående post i et netværk. Ved installationen af pakken skulle hele opsætningen faktisk være på plads, så brugerne på de enkelte maskiner blot skal angive Linux-maskinen som postserver i deres e-post-programmer – og så naturligvis være oprettet som brugere på Linux-maskinen!
Hvis du kun har en modemforbindelse til internettet, kan du lade Linux-serveren sende og hente post for alle brugere på et lokalt netværk. Programmet fetchmail (se bogen “Linux - friheden til at lære Unix”) er ret nemt at sætte op til at hente post til flere forskellige brugere på samme tid hos internetudbydere.
Udgående post håndteres af programmet sendmail . Hvis sendmail skal acceptere at videresende udgående e-post fra andre maskiner på et lokalnet, er det nødvendigt at angive dette i filen/etc/mail/ip_allow, ellers vil forsøg på at bruge Linux-maskinen som SMTP-server blive afvist med beskeden “We do not relay”.
I/etc/mail/ip_allowskriver du adresser på enkelte maskiner eller netværk, som må bruge Linux-maskinen som udgående postserver. Hvis for eksempel alle maskiner på netværket192.168.100.0skal accepteres, skal indholdet af/etc/mail/ip_allowvære dette:
192.168.100
Hvis post kun skal accepteres fra nogle af maskinerne på netværket, skrives adresserne på de enkelte godkendte maskiner. Alternativt kan man tillade alle maskiner i eget domæne at være “relay”-maskine ved at tilføjeFEATURE(`relay_entire_domain`)i/etc/sendmail.mcog derefter køre m4 /etc/sendmail.mc /etc/sendmail.cf . Bemærk, at man skal have sendmail-cf-pakken installeret.
At tilpasse sendmail 's opsætning er i øvrigt et emne, som kan fremkalde nervøse trækninger og koldsved hos store voksne systemadministratorer. Red Hat Linux sætter sendmail ganske fornuftigt op fra starten, så medmindre du er meget videbegærlig eller masochistisk anlagt, vil vi foreslå dig at glemme alt om opsætning af sendmail , indtil det er absolut nødvendigt. Du kan med fordel erstatte Sendmail med Postfix. SeAfsnit 8.1.
8.1. Postfix
Postfixer en moderne MTA (mail transfer agent), dvs. et program til at flytte e-post fra én postserver til en anden. I mange år varSendmailden MTA, alle brugte, men i de sidste par år har det vist sig, atSendmailikke kan leve op til de sikkerhedskrav, man typisk stiller.
Postfixhar umiddelbart tre fordele:
- Skrevet af Wietse Venema, som er kendt for sin store viden og kunnen inden for edb-sikkerhed.
- Systemet er brudt ned i mange små delprogrammer. Hver komponent er lettere at overskue, og det mindsker risikoen for fejl.
- Langt de fleste komponenter behøver ikke at blive kørt som root, hvilket betyder at evt. programmerings- eller konfigureringsfejl ikke bliver nær så alvorlige.
Mandrake Linux kommer medPostfixogSendmail, og du kan under installationen vælge hvilken MTA, du vil bruge. Dette valg har du endnu ikke under Red Hat eller SuSE, og i det følgende vil vi antage at du har Red Hat kørende.
Først skal du stoppe og afinstalleresendmailinden du går i gang medPostfix.
[root@linus /root]#cd /etc/rc.d/init.d[root@linus init.d]#./sendmail stopShutting down sendmail: [ OK ][root@linus init.d]#rpm -e --nodeps sendmail
Du er nu klar til at hente og installerePostfix. Find den på[http://www.postfix.org/|http://www.postfix.org/]eller[http://rpmfind.net|http://rpmfind.net]. Se efter en fil kaldetpostfix-*.i386.rpm.
Efter du har hentet filen, skal du installere den.
[root@linus /root]#rpm -i postfix-1.1.7-1.i386.rpmpostfix-script: Warning: Creating missing Postfix pid directory postfix-script: Warning: Creating missing incoming directory postfix-script: Warning: Creating missing bounce directory postfix-script: Warning: Creating missing defer directory postfix-script: Warning: Creating missing deferred directory postfix-script: Warning: Creating missing saved directory postfix-script: Warning: Creating missing corrupt directory postfix-script: Warning: Creating missing public directory postfix-script: Warning: Creating missing private pid directory[root@linus /root]#mkdir /var/log/mail[root@linus /root]#cd /etc/rc.d/init.d[root@linus init.d]#./postfix startStarting postfix: postfix-script: starting the Postfix mail system[root@linus init.d]#chkconfig --level 3 postfix on
Nu har du fået udskiftetSendmailmedPostfix, og den nye MTA vil altid blive startet op, når du kører i runlevel 3 (den sidste kommandolinje).
Postfix er god til at tilpasse sig til dit system og behøver sjældent nogen opsætning. Du skal dog sikre dig, at kommandoen hostname giver det korrekte navn på din maskine:
[root@linus /root]#hostnamelinus.kongeh.dk
Navnet skal eksistere i DNS.
Hvis du ikke kan sende email til root@linus.kongeh.dk, så se i/var/log/maillogeller/var/log/mail/*. Her skriver postfix hvis der er noget galt.
Tip: Typisk skal man sætte at man afleverer epost til den SMTP-gateway ens internet-udbyder har (TDC harsmtp.mail.dk). Dette gøres ved at udkommentere linjen medrelayhosti filen/etc/postfix/main.cfog skrive navnet på den server man anvender:
... relayhost = smtp.mail.dk ... ...
Postfix har hjemmesiden[http://www.postfix.org/|www.postfix.org], hvor der også er en god FAQ.
8.1.1. Modtage e-mail for flere domæner samtidigt
Postfix kan nemt sættes op til at modtage e-mail fra flere domæner samtidigt, og sende disse e-mails videre til flere forskellige steder. Filen der styre dette ligger i filen/etc/postfix/virtual, der er grundlaget for databasen/etc/postfix/virtual.db.
Det første der skal sættes op, er at få Postfix til at bruge filen/etc/postfix/virtualtil at slå domæner og brugere op. I filen/etc/postfix/main.cfindsættes følgende linje:
# Filnavn: /etc/postfix/main.cf virtual_maps = hash:/etc/postfix/virtual
Og så lige den obligatoriske reload:
[root@linus /root]#/etc/init.d/postfix reload
Postfix kan ved hjælp af koden hash: se at det er filen/etc/postfix/virtual.dbder skal slås op i. Dette er en binær fil der skal genereres hver gang der sker ændringer i/etc/postfix/virtual.
Herefter kan domæner oprettes i filen/etc/postfix/virtual. For overskuelighedens skyld, er her først vist opsætning for eet domæne. Der er kun e-mailadressen postmaster@eksempel.dk , og e-mail sendes til brugeren root , der har en konto lokalt på maskinen.
# Filnavn: /etc/postfix/virtual eksempel.dk anything postmaster@eksempel.dk root
virtualkan nu afprøves ved at kompile den tilvirtual.db, hvilket skal gøres hver gang der er ændret ivirtual.
[root@linus /root]#postmap hash:/etc/postfix/virtual
Efter at have kompiletvirtualkan man udføre en reload til postfix. Gør man ikke det, vil der gå ca. 1 minut inden postfix selv opdager atvirtual.dber ændret, og så reloader denne.
Hvis man gerne vil have at al anden mail end ovenstående, skal sendes til brugeren linus , tilføjes en ekstra linje hvor der ikke er noget user-name.
# Filnavn: /etc/postfix/virtual eksempel.dk anything @eksempel.dk linus postmaster@eksempel.dk root
Mail kan også sendes videre til en helt anden bruger på en helt anden server. Herunder er brugeren abuse@eksempel.dk tilføjet, og sendes videre til et domæne udenfor serveren.
# Filnavn: /etc/postfix/virtual eksempel.dk anything @eksempel.dk linus abuse@eksempel.dk nogen@tagersigafdet.com postmaster@eksempel.dk root
Når der skal tilføjes et domæne mere, skal der være en blank linje til næste blok. Herunder er der tilføjet domænet linux.dk . E-mailreglerne for disse to domæner er de samme, så al mail der måtte komme sendes blot videre eksempel.dk . Mail til postmaster@linux.dk vil således blive sendt videre til root .
# Filnavn: /etc/postfix/virtual eksempel.dk anything @eksempel.dk linus abuse@eksempel.dk nogen@tagersigafdet.com postmaster@eksempel.dk root linux.dk anything @linux.dk @eksempel.dk
