Mnogi korisnici Ubuntua koriste sustav ne samo za kućne potrebe. Ovaj pristup je u potpunosti opravdan, jer je na Linux-sustavima mnogo prikladnije raditi programiranje, kreiranje poslužitelja i web stranica. Jedna od pogodnosti je stvaranje poslužitelja e-pošte. Za početnike, ovaj zadatak će se činiti strašno teškim, ali ako shvatite kako instalirati i konfigurirati poslužitelj e-pošte za Ubuntu, zadatak se neće činiti toliko težim za vas.
Kako postaviti poslužitelj e-pošte na temelju Ubuntua.
Malo teorije
Prije specifičnih uputa i fermentacije kod ne može bez djelića teorijskog materijala. Važno je razumjeti što je poslužitelj e-pošte i kako radi.
Konfigurirani poslužitelj pošte, jednostavno rečeno, poštar je koji prima "pismo" od jednog klijenta e-pošte i daje ga 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 stranicama je odgovoran za registraciju korisnika, slanje obrazaca i drugih važnih akcija, bez kojih bi stranica postala poput knjige, koju možete pogledati samo okretanjem stranica, ali je teško nešto učiniti.
Mail poslužitelji na Linuxu značajno se razlikuju od onih na Windows i drugim sustavima. U sustavu Windows, ovo je gotovi zatvoreni program, koji može početi koristiti. Linux distribucije također zahtijevaju samopodešavanje svih komponenti. A poslužitelj će se na kraju sastojati od ne jednog programa, već nekoliko. Postfix ćemo koristiti u kombinaciji s Dovecot i MySQL.
Zašto Postfix?
U Ubuntuu postoji nekoliko klijenata e-pošte, ali još uvijek smo odabrali ovaj. Postavljanje Posfixa na Ubuntu je mnogo lakše nego isti SendMail, a to je važno za početničkog korisnika. U kombinaciji s Dovecotom, 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 cijelom podnošenju. To je program otvorenog koda koji mnogi poslužitelji i web-mjesta koriste prema zadanim postavkama. Dovecot je agent za dostavu pošte. Njegova glavna uloga je osigurati sigurnost poslužitelja. MySQL je idealan sustav za upravljanje bazom podataka (DBMS) za sve stranice. Potrebno je rukovati informacijama koje primamo od korisnika našeg poslužitelja.
Dakle, s teoretskim dijelom je gotovo. Sada vrijedi ići u praksu.
Stvorite poslužitelj e-pošte
Što treba konfigurirati prije instaliranja poslužitelja e-pošte?
- MySQL;
- DNS zona, morate imati osobni FDQN. Zatim ćemo koristiti ime.
instalacija
Instalirajte program:
apt-get instalacija postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
Kada se pojavi Postfix konfiguracijski prozor, morat ćemo odabrati "Internetsku stranicu".
U nastavku ćemo tražiti da unesete naziv domene, koristite "primer.ru".
MySQL postavljanje
Sada trebamo konfigurirati tri tablice za podatke u MySQL-u: za domene, korisnike i za takozvane Alias-aliasove ili dodatne korisničke poštanske sandučiće. Ovdje nećemo detaljno raspravljati o konfiguraciji MySQL baze podataka.
Nazovimo primjer baze podataka primjera. Izradite bazu podataka sa sljedećim nazivom:
mysqladmin -p stvoriti servermail
Prijava u MySQL:
mysql -u root –p
Zatim unesite zaporku. Ako je sve učinjeno ispravno, na terminalu će se pojaviti unos:
mysql>
Stvorite novog korisnika za prijavu na mrežu:
mysql> GRANT SELECT ON Primjer. * TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'lozinku';
Sada ponovno pokrenite MySQL kako biste bili sigurni da su sve promjene uspješno primijenjene.
Koristimo našu bazu podataka za izradu tablica na temelju nje:
mysql> USE primjer;
Izradite tablicu za domene:
CREATE TABLE `virtual_domains` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR (50) NIJE NULL,
PRIMARY KEY (`id`)
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
Izradite tablicu za korisnike:
CREATE TABLE `virtual_users '(
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR (106) NIJE NULL,
`email` VARCHAR (120) NE NULL,
PRIMARY KEY (`id`),
JEDINSTVENI KLJUČ `email` (` email`),
STRANI KLJUČ (domain_id) REFERENCE virtualni_domeni (id) NA DELETE CASCADE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
Ovdje, kao što možete vidjeti, dodana e-pošta i zaporka. Svaki je korisnik vezan za domenu.
Naposljetku izradite tablicu za pseudonime:
CREATE TABLE `virtual_aliases` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`izvor` varchar (100) NE NULL,
`odredište` varchar (100) NE NULL,
PRIMARY KEY (`id`),
STRANI KLJUČ (domain_id) REFERENCE virtualni_domeni (id) NA DELETE CASCADE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
Uspješno smo konfigurirali MySQL i stvorili tri potrebne tablice. Sada trebate nositi s domenama i e-poštom.
Domene, adrese e-pošte i pseudonime
Dodajmo domenu tablici s domenama. Tamo se mora unijeti FDQN:
INSERT INTO `examplemail`.`virtual_domains`
(`id`, ` name`)
VRIJEDNOSTI
('1', 'example.com'),
("2", "namehost.example.com");
Dodajte podatke o adresi e-pošte u korisničku tablicu:
INSERT INTO `examplemail`.`virtual_users`
(`id`, ` domain_id`, `password`, ` email`)
VRIJEDNOSTI
('1', '1', ENCRYPT ('firstpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16))), ' '),
('2', '1', ENCRYPT ('secondpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16))), ' ');
Sada dodajte informacije u posljednju tablicu:
INSERT INTO `examplemail`.`virtual_aliases`
(`id`, ` domain_id`, `source`, ` destination`)
VRIJEDNOSTI
('1', '1', ' ', ' ' ');
Zatvori MySQL:
mysql> exit
Postfix Postavljanje
Prelazak izravno na parametre Postfix. Potreban nam je klijent za e-poštu za slanje poruka u ime korisnika unesenih u bazu podataka i rukovanje SMTP vezom. Za početak ćemo izraditi sigurnosnu kopiju konfiguracijske datoteke, u kojem slučaju je moguće vratiti zadane postavke:
cp /etc/postfix/main.cf/etc/postfix/main.cf.orig
Sada otvorite konfiguracijsku datoteku:
nano /etc/postfix/main.cf
Umjesto nano, možete koristiti bilo koji uređivač teksta koji vam odgovara.
Komentirat ćemo TLS parametre i dodavati 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 ćemo dodati još nekoliko parametara:
smtpd_sasl_type = golubinjak
smtpd_sasl_path = private / auth
smtpd_sasl_auth_enable = da
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
Moramo također komentirati postavke za mydestination i promijeniti ih na localhost:
#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = localhost
Parametar myhostname treba sadržavati naš naziv domene:
myhostname = namehost.example.com
Sada dodajte redak za slanje poruka svim domenama navedenim u MySQL tablici:
virtual_transport = lmtp: unix: private / dovecot-lmtp
Dodajte još tri parametra kako bi se Postfix mogao povezati s 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 MySQL i Postfix datoteka
Stvorite datoteku
mysql-virtual-mailbox-domains.cf
Dodajte mu te vrijednosti:
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_domains WHERE ime = '% s'
Ponovo pokreni Postfix:
Ponovno pokretanje postfix usluge
Probna domena za Postfix:
postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
Izradite drugu datoteku:
nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_users WHERE email = '% s'
Ponovno pokreni Postfix:
Ponovno pokretanje postfixa usluge
Zatim ponovno provjerite Postfix:
postmap -q mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
Ako je učinjeno ispravno, treba se prikazati
Izradite posljednju datoteku za pseudonime:
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT odredište OD virtual_aliases WHERE izvor = '% s'
ponovo pokrenuti:
Ponovno pokretanje postfixa usluge
Posljednji put testirali smo:
postmap -q mysql: /etc/postfix/mysql-virtual-alias-maps.cf
Podešavanje golubarnika
Izrađujemo sigurnosne kopije za sedam datoteka koje ćemo promijeniti:
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
Ovo je uzorak naredbe. Unesite šest više istih za te 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 komentiran:
uključuju 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 liniju mail_location, uklonite komentar, postavite sljedeći parametar:
mail_location = maildir: / var / mail / vhosts /% d /% n
Pronađi mail_privileged_group, stavi tamo:
mail_privileged_group = mail
Provjeravamo pristup. Unesite naredbu:
ls -ld / var / mail
Pristup bi trebao izgledati ovako:
drwxrwsr-x 3 root vmail 4096 sij 24 21:23 / var / mail
Izradite mapu za svaku registriranu domenu:
mkdir -p /var/mail/vhosts/example.com
Stvorite korisnika i grupu s ID-om 5000:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / mail
Promjena vlasnika korisnika VMail:
chown -R vmail: vmail / var / mail
Uredite sljedeću datoteku:
nano /etc/dovecot/conf.d/10-auth.conf
Poništite komentare teksta autentifikacije i dodajte redak:
disable_plaintext_auth = da
Promijenite sljedeći parametar:
auth_mechanisms = obična prijava
Komentirajući ovaj redak:
#! include auth-system.conf.ext
Dodavanje ovlaštenja za MySQL, komentiranje retka:
! uključuje auth-sql.conf.ext
Izradite datoteku s podacima za provjeru autentičnosti:
nano /etc/dovecot/conf.d/auth-sql.conf.ext
Unesite tamo sljedeće:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = statički
args = uid = vmail gid = vmail home = / var / mail / vhosts /% d /% n
}
Uredite sljedeću datoteku:
nano /etc/dovecot/dovecot-sql.conf.ext
Postavite MySQL parametar i komentirajte:
driver = mysql
Ukloni komentar i unesite:
connect = host = 127.0.0.1 dbname = servermail korisnik = lozinka za usermail = mailpassword
Pronađite redak default_pass_scheme, uklonite komentar i unesite parametar:
default_pass_scheme = SHA512-CRYPT
Ukloni komentar i unesite novi parametar:
password_query = SELECT e-mail kao korisnik, lozinka OD virtual_users WHERE email = '% u';
Promijeni 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
Ukloni komentar i unesite parametar:
usluga imap-login {
inet_listener imap {
port = 0
}
upišite:
service lmtp {
unix_listener / var / spool / postfix / privatni / dovecot-lmtp {
mod = 0600
user = postfix
group = postfix
}
#inet_listener lmtp {
# Izbjegavajte da LMTP postane vidljiv za internet
#address =
#port =
#}
}
Promijenite sljedeću konfiguraciju:
autorizacija usluge {
unix_listener / var / spool / postfix / private / auth {
mod = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mod = 0600
user = vmail
#group =
}
#unix_listener / var / spool / postfix / private / auth {
# način = 0666
#}
user = dovecot
}
Promijenite posljednju konfiguraciju u ovoj datoteci:
službenik za autorizaciju {
# Provjera radnog procesa
# / etc / shadow. Ako to nije potrebno
# $ default_internal_user.
user = vmail
}
Tako smo konačno postavili poslužitelj e-pošte na Ubuntuu. Također možete tamo dodati SSL konfiguraciju ili koristiti zadanu. Da biste zaštitili od neželjene pošte, možete konfigurirati Spam Assassin da radi s našim poslužiteljem.
Pomoću standardnog klijenta e-pošte unesite te informacije:
- Korisničko ime:
- Zaporka: email1
- IMAP: primjer.com
- SMTP: example.com