Sette opp e-posttjenester (SMTP, Imap og Imaps) og begrense tilgang til SMTP - Del 7


En LFCE (Linux Foundation Certified Engineer) er en utdannet fagperson som har ferdigheter til å installere, administrere og feilsøke nettverkstjenester i Linux-systemer, og er ansvarlig for design, implementering og løpende vedlikehold av systemarkitekturen og brukeradministrasjon.

Vi introduserer Linux Foundation-sertifiseringsprogrammet.

I en tidligere opplæring diskuterte vi hvordan du installerer de nødvendige komponentene til en e-posttjeneste. Hvis du ikke har installert Postfix og Dovecot ennå, se del 1 av denne serien for instruksjoner om hvordan du gjør det før du fortsetter.

  1. Installer Postfix Mail Server og Dovecot – Del 1

I dette innlegget vil jeg vise deg hvordan du konfigurerer e-postserveren din og hvordan du utfører følgende oppgaver:

  1. Konfigurer e-postaliaser
  2. Konfigurer en IMAP- og IMAPS-tjeneste
  3. Konfigurer en smtp-tjeneste
  4. Begrens tilgang til en smtp-server

Merk: At oppsettet vårt kun vil dekke en e-postserver for et lokalnettverk der maskinene tilhører samme domene. Sending av e-postmeldinger til andre domener krever et mer komplekst oppsett, inkludert muligheter for oppløsning av domenenavn, som er utenfor LFCE-sertifiseringens omfang.

Men først, la oss starte med noen få definisjoner.

Komponenter i en sendings-, transport- og leveringsprosess for post

Følgende bilde illustrerer prosessen med e-posttransport som starter med avsenderen til meldingen når mottakerens innboks:

For å gjøre dette mulig skjer det flere ting bak kulissene. For at en e-postmelding skal kunne leveres fra en klientapplikasjon (som Thunderbird, Outlook eller nettposttjenester som Gmail eller Yahoo! Mail) til hans/hennes e-postserver og derfra til målserveren og til slutt til den tiltenkte mottakeren , må en SMTP-tjeneste (Simple Mail Transfer Protocol) være på plass på hver server.

Når du snakker om e-posttjenester, vil du finne følgende begreper nevnt veldig ofte:

MTA (forkortelse for Mail eller Message Transport Agent), aka mail relay, er en programvare som har ansvaret for å overføre e-postmeldinger fra en server til en klient (og omvendt også). I denne serien fungerer Postfix som vår MTA.

MUA, eller Mail User Agent, er et dataprogram som brukes til å få tilgang til og administrere brukerens e-postinnbokser. Eksempler på MUAer inkluderer, men er ikke begrenset til, Thunderbird, Outlook og webmail-grensesnitt som Gmail, Outlook.com, for å nevne noen. I denne serien vil vi bruke Thunderbird i våre eksempler.

MDA (forkortelse for Message eller Mail Delivery Agent) er programvaredelen som faktisk leverer e-postmeldinger til brukerens innbokser. I denne opplæringen vil vi bruke Dovecot som vår MDA. Dovecot vil også håndtere brukerautentisering.

For at disse komponentene skal kunne \snakke med hverandre, må de \snakker samme \språk (eller protokoll), nemlig SMTP (Simple Mail Transfer Protocol) som definert i RFC 2821. Mest sannsynlig må du referere til den RFC mens du setter opp e-posten din servermiljø.

Andre protokoller som vi må ta hensyn til er IMAP4 (Internet Message Access Protocol), som gjør det mulig å administrere e-postmeldinger direkte på serveren uten å laste dem ned til vår klients harddisk , og POP3 (Post Office Protocol), som gjør det mulig å laste ned meldinger og mapper til brukerens datamaskin.

Vårt testmiljø er som følger:

Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

På vår klient har vi satt opp elementær DNS-oppløsning ved å legge til følgende linje i /etc/hosts-filen.

192.168.0.15 example.com.ar mailserver

Legge til e-postaliaser

Som standard skal en melding sendt til en spesifikk bruker bare leveres til denne brukeren. Men hvis du også vil levere den til en gruppe brukere, eller til en annen bruker, kan du opprette et e-postalias eller bruke en av de eksisterende i /etc/postfix/aliases , etter denne syntaksen:

user1: user1, user2

Dermed vil e-poster sendt til bruker1 også bli levert til bruker2. Merk at hvis du utelater ordet bruker1 etter kolon, som i

user1: user2

meldingene som sendes til bruker1 vil bare bli sendt til bruker2, og ikke til bruker1.

I eksemplet ovenfor skal bruker1 og bruker2 allerede eksistere på systemet. Det kan være lurt å se Del 8 av LFCS-serien hvis du trenger å friske opp minnet før du legger til nye brukere.

  1. Hvordan legge til og administrere brukere/grupper i Linux
  2. 15 kommandoer for å legge til brukere i Linux

I vårt spesifikke tilfelle vil vi bruke følgende alias som forklart før (legg til følgende linje i /etc/aliases).

sysadmin: gacanepa, jdoe

Og kjør følgende kommando for å opprette eller oppdatere oppslagstabellen for aliaser.

postalias /etc/postfix/aliases

Slik at meldinger sendt til [email  blir levert til innboksen til brukerne som er oppført ovenfor.

Konfigurere Postfix – SMTP-tjenesten

Hovedkonfigurasjonsfilen for Postfix er /etc/postfix/main.cf. Du trenger bare å sette opp noen få parametere før du kan bruke e-posttjenesten. Du bør imidlertid gjøre deg kjent med de fullstendige konfigurasjonsparametrene (som kan vises med man 5 postconf) for å sette opp en sikker og fullt tilpasset e-postserver.

Merk: Denne opplæringen er kun ment for å komme i gang i den prosessen og representerer ikke en omfattende veiledning om e-posttjenester med Linux.

Åpne filen /etc/postfix/main.cf med ditt valg av editor og gjør følgende endringer som forklart.

# vi /etc/postfix/main.cf

1. myorigin spesifiserer domenet som vises i meldinger sendt fra serveren. Du kan se /etc/mailname-filen brukt med denne parameteren. Rediger den gjerne om nødvendig.

myorigin = /etc/mailname

Hvis verdien ovenfor brukes, sendes e-poster som [e-postbeskyttet], der brukeren er brukeren som sender meldingen.

2. mydestination viser hvilke domener denne maskinen vil levere e-postmeldinger lokalt, i stedet for å videresende til en annen maskin (fungerer som et relésystem). Standardinnstillingene vil være tilstrekkelig i vårt tilfelle (sørg for å redigere filen slik at den passer ditt miljø).

Hvor /etc/postfix/transport-filen definerer forholdet mellom domener og neste server som e-postmeldinger skal videresendes til. I vårt tilfelle, siden vi bare skal levere meldinger til vårt lokale nettverk (og dermed omgå enhver ekstern DNS-oppløsning), vil følgende konfigurasjon være tilstrekkelig.

example.com.ar    local:
.example.com.ar    local:

Deretter må vi konvertere denne vanlige tekstfilen til .db-formatet, som lager oppslagstabellen som Postfix faktisk vil bruke for å vite hva de skal gjøre med innkommende og utgående post.

# postmap /etc/postfix/transport

Du må huske å gjenskape denne tabellen hvis du legger til flere oppføringer i den tilsvarende tekstfilen.

3. mynetworks definerer de autoriserte nettverkene Postfix vil videresende meldinger fra. Standardverdien, subnett, forteller Postfix å videresende e-post fra SMTP-klienter kun i de samme IP-undernettverkene som den lokale maskinen.

mynetworks = subnet

4. relay_domains spesifiserer destinasjonene som e-poster skal sendes til. Vi lar standardverdien være urørt, noe som peker på min destinasjon. Husk at vi setter opp en e-postserver for vårt LAN.

relay_domains = $mydestination

Merk at du kan bruke $mydestination i stedet for å liste opp det faktiske innholdet.

5. inet_interfaces definerer hvilke nettverksgrensesnitt e-posttjenesten skal lytte på. Standarden, alle, forteller Postfix å bruke alle nettverksgrensesnitt.

inet_interfaces = all

6. Til slutt vil mailbox_size_limit og message_size_limit brukes til å angi størrelsen på hver brukers postboks og den maksimalt tillatte størrelsen på individuelle meldinger, henholdsvis i byte.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Begrensning av tilgang til SMTP-serveren

Postfix SMTP-serveren kan bruke visse begrensninger på hver klienttilkoblingsforespørsel. Ikke alle klienter bør få lov til å identifisere seg for e-postserveren ved å bruke smtp HELO-kommandoen, og absolutt ikke alle skal gis tilgang til å sende eller motta meldinger.

For å implementere disse begrensningene vil vi bruke følgende direktiver i main.cf-filen. Selv om de er selvforklarende, er kommentarer lagt til for å avklare.

# Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

# Permit the request when the client IP address matches any network or network address listed in $mynetworks
# Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

# Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

# Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

Postfix-konfigurasjonsparametere postconf-siden kan være nyttig for å utforske de tilgjengelige alternativene ytterligere.

Konfigurering av dovecot

Rett etter installasjon av dovecot, støtter den ut-av-boksen for POP3- og IMAP-protokollene, sammen med deres sikre versjoner, POP3S og IMAPS, henholdsvis.

Legg til følgende linjer i filen /etc/dovecot/conf.d/10-mail.conf.

# %u represents the user account that logs in
# Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
# You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Hvis du sjekker hjemmekatalogen din, vil du legge merke til at det er en underkatalog for e-post med følgende innhold.

Vær også oppmerksom på at /var/mail/%u-filen er der brukerens e-post lagres på de fleste systemer.

Legg til følgende direktiv til /etc/dovecot/dovecot.conf (merk at imap og pop3 også innebærer imaps og pop3s).

protocols = imap pop3

Og sørg for at /etc/conf.d/10-ssl.conf inkluderer følgende linjer (ellers legg dem til).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

La oss nå starte Dovecot på nytt og bekrefte at den lytter på portene relatert til imap, imaps, pop3 og pop3s.

# netstat -npltu | grep dovecot

Sette opp en e-postklient og sende/motta e-poster

På klientdatamaskinen vår åpner vi Thunderbird og klikker på FilNyEksisterende e-postkonto. Vi vil bli bedt om å skrive inn navnet på kontoen og den tilhørende e-postadressen, sammen med passordet. Når vi klikker Fortsett, vil Thunderbird prøve å koble til e-postserveren for å bekrefte innstillingene.

Gjenta prosessen ovenfor for neste konto ([email ), og de følgende to innboksene skal vises i Thunderbirds venstre rute.

På serveren vår vil vi skrive en e-postmelding til sysadmin, som kalles jdoe og gacanepa.

E-postloggen (/var/log/mail.log) ser ut til å indikere at e-posten som ble sendt til sysadmin ble videresendt til [e-postbeskyttet] b>, som kan sees på bildet nedenfor.

Vi kan bekrefte om e-posten faktisk ble levert til vår klient, der IMAP-kontoene ble konfigurert i Thunderbird.

Til slutt, la oss prøve å sende en melding fra [email .

I eksamen vil du bli bedt om å arbeide utelukkende med kommandolinjeverktøy. Dette betyr at du ikke vil kunne installere et skrivebordsklientprogram som Thunderbird, men at du må bruke e-post i stedet. Vi har brukt Thunderbird i dette kapittelet kun for illustrative formål.

Konklusjon

I dette innlegget har vi forklart hvordan du setter opp en IMAP-e-postserver for ditt lokale nettverk og hvordan du begrenser tilgangen til SMTP-serveren. Hvis du tilfeldigvis støter på et problem mens du implementerer et lignende oppsett i testmiljøet ditt, bør du sjekke den elektroniske dokumentasjonen til henholdsvis /etc/dovecot/dovecot.conf), men i alle fall ikke nøl med å kontakte meg ved å bruke kommentarskjemaet nedenfor. Jeg hjelper deg mer enn gjerne.