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:
- Korisničko ime: [email protected]
- Zaporka: email1
- IMAP: example.com
- SMTP: example.com