Cum se instalează Postfix, Dovecot și Roundcube pe Ubuntu 20.04

Configurare noua (How To)

Situatie

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
  1. SSH pe serverul dvs. și instalați serverul Postfix rulând comanda de mai jos.
    $ sudo apt update -y
    $ sudo apt install -y postfix
    
  2. 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ă
  1. 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
    
  2. Adăugați informațiile de mai jos în fișier și înlocuiți example.com cu numele dvs. de domeniu.
    example.com #domain
    
  3. 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
    
  4. Editați fișierul de configurare /etc/postfix/master.cf pentru a activa serviciul SMTP.
    $ sudo nano /etc/postfix/master.cf
    
  5. 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
    
    ...
    
  6. Salvați și închideți fișierul.
3. Instalați și configurați Dovecot
  1. 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
    
  2. 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
    
  3. 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.

  4. 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
    
  5. 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/
    
  6. Editați fișierul Dovecot 10-master.conf .
    $ sudo nano /etc/dovecot/conf.d/10-master.conf
    
  7. 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
    
    }
    
    ...
    
  8. 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
    
    }
    
    ...
    
  9. 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
    
      }
    
    }
    
    ...
    
  10. 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
    
    }
    
    ...
    
  11. Salvați și închideți fișierul.
  12. 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
    
  13. 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
    
  14. 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
    
  15. 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
    
  16. 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
    
  17. Salvați și închideți fișierul.
  18. 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.

  19. 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.

  20. 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.Configurați baza de date pentru Roundcube

Pe ecranul următor, introduceți o parolă MySQL pe care să o utilizați cu Roundcube.

Parola bazei de date pentru Roudcube

  • 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ă.

Pagina de conectare Roundcube

Odată autentificat, puteți trimite și primi e-mailuri din tabloul de bord Roundcube.

Solutie

Tip solutie

Permanent

Voteaza

(14 din 23 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?