Installer en komplett e-postserver med Postfix og Webmail i Debian 9


Denne veiledningen vil veilede deg om hvordan du installerer og konfigurerer en komplett e-postserver med Postfix i Debian 9-utgivelsen. Den vil også dekke hvordan du konfigurerer kontopostbokser ved å bruke Dovecot for å hente og skrive e-poster via IMAP-protokollen. Brukerne vil bruke grensesnittet Rainloop Webmail som e-postbrukeragent for å håndtere e-post.

Krav

  1. Debian 9 minimal installasjon
  2. En statisk IP-adresse konfigurert for nettverksgrensesnittet
  3. Et lokalt eller et offentlig registrert domenenavn.

I denne opplæringen bruker vi en privat domenekonto for oppsett av e-postserver kun konfigurert via /etc/hosts-fil, uten noen DNS-server involvert i håndtering av DNS-oppløsning.

Trinn 1: Innledende konfigurasjoner for Postfix Mail Server på Debian

1. I det første trinnet, logg på maskinen din med en konto med root-privilegier eller direkte med root-brukeren og sørg for at Debian-systemet ditt er oppdatert med de nyeste sikkerhetsoppdateringene og programvare- og pakkeutgivelsene , ved å gi følgende kommando.

apt-get update 
apt-get upgrade 

2. På neste trinn installerer du følgende programvarepakker som skal brukes til systemadministrasjon, ved å utstede følgende kommando.

apt-get install curl net-tools bash-completion wget lsof nano

3. Deretter åpner du /etc/host.conf-filen for redigering med din favoritttekstredigerer og legger til følgende linje i begynnelsen av filen for at DNS-oppløsningen skal les hosts-filen først.

order hosts,bind
multi on

4. Deretter konfigurerer du maskinen FQDN og legger til domenenavnet ditt og systemets FQDN til /etc/hosts-filen. Bruk systemets IP-adresse for å bestemme navnet på domenet og FQDN som illustrert i skjermbildet nedenfor.

Bytt ut IP-adresse og domene tilsvarende. Start deretter maskinen på nytt for å bruke vertsnavnet riktig.

hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. Etter omstart, kontroller om vertsnavnet er riktig konfigurert ved å utstede følgende rekke med kommandoer. Domenenavnet, FQDN, vertsnavnet og IP-adressen til systemet skal returneres med vertsnavn-kommandoen.

hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Test også om domenet svarer riktig på lokale forespørsler ved å utstede kommandoene nedenfor. Vær oppmerksom på at domenet ikke vil spille av på nytt til eksterne søk fra andre systemer i nettverket ditt, fordi vi ikke bruker en DNS-server.

Domenet bør imidlertid svare fra andre systemer hvis du manuelt legger til domenenavnet i hver av deres /etc/hosts-fil. Vær også oppmerksom på at DNS-oppløsningen for et domene lagt til i /etc/hosts-filen ikke vil fungere via host-, nslookup- eller dig-kommandoer.

getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Trinn 2: Installer Postfix Mail Server på Debian

7. Den viktigste programvaren som kreves for at en e-postserver skal fungere skikkelig, er MTA-agenten. MTA er en programvare bygget i en server-klient-arkitektur, som er ansvarlig for e-postoverføring mellom e-postservere.

I denne veiledningen bruker vi Postfix som e-postoverføringsagent. For å installere postfix i Debian fra offisielle depoter, kjør følgende kommando.

apt-get install postfix

8. Under installasjonsprosessen av Postfix vil du bli stilt en rekke spørsmål. På den første ledeteksten, velg alternativet Internettside som den generelle typen for Postfix-konfigurasjon og trykk [enter]-tasten for å fortsette og legg deretter til domenenavnet ditt i systemets e-postnavn, som illustrert i følgende skjermbilder.

Trinn 3: Konfigurer Postfix Mail Server på Debian

9. Ta deretter sikkerhetskopi av Postfix hovedkonfigurasjonsfil og konfigurer Postfix for domenet ditt ved å bruke følgende kommandoer.

cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf

Konfigurer nå Postfix-konfigurasjonen i main.cf-filen som vist.

See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2

TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Erstatt variablene mitt vertsnavn, mittdomene og mittnettverk for å matche dine egne konfigurasjoner.

Du kan kjøre kommandoen postconf -n for å dumpe Postfix hovedkonfigurasjonsfil og sjekke eventuelle feil, som vist i skjermbildet nedenfor.

postconf -n

10. Etter at alle konfigurasjoner er på plass, start Postfix-demonen på nytt for å bruke endringer og verifisere om tjenesten kjører ved å inspisere om Postfix-mastertjenesten er bindende for port 25 ved å kjøre netstat kommando.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Trinn 3: Test Postfix Mail Server på Debian

11. For å teste om postfix kan håndtere e-postoverføring, installer først mailutils-pakken ved å kjøre følgende kommando.

apt-get install mailutils

12. Deretter, ved å bruke e-postkommandolinjeverktøyet, send en e-post til root-kontoen og sjekk om e-posten ble overført ved å utstede kommandoen nedenfor for å sjekke e-postkøen og liste opp innholdet i rotens hjem Maildir-katalogen.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Du kan også bekrefte på hvilken måte e-posten ble håndtert av postfix-tjenesten ved å inspisere innholdet i e-postloggfilen ved å utstede følgende kommando.

tailf /var/log/mail.log

Trinn 4: Installer og konfigurer Dovecot IMAP på Debian

14. E-postleveringsagenten som vi skal bruke i denne veiledningen for å levere e-postmeldinger til en lokal mottakers postbokser, er Dovecot IMAP. IMAP er en protokoll som kjører på 143 og 993 (SSL) porter, som er ansvarlig for lesing, sletting eller flytting av e-post på tvers av flere e-postklienter.

IMAP-protokollen bruker også synkronisering for å sikre at en kopi av hver melding lagres på serveren og lar brukere opprette flere kataloger på serveren og flytte e-post til denne katalogen for å sortere e-postene.

Dette er ikke tilfellet med POP3-protokollen. POP3-protokollen tillater ikke brukere å opprette flere kataloger på serveren for å sortere e-posten din. Du har bare innboksmappen for å administrere e-post.

For å installere Dovecot-kjerneserveren og Dovecot IMAP-pakken på Debian, kjør følgende kommando.

apt install dovecot-core dovecot-imapd

15. Etter at Dovecot er installert i systemet ditt, åpner du dovecot-filene nedenfor for redigering og gjør følgende endringer. Først åpner du /etc/dovecot/dovecot.conf-filen, søk og fjern kommentarer på følgende linje:

listen = *, ::

16. Deretter åpner du /etc/dovecot/conf.d/10-auth.conf for redigering og finn og endre linjene nedenfor slik at de ser ut som i utdraget nedenfor.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Åpne filen /etc/dovecot/conf.d/10-mail.conf og legg til følgende linje for å bruke Maildir-plasseringen i stedet for Mbox-format for å lagre e-poster.

mail_location = maildir:~/Maildir

18. Den siste filen som skal redigeres er /etc/dovecot/conf.d/10-master.conf. Søk her etter Postfix smtp-auth-blokk og gjør følgende endring:

Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Etter at du har gjort alle endringene ovenfor, start Dovecot-demonen på nytt for å gjenspeile endringer, sjekk statusen og verifiser om Dovecot er bindende for port 143, ved å utstede kommandoene nedenfor.

systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn

20. Test om e-postserveren kjører som den skal ved å legge til en ny brukerkonto i systemet og bruk kommandoen telnet eller netcat for å koble til SMTP-server og send en ny e-post til den nye brukeren, som illustrert i utdragene nedenfor.

adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Sjekk om e-posten har kommet til den nye brukerpostboksen ved å oppgi innholdet i brukerens hjemmekatalog som vist i skjermbildet nedenfor.

ls /home/test_mail/Maildir/new/

22. Du kan også koble til brukerens postboks fra kommandolinjen via IMAP-protokollen, som vist i utdraget nedenfor. Den nye e-posten skal være oppført i brukerens innboks.

nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Trinn 5: Installer og konfigurer Webmail i Debian

23. Brukere vil administrere e-postene sine via Rainloop Webmail-klienten. Før du installerer Rainloop e-postbrukeragent, må du først installere Apache HTTP-serveren og følgende PHP-moduler som kreves av Rainloop, ved å utstede følgende kommando.

apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Etter at Apache-nettserveren er installert, endre katalogbanen til katalogen /var/www/html/, fjern index.html-filen og utfør følgende kommando for å installere Rainloop Webmail.

cd /var/www/html/
rm index.html 
curl -sL https://repository.rainloop.net/installer.php | php

25. Etter at Rainloop Webmail-klient er installert i systemet, naviger til domenets IP-adresse og logg på Rainloop admin-nettgrensesnitt med følgende standardlegitimasjon:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Naviger til menyen Domener, klikk på Legg til domene-knappen og legg til innstillingene for domenenavn som vist i skjermbildet nedenfor.

27. Etter at du er ferdig med å legge til domeneinnstillingene, logger du ut fra Ranloop admin-grensesnitt og peker nettleseren til IP-adressen din for å logge på nettpostklienten med en e-postkonto.

Etter at du har logget på Rainloop webmail, bør du se e-posten som ble sendt tidligere fra kommandolinjen til innboksen din.

http://192.168.0.102
User: [email 
Pass: the matie password

27. For å legge til et nytt brukerproblem useradd-kommando med -m-flagget for å opprette brukerens hjemmekatalog. Men sørg først for at du konfigurerer Maildir-banevariabelen for hver bruker med følgende kommando.

echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3

28. Hvis du vil omdirigere all roots e-post til en spesifikk lokal e-postkonto fra systemet, kjør kommandoene nedenfor. All e-post omdirigert eller bestemt til root-kontoen vil bli videresendt til e-postbrukeren din som vist i bildet nedenfor.

echo "root: test_mail" >> /etc/aliases
newaliases

Det er alt! Du har installert og konfigurert en e-postserver i lokalene dine for at lokale brukere skal kunne kommunisere via e-post. Denne typen e-postkonfigurasjon er imidlertid ikke sikret på noen måte, og det anbefales kun å distribueres for små oppsett i systemer og nettverk under full kontroll.