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
- Debian 9 minimal installasjon
- En statisk IP-adresse konfigurert for nettverksgrensesnittet
- 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.