Cum se instalează Postfix, Dovecot și Roundcube pe Ubuntu 20.04
Postfix este un Agent de transfer de e-mail (MTA) pentru rutarea și livrarea e-mailului (e-mailului). Dovecot este un IMAP și POP3 Mail Delivery Agent (MDA). Aceste două aplicații open-source funcționează bine cu Roundcube, un client de e-mail renumit în principal pentru utilizarea inteligentă a tehnologiei Ajax.
Înainte de a începe, asigurați-vă că aveți următoarele:
- Un server Ubuntu 20.04 configurat cu un nume de domeniu complet (FQDN).
- Un utilizator non-root cu privilegii sudo
- O stivă LAMP cu un certificat SSL instalat. Acest ghid folosește un certificat gratuit Let’s Encrypt.
- Verificați starea portului de ieșire al serverului
1. Instalați și configurați Postfix
- SSH pe serverul dvs. și instalați serverul Postfix rulând comanda de mai jos.
$ sudo apt update -y $ sudo apt install -y postfix
- Veți primi ecranul de configurare Postfix, așa cum se arată mai jos. Apăsați TAB și ENTER pentru a continua.
3. Pe ecranul următor, selectați Site Internet, apoi TAB și ENTER.
4. Introduceți numele de e-mail al sistemului, care este numele domeniului dvs. De exemplu, numele serverului este mail.example.com, așa că veți introduce aici example.com.
5. Faceți o copie de rezervă a fișierului /etc/postfix/main.cf și creați unul nou.
$ sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bk
$ sudo nano /etc/postfix/main.cf
6. Introduceți informațiile de mai jos în noul fișier. Înlocuiți example.com cu numele dvs. de domeniu în tot fișierul. Asigurați-vă că valoarea smtpd tls cert_file și smtpd tls key_file indică certificatul dvs. SSL.
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
myhostname = mail.example.com
myorigin = /etc/mailname
mydestination = localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
7. Salvați și închideți fișierul.
2. Creați domenii de cutie poștală virtuală
- Fișierul de configurare main.cf indică postfix să caute domenii de e-mail în fișierul /etc/postfix/virtual_mailbox_domains . Creați fișierul:
$ sudo nano /etc/postfix/virtual_mailbox_domains
- Adăugați informațiile de mai jos în fișier și înlocuiți example.com cu numele dvs. de domeniu.
example.com #domain
- Utilizați comanda postmap pentru a schimba /etc/postfix/virtual_mailbox_domains într-un format recunoscut de Postfix. Rulați această comandă de fiecare dată când editați fișierul, de exemplu, după ce adăugați mai multe domenii la fișier.
$ sudo postmap /etc/postfix/virtual_mailbox_domains
- Editați fișierul de configurare /etc/postfix/master.cf pentru a activa serviciul SMTP.
$ sudo nano /etc/postfix/master.cf
- Găsiți intrarea de mai jos.
... #submission inet n - y - - smtpd ...
Eliminați simbolul lire sterline de la începutul liniei.
... submission inet n - y - - smtpd ...
- Salvați și închideți fișierul.
3. Instalați și configurați Dovecot
- Instalați pachetul Dovecot și toate pachetele de dependență necesare pentru a rula serviciul imap , pop3 și lmtp .
$ sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
- Editați fișierul /etc/dovecot/conf.d/10-mail.conf pentru a instrui Dovecot în director să caute e-mailuri.
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
- Găsiți intrarea de mai jos.
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Schimba in:
mail_location = maildir:/var/mail/vhosts/%d/%n
Salvați și închideți fișierul. % d reprezintă domeniul, iar %n reprezintă utilizatorii. Aceasta înseamnă că va trebui să creați un subdirector în /var/mail/vhosts pentru fiecare domeniu care primește e-mailuri pe serverul dvs.
- Creați primul subdirector și înlocuiți example.com cu numele dvs. de domeniu.
$ sudo mkdir -p /var/mail/vhosts/example.com
Repetați comanda de mai sus pentru fiecare alt domeniu pentru care doriți să primiți e-mailuri pe serverul dvs. în timp ce înlocuiți example.com cu numele domeniului. De exemplu, dacă intenționați să primiți și e-mailuri pentru domeniul example.net, executați comanda de mai jos.
$ sudo mkdir -p /var/mail/vhosts/example.net
- Creați un utilizator și un grup Vmail pentru serviciul Dovecot.Creați grupul vmail .
$ sudo groupadd -g 5000 vmail
Creați un utilizator vmail și adăugați utilizatorul la grupul vmail .
$ sudo useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
Atribuiți dreptul de proprietate asupra /var/mail/vhosts/ utilizatorului și grupului vmail .
$ sudo chown -R vmail:vmail /var/mail/vhosts/
- Editați fișierul Dovecot 10-master.conf .
$ sudo nano /etc/dovecot/conf.d/10-master.conf
- Găsiți intrările de mai jos.
... inet_listener imaps { #port = 993 #ssl = yes } ...
Eliminați simbolul lire sterline înainte de intrările port și ssl , așa cum se arată mai jos, pentru a permite Dovecot să folosească portul 993 și SSL pentru IMAP securizat.
... inet_listener imaps { port = 993 ssl = yes } ...
- Găsiți intrările de mai jos.
... inet_listener pop3s { #port = 995 #ssl = yes } ...
Eliminați simbolul lire sterline înainte de portul = 995 și parametrii ssl = yes .
... inet_listener pop3s { port = 995 ssl = yes } ...
- Activați serviciul lmtp . Găsiți intrările de mai jos.
... service lmtp { unix_listener lmtp { #mode = 0666 } # Create inet listener only if you can't use the above UNIX socket #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #} } ...
Schimbați configurația la:
... service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } } ...
- Găsiți mai jos configurațiile socketului de autentificare Dovecot.
... # Postfix smtp-auth #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} ...
Schimbați configurația la:
... #Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } ...
- Salvați și închideți fișierul.
- Configurați Dovecot pentru a utiliza autentificarea securizată. Editați fișierul Dovecot 10-auth.conf .
$ sudo nano /etc/dovecot/conf.d/10-auth.conf
- Găsiți intrarea de mai jos.
# disable_plaintext_auth = yes
Decomentați setarea de mai sus eliminând caracterul # pentru a dezactiva autorizarea textului simplu.
disable_plaintext_auth = yes
- Găsiți intrarea de mai jos.
auth_mechanisms = plain
Schimbați mecanismele de autentificare de la autentificare simplă la autentificare simplă .
auth_mechanisms = plain login
- Dezactivați comportamentul de autentificare implicit Dovecot, care necesită ca utilizatorii să aibă un cont de sistem pentru a utiliza serviciul de e-mail. Găsiți linia:
!include auth-system.conf.ext
Adăugați un simbol liră la începutul rândului pentru a-l comenta.
#!include auth-system.conf.ext
- Găsiți linia:
#!include auth-passwdfile.conf.ext
Eliminați simbolul # de la început pentru a permite Dovecot să utilizeze un fișier cu parole.
!include auth-passwdfile.conf.ext
- Salvați și închideți fișierul.
- Editați fișierul parolei Dovecot, auth-passwdfile.conf.ext .
$ sudo nano /etc/dovecot/conf.d/auth-passwdfile.conf.ext
Fișierul arată similar cu cel prezentat mai jos.
passdb { driver = passwd-file args = scheme=CRYPT username_format=%u /etc/dovecot/users } userdb { driver = passwd-file args = username_format=%u /etc/dovecot/users ... }
Efectuați modificările în fișier, așa cum se arată mai jos.
passdb { driver = passwd-file args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users } userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n }
Salvați și închideți fișierul.
- Creați fișierul cu parole /etc/dovecot/dovecot-users . Acest fișier este o bază de date cu text simplu care deține utilizatorii de e-mail pe serverul dvs.
$ sudo nano /etc/dovecot/dovecot-users
Adăugați utilizatorii pe care doriți să utilizați serviciul de e-mail la fișier urmând formatul de mai jos. Înlocuiți EXAMPLE_PASSWORD cu o parolă puternică. De asemenea, înlocuiți example.com cu numele dvs. de domeniu.
admin@example.com:{plain}EXAMPLE_PASSWORD info@example.com:{plain}EXAMPLE_PASSWORD billing@example.com:{plain}EXAMPLE_PASSWORD
Salvați și închideți fișierul.
- Configurați Dovecot pentru a utiliza certificatul SSL. Deschideți fișierul /etc/dovecot/conf.d/10-ssl.conf .
$ sudo nano /etc/dovecot/conf.d/10-ssl.conf
Găsiți linia:
ssl = yes
Schimbați valoarea ssl de la yes la obligatoriu .
ssl = required
Găsiți cele două intrări de mai jos.
#ssl_cert = </etc/dovecot/dovecot.pem #ssl_key = </etc/dovecot/private/dovecot.pem
Schimbați cele două intrări de mai sus și asigurați-vă că acestea indică certificatul SSL pentru domeniul dvs. De exemplu, dacă utilizați certificatul Let’s Encrypt, intrările dvs. vor fi similare cu cele afișate mai jos. Înlocuiți example.com cu numele dvs. de domeniu.
ssl_cert = </etc/letsencrypt/live/example.com/fullchain.pem ssl_key = </etc/letsencrypt/live/example.com/privkey.pem
Salvați și închideți fișierul.
Reporniți serviciile postfix și dovecot pentru a utiliza noile setări.
$ sudo service postfix restart $ sudo service dovecot restart
4. Instalați și configurați Roundcube
- Pentru a accesa serverele Postfix și Dovecot, instalați clientul de e-mail Roundcube.
$ sudo apt install -y roundcube
- Apăsați ENTERpentru a configura baza de date pentru utilizare cu Roundcube.
Pe ecranul următor, introduceți o parolă MySQL pe care să o utilizați cu Roundcube.
- Apăsați TAB și ENTER.
- Repetați aceeași parolă, apoi apăsați TAB și ENTER pentru a continua.
- Deschideți fișierul de configurare SSL al site-ului dvs. din directorul /etc/apache2/sites-enabled . Rulați comanda de mai jos și înlocuiți example.com cu numele dvs. de domeniu.
$ sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf
Fișierul dvs. de configurare a site-ului dvs. web va fi similar cu cel prezentat mai jos.
... <VirtualHost *:443> ServerAdmin admin@franktek.space ServerName franktek.space ... </VirtualHost> ...
Adăugați intrarea Alias /mail /usr/share/roundcube după intrarea ServerName example.com, așa cum se arată mai jos.
... <VirtualHost *:443> ServerAdmin admin@example.com ServerName example.com Alias /mail /usr/share/roundcube ... </VirtualHost> ...
Salvați și închideți fișierul. Reporniți Apache.
$ sudo service apache2 restart
5. Testați serviciul de e-mail
Pentru a vă conecta la serverul de e-mail folosind Roundcube, introduceți adresa URL afișată mai jos și înlocuiți example.com cu numele domeniului dvs.
https://mail.example.com/mail
Ar trebui să vedeți un ecran similar cu cel de mai jos. Introduceți numele de utilizator și parola pe care le-ați definit în fișierul cu parole Dovecot și conectați-vă.
Odată autentificat, puteți trimite și primi e-mailuri din tabloul de bord Roundcube.
[mai mult...]