Daugelis „Ubuntu“ vartotojų naudoja sistemą ne tik namų reikmėms. Šis požiūris yra visiškai pagrįstas, nes Linux sistemose daug patogiau programuoti, kurti serverius ir svetaines. Vienas iš patogumų yra elektroninio pašto serverio sukūrimas. Pradedantiesiems šis uždavinys bus labai sudėtingas, tačiau jei išsiaiškinsite, kaip įdiegti ir konfigūruoti Ubuntu pašto serverį, užduotis jums neatrodo tokia sunki.
Kaip sukurti pašto serverį, pagrįstą Ubuntu.
Truputį teorijos
Prieš konkrečius nurodymus ir kodavimo fermentaciją negalima atlikti be teorinės medžiagos dalies. Svarbu suprasti, kas yra el. Pašto serveris ir kaip jis veikia.
Konfigūruotas pašto serveris, norėdamas jį labai paprasta, yra paštininkas, kuris gauna „laišką“ iš vieno el. Pašto kliento ir suteikia jį kitam. Iš esmės, visa šios programinės įrangos darbo esmė. Pašto serveris reikalingas ne tik el. Laiškams siųsti. Svetainėse jis yra atsakingas už vartotojų registravimą, formų pateikimą ir kitus svarbius veiksmus, be kurių ši svetainė taptų kaip knyga, kurią galite žiūrėti tik sukant puslapius, bet sunku ką nors padaryti.
„Linux“ pašto serveriai žymiai skiriasi nuo „Windows“ ir kitų sistemų serverių. „Windows“ tai yra parengta uždara programa, kuri gali pradėti naudoti tik. Linux platinimui taip pat reikalingas visų komponentų derinimas. Ir serveris galiausiai susideda iš ne vienos programos, bet kelių. Naudosime Postfix kartu su Dovecot ir MySQL.
Kodėl Postfix?
„Ubuntu“ yra keletas el. Pašto klientų, bet mes vis dar pasirinkome šį. „Posfix“ nustatymas „Ubuntu“ yra daug lengviau nei tas pats „SendMail“, ir tai svarbu pradedantiesiems vartotojams. Kartu su „Dovecot“, „Postfix“ gali daryti viską, kas paprastai reikalinga iš pašto serverių.
„Postfix“ yra pats pašto siuntimo agentas. Jis vaidins svarbų vaidmenį visame pareiškime. Tai atviro kodo programa, kurią daugelis serverių ir svetainių naudoja pagal nutylėjimą. Dovecot yra pašto pristatymo agentas. Jo pagrindinis vaidmuo yra užtikrinti serverio saugumą. MySQL yra ideali duomenų bazių valdymo sistema (DBVS) bet kuriai svetainei. Tai reikalinga informacijai, kurią gauname iš mūsų serverio naudotojų.
Taigi, teorinė dalis baigėsi. Dabar verta mokytis.
Sukurti pašto serverį
Kas turėtų būti konfigūruojama prieš įdiegiant pašto serverį?
- MySQL;
- DNS zona, turite turėti asmeninį FDQN. Toliau naudosime namehost.
Diegimas
Įdiekite programą:
apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
Kai pasirodys „Postfix“ konfigūracijos langas, turėsime pasirinkti „interneto svetainę“.
Žemiau bus paprašyta įvesti domeno vardą, naudokite „primer.ru“.
„MySQL“ sąranka
Dabar reikia sukonfigūruoti tris MySQL duomenų lenteles: domenams, naudotojams ir vadinamiesiems Alias - slapyvardžiams arba papildomoms vartotojų pašto dėžutėms. Čia mes išsamiai neaptarsime MySQL duomenų bazės konfigūracijos.
Paskambinkime „examplemail“ duomenų bazei. Sukurti duomenų bazę su šiuo pavadinimu:
mysqladmin -p sukuria servermailą
Prisijunkite prie „MySQL“:
mysql -u šaknis –p
Tada įveskite slaptažodį. Jei viskas daroma teisingai, terminale bus įrašas:
mysql>
Sukurkite naują naudotoją specialiai, kad galėtumėte prisijungti prie tinklo:
mysql> GRANT SELECT ON examplemail. * TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'password';
Dabar iš naujo paleiskite „MySQL“, kad įsitikintumėte, jog visi pakeitimai sėkmingai taikomi.
Mes naudojame mūsų duomenų bazę, kad sukurtume lenteles pagal ją:
mysql> USE examplemail;
Sukurkite domenų lentelę:
CREATE TABLE `virtual_domains` (
„id` INT NOT NULL AUTO_INCREMENT,
"name" VARCHAR (50) NE NULL,
PRIMARY KEY („id“)
) VARIKLIS = InnoDB DEFAULT CHARSET = utf8;
Sukurkite lentelę naudotojams:
CREATE TABLE `virtual_users` (
„id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NE NULL,
„slaptažodis“ VARCHAR (106) NE NULL,
„email“ VARCHAR (120) NOT NULL,
PRIMARY KEY („id”),
UNIQUE KEY „email“ („el. Paštas“),
UŽSIENIO RODIKLIS (domain_id) NUORODOS virtual_domains (id) ON DELETE CASCADE
) VARIKLIS = InnoDB DEFAULT CHARSET = utf8;
Čia, kaip matote, pridėjote el. Laišką ir slaptažodį. Ir kiekvienas vartotojas yra susietas su domenu.
Galiausiai sukurkite slapyvardžių lentelę:
CREATE TABLE `virtual_aliases` (
„id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NE NULL,
„source` varchar (100) NOT NULL,
„paskirties vieta“ (100) NE NULL,
PRIMARY KEY („id”),
UŽSIENIO RODIKLIS (domain_id) NUORODOS virtual_domains (id) ON DELETE CASCADE
) VARIKLIS = InnoDB DEFAULT CHARSET = utf8;
Mes sėkmingai sukonfigūravome „MySQL“ ir sukūrėme tris būtinas lenteles. Dabar jums reikia spręsti domenus ir el. Laiškus.
Domenai, el. Pašto adresai ir slapyvardžiai
Pridėkime savo domeną prie stalo su domenais. FDQN turi būti įvestas ten:
INSERT INTO `examplemail`.`virtual_domains`
(„id“, „pavadinimas“)
VERTĖS
(„1“, „pavyzdys.lt“),
(„2“, „namehost.example.com“);
Įtraukite duomenis apie el. Pašto adresą į naudotojo lentelę:
INSERT INTO `examplemail```virtual_users`
(„id“, „domain_id“, „slaptažodis“, „el. paštas“)
VERTĖS
('1', '1', ENCRYPT ('firstpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16)), ' '),
(„2“, „1“, „ENCRYPT“ („antrasis slaptažodis“, „CONCAT“ („$ 6 $“, SUBSTRING (SHA (RAND ()), -16)), „ “);
Dabar pridėkite informaciją į paskutinę lentelę:
INSERT INTO `examplemail`.`virtual_aliases`
(„id“, „domain_id“, „šaltinis“, „paskirties vieta“)
VERTĖS
(„1“, „1“, „ “, „ “);
Uždaryti „MySQL“:
mysql> išeiti
„Postfix“ sąranka
Tiesioginis perėjimas prie parametrų „Postfix“. Mums reikia pašto kliento siųsti pranešimus vartotojų, įvestų į duomenų bazę, vardu ir tvarkyti SMTP ryšį. Pirmiausia, mes sukursime konfigūracijos failo atsarginę kopiją, tokiu atveju buvo galima grįžti į numatytuosius nustatymus:
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
Dabar atidarykite konfigūracijos failą:
nano /etc/postfix/main.cf
Vietoj nano galite naudoti bet kokį patogų teksto redaktorių.
Komentuosime TLS parametrus ir pridėsime kitus. Čia naudojamas nemokamas SSL:
# TLS parametrai
# 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 = taip
#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 = taip
smtpd_tls_auth_only = taip
Po to pridėsime daugiau parametrų:
smtpd_sasl_type = dovecot
smtpd_sasl_path = privatus / auth
smtpd_sasl_auth_enable = taip
smtpd_recipient_restrictions =
leid_sasl_authenticated,
engedély_mynetworks
atmesti_unauth_destination
Taip pat turime komentuoti „mydestination“ nustatymus ir pakeisti juos į „localhost“:
#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = localhost
„Myhostname“ parametre turėtų būti mūsų domeno vardas:
myhostname = namehost.example.com
Dabar pridėkite eilutę, kad galėtumėte siųsti pranešimus į visus „MySQL“ lentelėje išvardytus domenus:
virtual_transport = lmtp: unix: privatus / dovecot-lmtp
Pridėkite dar tris parametrus, kad „Postfix“ galėtų prisijungti prie „MySQL“ lentelių:
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
MySQL ir Postfix rinkmenų nustatymas
Sukurkite failą
mysql-virtual-mailbox-domains.cf
Pridėkite šias vertes:
user = usermail
slaptažodis = pašto slaptažodis
šeimininkai = 127.0.0.1
dbname = examplemail
query = SELECT 1 Iš virtual_domains WHERE name = '% s'
Iš naujo paleiskite „Postfix“:
iš naujo paleisti paslaugos postfix
Patikrinkite „Postfix“ domeną:
postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
Sukurti kitą failą:
nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
slaptažodis = pašto slaptažodis
šeimininkai = 127.0.0.1
dbname = examplemail
query = SELECT 1 iš virtualių naudotojų WHERE email = '% s'
Perkraukite „Postfix“:
iš naujo paleisti paslaugos postfix
Tada vėl patikrinkite „Postfix“:
postmap -q mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
Jei tai padaryti teisingai, turėtų būti rodoma
Sukurkite paskutinį failo pavadinimą:
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
slaptažodis = pašto slaptažodis
šeimininkai = 127.0.0.1
dbname = examplemail
query = SELECT paskirties vieta iš virtual_aliases WHERE source = '% s'
Paleiskite iš naujo:
iš naujo paleisti paslaugos postfix
Paskutinį kartą testavome:
postmap -q mysql: /etc/postfix/mysql-virtual-alias-maps.cf
„Dovecot“ sąranka
Atliekame septynių failų, kurie bus pakeisti, atsargines kopijas:
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
Tai yra pavyzdinė komanda. Šiems failams įveskite dar šešis:
/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
Atidarykite pirmąjį failą:
nano /etc/dovecot/dovecot.conf
Patikrinkite, ar šis parametras yra komentuotas:
! įtraukti conf.d / *
Įveskite:
! include_try /usr/share/dovecot/protocols.d/*.protocol
protokolas = imap lmtp
Vietoj:
! include_try /usr/share/dovecot/protocols.d/*.protocol eilutė
Redaguokite šį failą:
nano /etc/dovecot/conf.d/10-mail.conf
Raskite eilutę mail_location, pašalinkite komentarą, nustatykite šį parametrą:
mail_location = maildir: / var / mail / vhosts /% d /% n
Rasti mail_privileged_group, padėkite ten:
mail_privileged_group = paštas
Mes patikriname prieigą. Įveskite komandą:
ls -ld / var / mail
Prieiga turėtų atrodyti taip:
drwxrwsr-x 3 šaknis vmail 4096 Jan 24 21:23 / var / mail
Sukurkite kiekvieno registruoto domeno aplanką:
mkdir -p /var/mail/vhosts/example.com
Sukurkite naudotoją ir grupę su ID 5000:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / mail
Pakeiskite savininką į „VMail“:
chown -R vmail: vmail / var / mail
Redaguokite šį failą:
nano /etc/dovecot/conf.d/10-auth.conf
Pašalinkite autentifikavimo tekstą ir pridėkite eilutę:
disable_plaintext_auth = taip
Pakeiskite šį parametrą:
auth_mechanisms = paprastas prisijungimas
Komentuodami šią eilutę:
#! apima auth-system.conf.ext
Pridėkite „MySQL“ leidimą, komentuokite eilutę:
! įtraukti auth-sql.conf.ext
Sukurkite failą su duomenimis autentifikavimui:
nano /etc/dovecot/conf.d/auth-sql.conf.ext
Įveskite čia:
passdb {
vairuotojas = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
vairuotojas = statinis
args = uid = vmail gid = vmail home = / var / mail / vhosts /% d /% n
}
Redaguokite šį failą:
nano /etc/dovecot/dovecot-sql.conf.ext
Nustatykite „MySQL“ parametrą ir komentuokite:
vairuotojas = mysql
Panaikinkite ir įveskite:
connect = host = 127.0.0.1 dbname = servermail user = usermail password = mailpassword
Raskite eilutę default_pass_scheme, pašalinkite ir įveskite parametrą:
default_pass_scheme = SHA512-CRYPT
Panaikinti ir įvesti naują parametrą:
password_query = PASIRINKITE el. laišką kaip vartotoją, slaptažodį iš virtualių naudotojų WHERE email = '% u';
Pakeiskite savininką:
chown -R vmail: dovecot / etc / dovecot
chmod -R o-rwx / etc / dovecot
Atidaryti ir redaguoti failą:
nano /etc/dovecot/conf.d/10-master.conf
Panaikinkite ir įveskite parametrą:
paslauga imap-login {
inet_listener imap {
prievadas = 0
}
Įveskite:
paslauga lmtp {
unix_listener / var / spool / postfix / private / dovecot-lmtp {
režimas = 0600
user = postfix
group = postfix
}
#inet_listener lmtp {
# Venkite LMTP matyti internete
#address =
#port =
#}
}
Pakeiskite šią konfigūraciją:
paslaugos autorizacija {
unix_listener / var / spool / postfix / private / auth {
režimas = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
režimas = 0600
user = vmail
#group =
}
#unix_listener / var / spool / postfix / private / auth {
# režimas = 0666
#}
user = dovecot
}
Pakeiskite paskutinę konfigūraciją šiame faile:
paslaugos autorius {
# Darbuotojo procesas
# / etc / shadow. Jei to nereikia
# $ default_internal_user.
user = vmail
}
Taigi, mes pagaliau sukūrėme pašto serverį Ubuntu. Taip pat galite pridėti SSL konfigūraciją arba naudoti numatytąjį. Norėdami apsaugoti nuo šlamšto, galite sukonfigūruoti „Spam Assassin“ dirbti su mūsų serveriu.
Norėdami įvesti šią informaciją, naudokite standartinį el. Pašto klientą:
- Vartotojo vardas:
- Slaptažodis: el. Paštas1
- IMAP: example.com
- SMTP: example.com