Opsætning af e-mail-tjenester (SMTP, Imap og Imaps) og begrænsning af adgang til SMTP - Del 7


En LFCE ( Linux Foundation Certified Engineer ) er en uddannet professionel, der har færdighederne til at installere, administrere og fejlfinde netværkstjenester i Linux-systemer og er ansvarlig for design, implementering og løbende vedligeholdelse af systemarkitekturen og brugeradministrationen.

Introduktion til Linux Foundation-certificeringsprogrammet.

I en tidligere tutorial diskuterede vi, hvordan du installerer de nødvendige komponenter i en mailservice. Hvis du endnu ikke har installeret Postfix og Dovecot , henvises til del 1 i denne serie for at få instruktioner til det, inden du fortsætter.

  1. Installer Postfix Mail Server og Dovecot - Del 1

I dette indlæg vil jeg vise dig, hvordan du konfigurerer din mailserver, og hvordan du udfører følgende opgaver:

  1. Konfigurer e-mail-aliasser
  2. Konfigurer en IMAP- og IMAPS-tjeneste
  3. Konfigurer en smtp-tjeneste
  4. Begræns adgang til en smtp-server

Bemærk: At vores opsætning kun dækker en mailserver til et lokalt netværk, hvor maskinerne hører til det samme domæne. Afsendelse af e-mail-beskeder til andre domæner kræver en mere kompleks opsætning, herunder funktioner til opløsning af domænenavne, der ikke er omfattet af LFCE-certificeringen.

Men først skal vi starte med et par definitioner.

Komponenter i en postforsendelse, transport og leveringsproces

Følgende billede illustrerer processen med e-mail-transport, der starter med afsenderen, indtil meddelelsen når modtagerens indbakke:

For at gøre dette muligt sker der flere ting bag kulisserne. For at en e-mail-meddelelse skal leveres fra en klientapplikation (såsom Thunderbird, Outlook eller webmailtjenester som Gmail eller Yahoo! Mail) til hans/hendes mailserver og derfra til destinationsserveren og endelig til den tilsigtede modtager , skal der være en SMTP-tjeneste (Simple Mail Transfer Protocol) på hver server.

Når du taler om e-mail-tjenester, finder du følgende vilkår nævnt meget ofte:

MTA (forkortelse for Mail eller Message Transport Agent ), aka mail relay, er en software, der er ansvarlig for overførsel af e-mail-meddelelser fra en server til en klient (og omvendt også). I denne serie fungerer Postfix som vores MTA.

MUA eller Mailbrugeragent er et computerprogram, der bruges til at få adgang til og administrere brugerens e-mail-indbakker. Eksempler på MUA'er inkluderer, men er ikke begrænset til, Thunderbird, Outlook og webmail-grænseflader såsom Gmail, Outlook.com, for at nævne nogle få. I denne serie bruger vi Thunderbird i vores eksempler.

MDA (forkortelse for Besked eller Mail Delivery Agent ) er softwaredelen, der faktisk leverer e-mail-meddelelser til brugerens indbakker. I denne vejledning bruger vi Dovecot som vores MDA. Dovecot håndterer også brugergodkendelse.

For at disse komponenter skal kunne " tale " til hinanden, skal de " tale " det samme " sprog " (eller protokol ), nemlig SMTP ( Simple Mail Transfer Protocol ) som defineret i RFC 2821. Mest sandsynligt bliver du nødt til at henvise til den RFC, mens du opsætter dit mailservermiljø.

Andre protokoller, som vi skal tage i betragtning, er IMAP4 ( Internet Message Access Protocol ), som gør det muligt at administrere e-mail-beskeder direkte på serveren uden at downloade dem til vores klients harddisk , og POP3 ( Post Office Protocol ), som gør det muligt at downloade meddelelser og mapper til brugerens computer.

Vores 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å vores klient har vi oprettet elementær DNS-opløsning, der tilføjer følgende linje til filen /etc/hosts .

192.168.0.15 example.com.ar mailserver

Tilføjelse af e-mail-aliasser

Som standard skal en meddelelse sendt til en bestemt bruger kun leveres til den pågældende bruger. Men hvis du også ønsker at levere det til en gruppe brugere eller til en anden bruger, kan du oprette et mailalias eller bruge et af de eksisterende i /etc/postfix/aliases efter denne syntaks:

user1: user1, user2

Således leveres e-mails sendt til bruger1 også til bruger2 . Bemærk, at hvis du udelader ordet bruger1 efter kolon, som i

user1: user2

meddelelserne sendt til bruger1 vil kun blive sendt til bruger2 og ikke til bruger1 .

I ovenstående eksempel skal bruger1 og bruger2 allerede findes på systemet. Det kan være en god idé at henvise til del 8 i LFCS-serien, hvis du har brug for at opdatere din hukommelse, før du tilføjer nye brugere.

  1. Sådan tilføjes og administreres brugere/grupper i Linux
  2. 15 kommandoer til tilføjelse af brugere i Linux

I vores specifikke tilfælde bruger vi følgende alias som forklaret før (tilføj følgende linje i /etc/alias ).

sysadmin: gacanepa, jdoe

Og kør følgende kommando for at oprette eller opdatere alias-opslagstabellen.

postalias /etc/postfix/aliases

Så meddelelser sendt til [e-mailbeskyttet] vil blive leveret til indbakken til de ovennævnte brugere.

Konfiguration af Postfix - SMTP-tjenesten

Hovedkonfigurationsfilen for Postfix er /etc/postfix/main.cf . Du behøver kun at oprette et par parametre, før du kan bruge posttjenesten. Du skal dog gøre dig bekendt med de fulde konfigurationsparametre (som kan vises med man 5 postconf ) for at oprette en sikker og fuldt tilpasset mailserver.

Bemærk: At denne tutorial kun skal komme i gang i denne proces og ikke repræsenterer en omfattende guide til e-mail-tjenester med Linux.

Åbn filen /etc/postfix/main.cf med dit valg af editor, og foretag følgende ændringer som forklaret.

# vi /etc/postfix/main.cf

1 . myorigin angiver det domæne, der vises i meddelelser sendt fra serveren. Du kan muligvis se /etc/mailname -filen, der bruges med denne parameter. Du er velkommen til at redigere det, hvis det er nødvendigt.

myorigin = /etc/mailname

Hvis ovenstående værdi bruges, sendes mails som [e-mailbeskyttet] , hvor brugeren er den bruger, der sender beskeden.

2 . mydestination viser hvilke domæner denne maskine leverer e-mail-beskeder lokalt i stedet for at videresende til en anden maskine (fungerer som et relæsystem). Standardindstillingerne er tilstrækkelige i vores tilfælde (sørg for at redigere filen, så den passer til dit miljø).

Hvor filen /etc/postfix/transport definerer forholdet mellem domæner og den næste server, som e-mail-meddelelser skal videresendes til. I vores tilfælde er følgende konfiguration tilstrækkelig, da vi kun leverer meddelelser til vores lokale netværk (således at omgå enhver ekstern DNS-opløsning).

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

Dernæst er vi nødt til at konvertere denne almindelige tekstfil til formatet .db , hvilket skaber den opslagstabel, som Postfix faktisk vil bruge til at vide, hvad de skal gøre med indgående og udgående mail.

# postmap /etc/postfix/transport

Du bliver nødt til at huske at genskabe denne tabel, hvis du tilføjer flere poster til den tilsvarende tekstfil.

3 . mynetworks definerer de autoriserede netværk Postfix videresender beskeder fra. Standardværdien, subnet, fortæller Postfix kun at videresende mail fra SMTP-klienter i de samme IP-subnetværk som den lokale maskine.

mynetworks = subnet

4 . relæ_domæner angiver de destinationer, som e-mails skal sendes til. Vi vil lade standardværdien være uberørt, hvilket peger på mydestination. Husk, at vi opretter en mailserver til vores LAN.

relay_domains = $mydestination

Bemærk, at du kan bruge $ mydestination i stedet for at angive det faktiske indhold.

5 . inet_interfaces definerer, hvilke netværksgrænseflader mailtjenesten skal lytte til. Standard, alt, fortæller Postfix at bruge alle netværksgrænseflader.

inet_interfaces = all

6 . Endelig vil mailbox_size_limit og message_size_limit blive brugt til at indstille henholdsvis størrelsen på hver brugers postkasse og den maksimalt tilladte størrelse på individuelle meddelelser i bytes.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Begrænsning af adgang til SMTP-serveren

Serveren Postfix SMTP kan anvende visse begrænsninger på hver anmodning om klientforbindelse. Ikke alle klienter bør have lov til at identificere sig over for mailserveren ved hjælp af kommandoen smtp HELO , og bestemt ikke alle skal have adgang til at sende eller modtage meddelelser.

For at gennemføre disse begrænsninger bruger vi følgende direktiver i filen main.cf . Selvom de er selvforklarende, er der tilføjet kommentarer til afklaringsformål.

# 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-konfigurationsparametre postconf-siden kan være praktisk for yderligere at udforske de tilgængelige muligheder.

Konfigurering af Dovecot

Lige efter installation af dovecot understøtter den out-of-the-box til POP3 og IMAP protokoller sammen med deres sikre versioner, POP3S og IMAPS .

Tilføj 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 tjekker dit hjemmekatalog, vil du bemærke, at der er en mail-underkatalog med følgende indhold.

Bemærk også, at filen /var/mail /% u er, hvor brugerens mails er gemt på de fleste systemer.

Føj følgende direktiv til /etc/dovecot/dovecot.conf (bemærk, at imap og pop3 også indebærer imaps og pop3s).

protocols = imap pop3

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

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

Lad os nu genstarte Dovecot og kontrollere, at den lytter på de porte, der er relateret til imap, imaps, pop3 og pop3s.

# netstat -npltu | grep dovecot

Opsætning af en mailklient og afsendelse/receving af mails

På vores klientcomputer åbner vi Thunderbird og klikker på Fil Ny Eksisterende mailkonto . Vi bliver bedt om at indtaste navnet på kontoen og den tilknyttede e-mail-adresse sammen med dens adgangskode. Når vi klikker på Fortsæt , forsøger Thunderbird derefter at oprette forbindelse til mailserveren for at kontrollere indstillingerne.

Gentag ovenstående proces for den næste konto ( [e-mailbeskyttet] ), og de følgende to indbakker skal vises i Thunderbirds venstre rude.

På vores server vil vi skrive en e-mail-besked til sysadmin , som er alias for jdoe og gacanepa .

Mailloggen ( /var/log/mail.log ) ser ud til at indikere, at den e-mail, der blev sendt til sysadmin , blev videresendt til [e-mailbeskyttet] , som det kan ses i det følgende billede.

Vi kan kontrollere, om e-mailen faktisk blev leveret til vores klient, hvor IMAP-konti blev konfigureret i Thunderbird.

Lad os endelig prøve at sende en besked fra [email .

I eksamen bliver du bedt om at arbejde udelukkende med kommandolinjeværktøjer. Dette betyder, at du ikke vil kunne installere en desktop-klientapplikation som f.eks. Thunderbird, men bliver bedt om at bruge mail i stedet. Vi har kun brugt Thunderbird i dette kapitel til illustrative formål.

Konklusion

I dette indlæg har vi forklaret, hvordan du opretter en IMAP mailserver til dit lokale netværk, og hvordan du begrænser adgangen til SMTP serveren. Hvis du tilfældigvis løber ind i et problem, mens du implementerer en lignende opsætning i dit testmiljø, vil du gerne kontrollere online-dokumentationen til henholdsvis /etc/dovecot/dovecot.conf), men tøv under alle omstændigheder ikke med at kontakte mig ved hjælp af kommentarformularen nedenfor. Jeg vil være mere end glad for at hjælpe dig.