Sette opp Postfix på Ubuntu 14.04

Postfix er en populær, open source MTA (Mail Transfer Agent), som brukes på rundt en fjerdedel av mailserverne på internett. Denne guiden viser hvordan man setter opp Postfix på Ubuntu 14.04 som en “send-only” SMTP-server, så den kan sende mail med lokale applikasjoner, dvs. de som er installert på samme server som Postfix er.

Før du starter må følgende være på plass:

  • et gyldig domene som peker til serveren
  • serverens hostname bør matche dette domenet/subdomenet (sjekk serverens hostname med kommandoen hostname). Hos DO blir hostname satt til navnet på dropleten, men kan også endres i /etc/hostname og /etc/hosts (kjør service hostname restart etter endring).

Installere Postfix

Det enkleste er å installere Postfix og en del andre programmer med pakken mailutils (kjør alltid apt-get update før en installering for å få siste oppdaterte versjon):

sudo apt-get install mailutils

Dette vil installere Postfix og flere programmer som Postfix trenger, sammen med flere testverktøy. Det er også mulig å installere kun Postfix med sudo apt-get install postfix.

Da vil du bli spurt om hvilken konfigurasjon du vil ha på serveren. I tilfeller hvor du f.eks. skal la WordPress-installasjonen din sende mail, er det standardvalget Internet Site som passer best. Velg dette om du ikke har andre behov.

Deretter blir du spurt om domenet (som du allerede har satt opp) i form av et såkalt fully qualified domain name (FQDN). Egentlig må et FQDN ende med et punktum, men det bryr ikke Postfix seg om. Så det holder å skrive f.eks.:

eksempel.no

(Hvis postfix foreslår et subdomene som f.eks. mail.eksempel.no, kan du endre det til eksempel.no hvis det er det du ønsker – og har som hostname).

Konfigurere Postfix

Nå skal du konfigurere Postfix til å kun håndtere forespørsler om å sende mailer som kommer fra serveren den kjører på, dvs. localhost. Da må Postfix lytte kun på det virtuelle nettverksgrensesnittet som serveren bruker for å kommunisere internt: loopback interface.

Åpne config-filen til Postfix:

sudo nano /etc/postfix/main.cf

Hvis du ikke fulgte de tidligere instruksjonene og dermed ikke har satt hostname til det samme som domenet, så kan du endre paramateret myhostname her:

myhostname = eksempel.no

Scroll deretter ned til du ser følgende oppføringer:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Her endrer du verdien til parameteret inet_interfaces fra all til loopback-only, slik at det ser ut som dette:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

(Du kan også skrive localhost i stedet for loopback-only – det vil gjøre samme nytten).

Lagre og lykk filen, og restart Postfix:

sudo service postfix restart

Har du satt opp brannmur med f.eks. UFW, må du også huske å åpne port 25 for SMTP:

sudo ufw allow 25

Test at SMTP-serveren kan sende mail

Her vil du bruke mail-kommandoen som kommer med mailutils-pakken som du installerte tidligere.

For å sende en test-mail, kan du echo’e meldingen din og pipe den til mail:

echo "Dette er innholdet i mailen" | mail -s "Dette er emnet (subject)" navn@eksempel.no

Kommandoen bør være forståelig nok, men inneholder altså et echo med meldingen du vil sende (innholdet/body’en i mailen) som pipes til mail, valget -s for å angi emnefelt (subject) etterfulgt av innholdet til emnefeltet, og til slutt mottakers e-postadresse.

Hvis alt funker som det skal, så sendes mailen din til adressen du anga.

Adressen mailen sendes fra vil bestemmes av brukernavnet ditt på serveren (sender du fra brukeren knut, vil mottakeren få mailen fra knut@eksempel.no).

Videresend systemmailer

Dette steget skal gjøre at alle mailer som sendes til root på systemet videresendes til din egen e-postadresse. Åpne fila /etc/aliases:

sudo nano /etc/aliases

Standardinnholdet i denne fila på Ubuntu 14.04 er:

# See man 5 aliases for format
postmaster:    root

Med den innstillingen, vil systemgenererte mailer sendes til brukeren root. Dette endrer du slik at disse mailene routes til din e-postadresse:

# See man 5 aliases for format
postmaster:    root
root:          knut@eksempel.no

For at endringene skal tre i kraft, kjør:

sudo newaliases

Test at det virker:

echo "Dette er innholdet i mailen" | mail -s "Dette er emnet (subject)" root

Feilsøking

Videresending av systemmailer fungerte ikke med oppsettet over. Det er bare ett av to problemer som virker som de henger sammen:

Kjører du DigitalOcean dukker det antakeligvis opp et problem også når du prøver å sende mail til en adresse på ditt eget domene – @eksempel.no (men det vil fungere til andre adresser). Visstnok kan ikke droplet-navnet være det samme som domenet når det er satt opp som en “send only” SMTP-server – da vil mailen bare sendes internt på serveren til bruker@eksempel.no.

For å fikse dette, kan du endre parameteret mydestination i /etc/postfix/main.cf til bare localhost (fjerne de to andre som er lagt inn [myhostname og mydomain]):

mydestination = localhost

NB: Jeg er usikker på om dette er den beste løsningen, men det ser ut til å fungere.

Beskytt domenet mot spammere

Dette skal gjøre det vanskelig for spammere å sende mailer som utgir seg for å være fra ditt domene.

Sette opp SPF records

Sette opp DKIM

Du bør i tillegg kanskje – eller kanskje ikke – sørge for at PTR-oppføringen for serveren matcher hostname som brukes av mailserveren – ifølge noen gjør DO det automatisk riktig ut i fra navnet på droplet’en – ifølge andre bør det endres i innstillingene for droplet’en.

 

Kilder

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-14-04

Leave a Reply

Your email address will not be published. Required fields are marked *