Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Mulți utilizatori de Ubuntu utilizează sistemul nu numai pentru uz casnic. Această abordare este complet justificată, deoarece Linux este mult mai convenabil să se ocupe de programare, crearea de servere și site-uri web. Una dintre facilități este crearea unui server de e-mail. Pentru incepatori, această sarcină va părea teribil de dificil, dar dacă veți înțelege cum să instalați și să configurați serverul de e-mail Ubuntu, sarcina nu va părea ca o astfel de grea.

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Cum se configurează serverul de poștă electronică bazat pe Ubuntu.

Un pic de teorie

Înainte de instrucțiunile concrete și fermentarea codului, nu se poate face fără partea materialului teoretic. Este important să înțelegeți ce este un server de poștă electronică și cum funcționează acesta.

Serverele de mail pe Linux diferă semnificativ de cele de pe Windows și alte sisteme. Pe Windows, acesta este un program închis, închis, care poate fi folosit numai. De asemenea, distribuțiile Linux presupun auto-reglarea tuturor componentelor. Iar serverul nu va consta dintr-un program, ci din mai multe. Vom folosi Postfix împreună cu Dovecot și MySQL.

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

De ce Postfix?

Există mai mulți clienți de corespondență pe Ubuntu, dar totuși am ales acest lucru. Setarea Posfix pe Ubuntu este mult mai ușoară decât trimiterea aceluiași SendMail, ceea ce este important pentru un utilizator nou. În colaborare cu Dovecot, Postfix este capabil să efectueze tot ceea ce este de obicei cerut de serverele de e-mail.

Postfix este agentul de transfer de mail în sine. El va juca rolul principal în întreaga prezentare. Acesta este un program open source pe care mulți servere și site-uri web îl folosesc în mod implicit. Dovecot este agentul de livrare a corespondenței. Rolul său principal este de a asigura securitatea serverului. MySQL este sistemul ideal de gestionare a bazelor de date (DBMS) pentru orice site. Este necesar să funcționăm pe baza informațiilor pe care le primim de la utilizatorii serverului nostru.

Deci, cu partea teoretică sa terminat. Acum este timpul să mergem mai departe la practică.

Crearea unui server de poștă electronică

Ce ar trebui să fie configurat înainte de instalarea serverului de e-mail?

  • MySQL;
  • Zona DNS, trebuie să aveți un FDQN personal. Apoi vom folosi numele.

apt-get install postfix postfix-mysql porumbar-core porumbar-imapd porumbar-lmtpd Dovecot-mysql

Când apare fereastra cu configurația Postfix, va trebui să selectați "site-ul Internet".

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Mai jos ni se cere să introduceți un nume de domeniu, utilizați "example.com".

Configurarea MySQL

Acum trebuie să configuram trei tabele pentru date în MySQL: pentru domenii, utilizatori și pentru așa-numitele aliasuri Alias ​​sau cutiile poștale personalizate suplimentare. Aici nu vom detalia configurația bazei de date MySQL.

Să numim baza de date exemplu. Creați o bază de date cu următorul nume:

mysqladmin -p crea servermail

Conectați-vă la MySQL:

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Apoi introduceți parola. Dacă totul se face corect, atunci va exista o astfel de înregistrare în terminal:

Creați un utilizator nou pentru conectarea la rețea:

mysql> GRANT SELECT pe examplemail. * TO 'usermail'@'127.0.0.1' IDENTIFICAT DE 'parola';

Acum reporniți MySQL pentru a vă asigura că toate modificările au fost aplicate cu succes.

Folosim baza de date pentru a crea tabele bazate pe aceasta:

mysql> USE examplemail;

Creați un tabel pentru domenii:

CREATE TABLE `virtual_domains` (
`id` INT NOT NULL AUTO_INCREMENT,
`nume` VARCHAR (50) NU NULL,
TASTĂ PRIMARĂ (`id`)
) MOTOR = InnoDB DEFAULT CHARSET = utf8;

Creați un tabel pentru utilizatori:

CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`parola 'VARCHAR (106) NU NULL,
`email` VARCHAR (120) NU NULL,
TASTĂ PRIMARĂ (`id`),
UNIQUE KEY `email` (` email`),
FORUMUL FOREIGN (domain_id) REFERINȚE virtual_domains (id) ON DELETE CASCADE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;

Aici, după cum puteți vedea, au fost adăugate un e-mail și o parolă. Și fiecare utilizator este obligat la un domeniu.

În cele din urmă, creați un tabel pentru pseudonime:

CREATE TABLE `virtual_aliases` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`sursa 'varchar (100) NU NULL,
"destinație" varchar (100) NOT NULL,
TASTĂ PRIMARĂ (`id`),
FORUMUL FOREIGN (domain_id) REFERINȚE virtual_domains (id) ON DELETE CASCADE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;

Am configurat cu succes MySQL și am creat trei tabele necesare. Acum trebuie să vă ocupați de domenii și e-mailuri.

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Adăugați domeniul nostru în tabel cu domeniile. De asemenea, este necesar să înregistrați FDQN:

INSERTAȚI-VĂ în `examplemail`.`virtual_domains`
("id", "nume")
VALORI
("1", "example.com"),
('2', 'namehost.example.com');

INSERTAȚI ÎN `examplemail`.`virtual_users`
(`id`,` domain_id`, `parola````)
VALORI
( '1', '1', ENCRYPT ( 'firstpassword', CONCAT ( '$ 6 $', subșir (SHA (RAND ()), -16))), '[email protected]'),
( '2', '1', ENCRYPT ( 'secondpassword', CONCAT ( '$ 6 $', subșir (SHA (RAND ()), -16))), '[email protected]');

Acum adăugați informațiile la ultimul tabel:

INSERTAȚI ÎN `examplemail`.`virtual_aliases`
(`id`,` domain_id`, `sursă`,` destinație`)
VALORI
('1', '1', '[email protected]', '[email protected]');

Configurarea Postfix

Să mergem direct la parametrii Postfix. Avem nevoie de clientul de mail pentru a trimite mesaje în numele celor introduse în baza de date a utilizatorilor și pentru a procesa conexiunea SMTP. În primul rând, vom crea o copie de rezervă a fișierului de configurare, astfel încât în ​​cazul a ceea ce puteți reveni la setările implicite:

cp /etc/postfix/main.cf/etc/postfix/main.cf.orig

Deschideți acum fișierul de configurare:

# Parametrii TLS
# 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 = da
#smtpd_tls_session_cache_database = btree: $ / smtpd_scache
#smtp_tls_session_cache_database = btree: $ / smtp_scache
smtpd_tls_cert_file = / etc / ssl / certs / dovecot.pem
smtpd_tls_key_file = / etc / ssl / private / dovecot.pem
smtpd_use_tls = da
smtpd_tls_auth_only = da

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

După aceasta, adăugați câțiva parametri:

smtpd_sasl_type = dovecot
smtpd_sasl_path = privat / auth
smtpd_sasl_auth_enable = da
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination

#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = localhost

Parametrul myhostname trebuie să conțină numele domeniului nostru:

Acum adăugăm o linie pentru trimiterea mesajelor către toate domeniile listate în tabela MySQL:

Adăugați încă trei parametri, astfel încât Postfix să se poată conecta la tabelele MySQL:

virtual_mailbox_domains = mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf

Configurarea fișierelor MySQL și Postfix

Adăugați aceste valori la acesta:

user = usermail
parola = mailpassword
gazde = 127.0.0.1
dbname = examplemail
interogare = SELECT 1 FROM virtual_domains WHERE nume = '% s'

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

serviciu postfix repornire

Testează domeniul pentru Postfix:

postmap -q primer.ru mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf

Creați un alt fișier:

nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
parola = mailpassword
gazde = 127.0.0.1
dbname = examplemail
interogare = SELECT 1 FROM virtual_users WHERE email = '% s'

serviciu postfix repornire

Apoi verificați din nou Postfix:

postmap -q [email protected] mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf

Dacă totul se face corect, ar trebui să fie afișat

Creați ultimul fișier - pentru aliasuri:

nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
parola = mailpassword
gazde = 127.0.0.1
dbname = examplemail
interogare = SELECT destinație din FROM_source WHERE sursă = '% s'

serviciu postfix repornire

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Ultima dată când testăm:

postmap -q [email protected] mysql: /etc/postfix/mysql-virtual-alias-maps.cf

Configurarea Dovecot

Facem copii de siguranță pentru șapte fișiere, pe care le vom schimba:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Cum se instalează și se configurează un server de poștă electronică pentru ubuntu

Aceasta este o echipă de probă. Introducem șase mai multe dintre aceleași fișiere:

/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Deschideți primul fișier:

Articole similare