Instalați un server de e-mail complet cu Postfix și Webmail în Debian 9


Acest tutorial vă va ghida cum să instalați și să configurați un server de e-mail complet cu Postfix în versiunea Debian 9. Acesta va acoperi, de asemenea, modul de configurare a cutiilor poștale ale conturilor folosind Dovecot pentru a prelua și compune e-mailuri prin protocolul IMAP. Utilizatorii vor folosi interfața Rainloop Webmail ca agent de utilizator de e-mail pentru a gestiona corespondența.

Cerințe

  1. Instalare minimă Debian 9
  2. O adresă IP statică configurată pentru interfața de rețea
  3. Un nume de domeniu înregistrat local sau public.

În acest tutorial, vom folosi un cont de domeniu privat pentru configurarea serverului de e-mail configurat numai prin fișierul /etc/hosts, fără niciun server DNS implicat în gestionarea rezoluției DNS.

Pasul 1: Configurații inițiale pentru Postfix Mail Server pe Debian

1. În primul pas, conectați-vă la computer cu un cont cu privilegii root sau direct cu utilizatorul root și asigurați-vă că sistemul dvs. Debian este la zi cu cele mai recente corecții de securitate și versiuni de software și pachete. , prin lansarea următoarei comenzi.

apt-get update 
apt-get upgrade 

2. La pasul următor instalați următoarele pachete software care vor fi utilizate pentru administrarea sistemului, lansând următoarea comandă.

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

3. Apoi, deschideți fișierul /etc/host.conf pentru editare cu editorul de text preferat și adăugați următoarea linie la începutul fișierului pentru ca rezoluția DNS să fie citește mai întâi fișierul hosts.

order hosts,bind
multi on

4. Apoi, configurați mașina dvs. FQDN și adăugați numele de domeniu și FQDN-ul sistemului în fișierul /etc/hosts. Utilizați adresa IP a sistemului pentru a rezolva numele domeniului și FQDN-ul, așa cum este ilustrat în captura de ecran de mai jos.

Înlocuiți adresa IP și domeniul în consecință. După aceea, reporniți mașina pentru a aplica corect numele de gazdă.

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

5. După repornire, verificați dacă numele de gazdă a fost configurat corect, lansând următoarea serie de comenzi. Numele de domeniu, FQDN-ul, numele de gazdă și adresa IP a sistemului ar trebui returnate prin comanda hostname.

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

6. De asemenea, testați dacă domeniul răspunde corect la interogările locale prin lansarea comenzilor de mai jos. Rețineți că domeniul nu va reda interogările de la distanță emise de alte sisteme din rețeaua dvs., deoarece nu folosim un server DNS.

Cu toate acestea, domeniul ar trebui să răspundă de la alte sisteme dacă adăugați manual numele de domeniu la fiecare fișier /etc/hosts. De asemenea, rețineți că rezoluția DNS pentru un domeniu adăugat la fișierul /etc/hosts nu va funcționa prin comenzile gazdă, nslookup sau dig.

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

Pasul 2: Instalați Postfix Mail Server pe Debian

7. Cea mai importantă piesă de software necesară pentru ca un server de e-mail să funcționeze corect este agentul MTA. MTA este un software construit într-o arhitectură server-client, care este responsabil pentru transferul de e-mail între serverele de e-mail.

În acest ghid, vom folosi Postfix ca agent de transfer de e-mail. Pentru a instala postfix în Debian din depozitele oficiale, executați următoarea comandă.

apt-get install postfix

8. În timpul procesului de instalare a Postfix, vi se vor pune o serie de întrebări. La prima solicitare, selectați opțiunea Site Internet ca tip general pentru configurația Postfix și apăsați tasta [enter] pentru a continua și apoi adăugați numele domeniului dvs. la numele e-mailului de sistem, ca ilustrat în următoarele capturi de ecran.

Pasul 3: Configurați Postfix Mail Server pe Debian

9. Apoi, faceți backup pentru fișierul de configurare principal Postfix și configurați Postfix pentru domeniul dvs. utilizând următoarele comenzi.

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

Acum configurați configurația Postfix în fișierul main.cf, așa cum se arată.

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

Înlocuiți variabilele myhostname, mydomain și mynetworks pentru a se potrivi cu propriile configurații.

Puteți rula comanda postconf -n pentru a descărca fișierul de configurare principal Postfix și pentru a verifica eventualele erori, așa cum se arată în captura de ecran de mai jos.

postconf -n

10. După ce toate configurațiile sunt la locul lor, reporniți demonul Postfix pentru a aplica modificările și pentru a verifica dacă serviciul rulează, inspectând dacă serviciul master Postfix se leagă pe portul 25 rulând netstat comanda.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Pasul 3: Testați Postfix Mail Server pe Debian

11. Pentru a testa dacă postfix poate gestiona transferul de e-mail, mai întâi instalați pachetul mailutils executând următoarea comandă.

apt-get install mailutils

12. Apoi, folosind utilitarul de linie de comandă de e-mail, trimiteți un e-mail către contul rădăcină și verificați dacă e-mailul a fost transmis cu succes prin lansarea comenzii de mai jos pentru a verifica coada de e-mail și a enumera conținutul fișierului rădăcină. directorul principal Maildir.

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

13. De asemenea, puteți verifica în ce mod a fost tratată e-mailul de către serviciul postfix, inspectând conținutul fișierului jurnal de e-mail, lansând următoarea comandă.

tailf /var/log/mail.log

Pasul 4: Instalați și configurați Dovecot IMAP pe Debian

14. Agentul de livrare a corespondenței pe care îl vom folosi în acest ghid pentru a livra mesaje e-mail către cutiile poștale ale unui destinatar local este Dovecot IMAP. IMAP este un protocol care rulează pe porturile 143 și 993 (SSL), care este responsabil pentru citirea, ștergerea sau mutarea e-mailurilor pe mai mulți clienți de e-mail.

Protocolul IMAP utilizează, de asemenea, sincronizarea pentru a se asigura că o copie a fiecărui mesaj este salvată pe server și permite utilizatorilor să creeze mai multe directoare pe server și să mute e-mailurile în aceste directoare pentru a sorta e-mailurile.

Acesta nu este cazul protocolului POP3. Protocolul POP3 nu va permite utilizatorilor să creeze mai multe directoare pe server pentru a vă sorta e-mailurile. Aveți doar folderul Inbox pentru a gestiona e-mailurile.

Pentru a instala Dovecot serverul de bază și pachetul Dovecot IMAP pe Debian, executați următoarea comandă.

apt install dovecot-core dovecot-imapd

15. După ce Dovecot a fost instalat în sistemul dvs., deschideți fișierele dovecot de mai jos pentru editare și efectuați următoarele modificări. Mai întâi, deschideți fișierul /etc/dovecot/dovecot.conf, căutați și decomentați următoarea linie:

listen = *, ::

16. Apoi, deschideți /etc/dovecot/conf.d/10-auth.conf pentru editare și localizați și modificați rândurile de mai jos pentru a arăta ca în fragmentul de mai jos.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Deschideți fișierul /etc/dovecot/conf.d/10-mail.conf și adăugați următoarea linie pentru a utiliza locația Maildir în loc de Format Mbox pentru a stoca e-mailuri.

mail_location = maildir:~/Maildir

18. Ultimul fișier de editat este /etc/dovecot/conf.d/10-master.conf. Aici căutați blocul Postfix smtp-auth și faceți următoarea modificare:

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

19. După ce ați făcut toate modificările de mai sus, reporniți demonul Dovecot pentru a reflecta modificările, verificați starea acestuia și verificați dacă Dovecot se leagă pe portul 143, lansând comenzile de mai jos.

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

20. Testați dacă serverul de e-mail funcționează corect adăugând un nou cont de utilizator la sistem și utilizați comanda telnet sau netcat pentru a vă conecta la server SMTP și trimiteți un e-mail nou noului utilizator adăugat, așa cum este ilustrat în fragmentele de mai jos.

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

21. Verificați dacă e-mailul a ajuns în noua căsuță poștală a utilizatorului, listând conținutul directorului principal al utilizatorului, așa cum se arată în captura de ecran de mai jos.

ls /home/test_mail/Maildir/new/

22. De asemenea, vă puteți conecta la căsuța poștală a utilizatorului din linia de comandă prin protocolul IMAP, așa cum se arată în fragmentul de mai jos. Noul e-mail ar trebui să fie listat în Inbox-ul utilizatorului.

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

Pasul 5: Instalați și configurați Webmail în Debian

23. Utilizatorii își vor gestiona e-mailurile prin intermediul clientului Rainloop Webmail. Înainte de a instala agentul utilizator de e-mail Rainloop, mai întâi instalați serverul Apache HTTP și următoarele module PHP cerute de Rainloop, lansând următoarea comandă.

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

24. După ce serverul web Apache a fost instalat, schimbați calea directorului în directorul /var/www/html/, eliminați fișierul index.html și lansați următoarea comandă pentru a instala Rainloop Webmail.

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

25. După ce clientul Rainloop Webmail a fost instalat în sistem, navigați la adresa IP a domeniului dvs. și conectați-vă la interfața web de administrare Rainloop cu următoarele acreditări implicite:

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

26. Navigați la meniul Domenii, apăsați pe butonul Adăugați domeniu și adăugați setările pentru numele domeniului dvs., așa cum se arată în captura de ecran de mai jos.

27. După ce ați terminat de adăugat setările domeniului, deconectați-vă de la interfața de administrare Ranloop și direcționați browserul către adresa dvs. IP pentru a vă conecta la clientul de webmail cu un cont de e-mail.

După ce v-ați conectat cu succes la Rainloop webmail, ar trebui să vedeți e-mailul trimis mai devreme din linia de comandă în folderul Inbox.

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

27. Pentru a adăuga un utilizator nou, problema useradd comandă cu marcajul -m pentru a crea directorul principal al utilizatorului. Dar, mai întâi, asigurați-vă că configurați variabila cale Maildir pentru fiecare utilizator cu următoarea comandă.

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

28. Dacă doriți să redirecționați toate e-mailurile root către un anumit cont de e-mail local din sistem, executați comenzile de mai jos. Toate e-mailurile redirecționate sau destinate contului root vor fi redirecționate către utilizatorul dvs. de e-mail, așa cum se arată în imaginea de mai jos.

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

Asta e tot! Ați instalat și configurat cu succes un server de e-mail la sediul dumneavoastră pentru ca utilizatorii locali să comunice prin e-mail. Cu toate acestea, acest tip de configurație de e-mail nu este securizat în niciun fel și este recomandabil să fie implementat numai pentru setări mici în sisteme și rețele aflate sub controlul dvs. deplin.