Konfiguriranje Postfixa i Dovecota na Ubuntu

Mnogi korisnici sustava Ubuntu koriste sustav ne samo za potrebe doma. Taj je pristup u potpunosti opravdan, jer na Linux sustavima mnogo je prikladnije programiranje, stvaranje poslužitelja i web stranica. Jedan od pogodnosti je stvaranje poslužitelja e-pošte. Za početnike ovaj zadatak će se činiti užasno teškim, ali ako shvatite kako instalirati i konfigurirati poslužitelj e-pošte za Ubuntu, zadatak vam neće izgledati tako teško.

Kako postaviti poslužitelj e-pošte na temelju Ubuntua.

sadržaj

  • 1 Malo teorije
    • 1.1 Zašto Postfix?
  • 2 Stvorite poslužitelj e-pošte
    • 2.1 instalacija
    • 2.2 Postavljanje MySQL-a
    • 2.3 Domene, adrese e-pošte i nadimci
    • 2.4 Postfix Setup
    • 2.5 Postavljanje datoteka MySQL i Postfix
    • 2.6 Dovecot postavljanje

Malo teorije

Prije nego što određene upute i fermentacija koda ne mogu učiniti bez djelića teorijskog materijala. Važno je razumjeti što je poslužitelj e-pošte i kako to funkcionira.

Konfigurirani poslužitelj e-pošte, da je to vrlo jednostavno, jest poštar koji prima "pismo" iz jednog klijenta e-pošte i daje je drugom. U ovom, u načelu, cijela bit rada ovog softvera. Poslužitelj e-pošte potreban je ne samo za slanje e-pošte.Na web-lokacijama je odgovoran za registraciju korisnika, slanje obrazaca i drugih važnih radnji, bez kojih bi stranica postala poput knjige koju možete pogledati samo okretanjem stranica, ali je teško učiniti nešto.

Mail poslužitelji na Linuxu znatno se razlikuju od onih na sustavu Windows i drugim sustavima. U sustavu Windows ovo je gotov zatvoreni program koji može početi koristiti. Linux distribucije također zahtijevaju automatsko podešavanje svih komponenti. A poslužitelj će na kraju biti ne jedan program, već nekoliko. Koristit ćemo Postfix u kombinaciji s Dovecotom i MySQL-om.

Zašto Postfix?

Ubuntu ima nekoliko klijenata e-pošte, ali ipak smo odabrali ovaj. Postavljanje Posfixa na Ubuntu mnogo je lakše nego iste SendMail, a to je važno za novajlijeg korisnika. U kombinaciji s Dovecot, Postfix može učiniti sve što se obično traži od poslužitelja e-pošte.

Postfix je izravno agent za prijenos pošte. On će igrati glavnu ulogu u cijeloj podnesci. Ovo je program otvorenog izvornog koda koji mnogi poslužitelji i web-mjesta koriste prema zadanim postavkama. Dovecot je agent za isporuku pošte. Njegova glavna uloga je osigurati sigurnost poslužitelja. MySQL je idealan sustav za upravljanje bazom podataka (DBMS) za bilo koju web stranicu.Potrebno je obraditi informacije koje primamo od korisnika našeg poslužitelja.

Dakle, s teorijskim dijelom je gotov. Sada je vrijedno prakticirati.

Stvorite poslužitelj e-pošte

Što treba konfigurirati prije instaliranja poslužitelja pošte?

  • MySQL;
  • DNS zone, morate imati osobni FDQN. Zatim ćemo koristiti ime.

instalacija

Instalirajte program:

apt-get instaliraj postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Kada se pojavi prozor za konfiguraciju Postfix-a, morat ćemo odabrati "Internet site".

U nastavku ćemo tražiti da unesete naziv domene, koristite "primer.ru".

Postavljanje MySQL-a

Sada moramo konfigurirati tri tablice za podatke u MySQL-u: za domene, korisnike i za takozvane Alias ​​- aliase ili dodatne korisničke poštanske sandučiće. Ovdje nećemo detaljno raspravljati o konfiguraciji MySQL baze podataka.

Nazovimo bazu podataka examplemail. Izradite bazu podataka sa sljedećim imenom:

mysqladmin -p stvoriti servermail

Prijavite se u MySQL:

mysql -u root -p

Zatim unesite lozinku. Ako je sve ispravno učinjeno, na terminalu će biti unesen:

mysql>

Izradite novi korisnik posebno za prijavu na mrežu:

mysql> GRANT SELECT ON examplemail * U 'usermail'@'127.0.0.1' IDENTIFIED BY 'lozinka';

Sada ponovo pokrenite MySQL kako biste bili sigurni da su sve promjene uspješno primijenjene.

Mi koristimo našu bazu podataka za stvaranje tablica na temelju njega:

mysql> USE examplemail;

Izradite tablicu za domene:

CREATE TABLE 'virtual_domains' (
'ID' INT NOT NULL AUTO_INCREMENT,
'ime' VARCHAR (50) NOT NULL,
PRIMARNI KEY ('id')
ENGINE = InnoDB DEFAULT CHARSET = utf8;

Izradite tablicu za korisnike:

CREATE TABLE 'virtual_users' (
'ID' INT NOT NULL AUTO_INCREMENT,
'domain_id' INT NOT NULL,
'lozinka' VARCHAR (106) NOT NULL,
'e-pošta' VARCHAR (120) NOT NULL,
PRIMARNI KEY ('id'),
UNIQUE KEY 'email' ('email'),
FOREIGN KEY (domain_id) REFERENCE virtual_domains (id) Uključi DELETE CASCADE
ENGINE = InnoDB DEFAULT CHARSET = utf8;

Ovdje, kao što možete vidjeti, dodao je e-poštu i zaporku. I svaki je korisnik vezan za domenu.

Konačno, izradite tablicu za pseudonime:

CREATE TABLE 'virtual_aliases' (
'ID' INT NOT NULL AUTO_INCREMENT,
'domain_id' INT NOT NULL,
'izvor' varchar (100) NOT NULL,
'odredište' varchar (100) NOT NULL,
PRIMARNI KEY ('id'),
FOREIGN KEY (domain_id) REFERENCE virtual_domains (id) Uključi DELETE CASCADE
ENGINE = InnoDB DEFAULT CHARSET = utf8;

Uspješno smo konfigurirali MySQL i stvorili tri potrebne tablice. Sada se morate baviti domenama i e-porukama.

Domene, adrese e-pošte i nadimci

Dodajte domenu u tablicu s domenama. Ovdje mora biti upisana FDQN:

INSERT U 'examplemail'. 'Virtual_domains'
('id', 'ime')
VRIJEDNOSTI
('1', 'example.com'),
('2', 'namehost.example.com');

Dodajte podatke o e-adresi u korisničku tablicu:

INSERT U 'examplemail'. 'Virtual_users'
('id', 'domain_id', 'lozinka', 'e-pošta')
VRIJEDNOSTI
'' 1 ',' 1 ', ENCRYPT (' prva zaporkla ', CONCAT (' $ 6 $ ', SUBSTRING (SHA (RAND ()),
('2', '1', ENCRYPT ('drugi zaporkom', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16))), '[email protected]');

Sada dodajte podatke u posljednju tablicu:

INSERT INTO 'examplemail'. 'Virtual_aliases'
('id', 'domain_id', 'izvor', 'odredište')
VRIJEDNOSTI
('1', '1', '[email protected]', '[email protected]');

Zatvori MySQL:

mysql> izlaz

Postfix Setup

Premještanje izravno na parametre Postfix. Trebamo klijenta pošte za slanje poruka u ime korisnika upisanih u bazu podataka i rukovanje SMTP vezom. Za početak ćemo stvoriti sigurnosnu kopiju konfiguracijske datoteke, u kojem se slučaju moguće vratiti na standardne postavke:

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

Sada otvorite konfiguracijsku datoteku:

nano /etc/postfix/main.cf

Umjesto nano možete upotrijebiti bilo koji uređivač teksta koji vam je draže.

Komentirat ćemo parametre TLS i dodati druge. Ovdje se koristi besplatni SSL:

# TLS parametri
# 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: $ {data_directory} / smtpd_scache
#smtp_tls_session_cache_database = btree: $ {data_directory} / 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

Nakon toga dodati ćemo još nekoliko parametara:

smtpd_sasl_type = dovecot
smtpd_sasl_path = privatni / autor
smtpd_sasl_auth_enable = da
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination

Također moramo komentirati postavke moje postavke i mijenjati ih na localhost:

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

Parametar myhostname trebao bi sadržavati naziv domene:

myhostname = namehost.example.com

Sada dodaj redak za slanje poruka na sve domene navedene u tablici MySQL:

virtual_transport = lmtp: unix: privatni / dovecot-lmtp

Dodajte još tri parametra kako bi se Postfix mogao povezati sa MySQL tablicama:

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

Postavljanje datoteka MySQL i Postfix

Stvorite datoteku

mysql-virtual-mailbox-domains.cf

Dodajte ove vrijednosti na njega:

user = usermail
lozinka = mailpassword
domaćini = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_domains WHERE name = "% s"

Ponovo pokreni postfix:

ponovno pokretanje usluge postfix

Testna domena za Postfix:

postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domena.cf

Izradi drugu datoteku:

nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
lozinka = mailpassword
domaćini = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_users WHERE email = "% s"

Postfix ponovnog pokretanja:

ponovno pokretanje usluge postfix

Potom ponovno provjerite Postfix:

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

Ako je ispravno učinjeno, trebao bi biti prikazan

Izradite posljednju datoteku za pseudonime:

nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
lozinka = mailpassword
domaćini = 127.0.0.1
dbname = examplemail
query = ODABERI odredište FROM virtual_aliases WHERE izvor = "% s"

ponovo pokrenuti:

ponovno pokretanje usluge postfix

Zadnji put smo testirali:

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

Dovecot postavljanje

Izrađujemo sigurnosne kopije za sedam datoteka koje će se mijenjati:

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

Ovo je naredba uzorka. Unesite još šest istih za ove datoteke:

/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

Otvori prvu datoteku:

nano /etc/dovecot/dovecot.conf

Provjerite je li ovaj parametar izjavljen:

uključite conf.d / *. conf

upišite:

! include_try /usr/share/dovecot/protocols.d/*.protocol
protocol = imap lmtp

Umjesto:

! include_try /usr/share/dovecot/protocols.d/*.protocol linija

Uredite sljedeću datoteku:

nano /etc/dovecot/conf.d-10-mail.conf

Pronađite line mail_location, uklonite komentar, postavite sljedeći parametar:

mail_location = maildir: / var / mail / vhosts /% d /% n

Pronađi mail_privileged_group, tamo stavite:

mail_privileged_group = pošta

Provjeravamo pristup. Unesite naredbu:

ls -ld / var / mail

Pristup bi trebao izgledati ovako:

drwxrwsr-x 3 root vmail 4096 24. siječnja 21:23 / var / mail

Izradite mapu za svaku registriranu domenu:

mkdir -p /var/mail/vhosts/example.com

Izradite korisnika i grupu s ID 5000:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / mail

Promjena vlasnika korisniku VMail:

chown -R vmail: vmail / var / mail

Uredite sljedeću datoteku:

nano /etc/dovecot/conf.d/10-auth.conf

Odbaci tekst autentifikacije i dodajte redak:

disable_plaintext_auth = da

Promijenite sljedeći parametar:

auth_mechanisms = obična prijava

Komentirajući ovu liniju:

#! uključite auth-system.conf.ext

Dodaj MySQL autorizaciju, komentirati liniju:

! uključite auth-sql.conf.ext

Izradite datoteku s podacima za provjeru autentičnosti:

nano /etc/dovecot/conf.d/auth-sql.conf.ext

Unesite sljedeće:

passdb {
vozač = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
vozač = statički
args = uid = vmail gid = vmail dom = / var / mail / vhosts /% d /% n
}

Uredite sljedeću datoteku:

nano /etc/dovecot/dovecot-sql.conf.ext

Postavite MySQL parametar i komentirajte:

driver = mysql

Odbaci komentar i unesi:

connect = domaćin = 127.0.0.1 dbname = servermail user = usermail password = mailpassword

Pronađite liniju default_pass_scheme, odjavite i unesite parametar:

default_pass_scheme = SHA512-CRYPT

Poništite komentar i unesite novi parametar:

password_query = ODABIR e-pošte kao korisnika, lozinka FROM virtual_users WHERE email = "% u";

Promjena vlasnika:

chown -R vmail: dovecot / etc / dovecot
chmod -R o-rwx / etc / dovecot

Otvaranje i uređivanje datoteke:

nano /etc/dovecot/conf.d/10-master.conf

Poništite komentar i unesite parametar:

uslugu imap-login {
inet_listener imap {
port = 0
}

upišite:

usluga lmtp {
unix_listener / var / spool / postfix / private / dovecot-lmtp {
način = 0600
korisnik = postfix
grupa = postfix
}
#inet_listener lmtp {
# Izbjegavajte LMTP vidljiv za internet
#address =
#port =
#}
}

Promijenite sljedeću konfiguraciju:

usluga auth {
unix_listener / var / spool / postfix / private / auth {
način = 0666
korisnik = postfix
grupa = postfix
}
unix_listener auth-userdb {
način = 0600
korisnik = vmail
#group =
}
#unix_listener / var / spool / postfix / private / auth {
# način = 0666
#}
user = dovecot
}

Izmijenite zadnju konfiguraciju u ovoj datoteci:

usluga auth-worker {
# Proces provjere autentičnosti
# / etc / sjena. Ako to nije potrebno
# $ default_internal_user.
korisnik = vmail
}

Dakle, konačno smo postavili poslužitelj e-pošte na Ubuntu. A tu možete dodati i SSL konfiguraciju ili koristiti zadanu. Za zaštitu od neželjenog sadržaja, možete konfigurirati Spam Assassin za rad s našim poslužiteljem.

Koristite standardni klijent e-pošte za unos ovih podataka: