Mnohí používatelia Ubuntu používajú systém nielen pre domáce potreby. Tento prístup je úplne opodstatnený, pretože na systémoch Linux je oveľa pohodlnejšie robiť programovanie, vytvárať servery a webové stránky. Jednou z možností je vytvorenie e-mailového servera. Pre začiatočníkov sa táto úloha bude zdať strašne náročná, ale ak zistíte, ako nainštalovať a nakonfigurovať poštový server pre Ubuntu, úloha nebude pre vás tak ťažká.
Ako nastaviť poštový server založený na Ubuntu.
obsah
- 1 Trochu teórie
- 1.1 Prečo Postfix?
- 2 Vytvorte poštový server
- 2.1 inštalácia
- 2.2 Nastavenie MySQL
- 2.3 Domény, e-mailové adresy a prezývky
- 2.4 Postfix Setup
- 2.5 Nastavenie súborov MySQL a Postfixu
- 2.6 Dovecot nastavenie
Trochu teórie
Pred špecifickými pokynmi a fermentáciou kódu nemôžete robiť bez zlomku teoretického materiálu. Je dôležité pochopiť, čo je e-mailový server a ako funguje.
Konfigurovaný poštový server, aby to jednoducho povedal, je poštár, ktorý obdrží "list" od jedného e-mailového klienta a dáva ho inému. V tomto, v podstate, celú podstatu práce tohto softvéru. Poštový server je potrebný nielen na odosielanie e-mailov.Na týchto stránkach je zodpovedný za registráciu používateľov, odosielanie formulárov a iné dôležité akcie, bez ktorých by sa stránka stala ako kniha, na ktorú sa môžete pozrieť iba obrátením stránok, ale je ťažké niečo urobiť.
Poštové servery v systéme Linux sa výrazne odlišujú od systémov Windows a iných systémov. V systéme Windows je to hotový uzavretý program, ktorý sa môže začať používať. Linuxové distribúcie vyžadujú aj samoladenie všetkých komponentov. A server bude nakoniec pozostávať nie z jedného programu, ale niekoľkých. Budeme používať Postfix v kombinácii s Dovecotom a MySQL.
Prečo Postfix?
Existuje niekoľko e-mailových klientov na Ubuntu, ale stále sme si to vybrali. Nastavenie programu Posfix na Ubuntu je oveľa jednoduchšie ako ten istý SendMail, čo je dôležité pre začínajúceho používateľa. V kombinácii s Dovecot je Postfix schopný robiť všetko, čo sa z poštových serverov zvyčajne vyžaduje.
Postfix je priamo poštovým agentom. Bude hrať dôležitú úlohu v celom podaní. Ide o program s otvoreným zdrojovým kódom, ktorý v predvolenom nastavení používa mnoho serverov a webových stránok. Dovecot je poštový agent. Jeho hlavnou úlohou je zaistiť bezpečnosť servera. MySQL je ideálny systém správy databáz (DBMS) pre všetky lokality.Je potrebné spracovať informácie, ktoré dostávame od používateľov nášho servera.
Takže teoretická časť je ukončená. Teraz stojí za to praxi.
Vytvorte poštový server
Čo je potrebné nakonfigurovať pred inštaláciou poštového servera?
- MySQL;
- Zóna DNS, musíte mať osobný FDQN. Ďalej budeme používať názov.
inštalácia
Inštalácia programu:
apt-get nainštalovať postfix postfix-mysql dovecot-jadro dovecot-imapd dovecot-lmtpd dovecot-mysql
Keď sa zobrazí okno konfigurácie Postfix, bude potrebné vybrať položku "Internetová stránka".
Nižšie sa zobrazí výzva na zadanie názvu domény, použite "primer.ru".
Nastavenie MySQL
Teraz musíme nakonfigurovať tri tabuľky pre dáta v MySQL: pre domény, pre používateľov a pre tzv. Alias - aliasy alebo ďalšie poštové schránky používateľa. Tu nebudeme detailne diskutovať o konfigurácii databázy MySQL.
Zavolajte databázu examplemail. Vytvorte databázu s nasledujúcim názvom:
mysqladmin -p vytvoriť servermail
Prihlásenie do MySQL:
mysql -u root -p
Potom zadajte heslo. Ak je všetko vykonané správne, bude v termináli zadaná položka:
mysql>
Vytvorte nového používateľa špeciálne na prihlásenie do siete:
mysql> GRANT SELECT ON examplemail. * TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'heslo';
Teraz reštartujte MySQL, aby ste sa uistili, že všetky zmeny sú úspešne použité.
Našu databázu používame na vytvorenie tabuliek založených na nej:
mysql> USE examplemail;
Vytvorte tabuľku pre domény:
CREATE TABLE 'virtual_domains' (
'id' INT NIE NULL AUTO_INCREMENT,
'meno' VARCHAR (50) NIE NULL,
PRIMÁRNY KĽÚČ ('id')
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
Vytvoriť tabuľku pre používateľov:
CREATE TABLE 'virtual_users' (
'id' INT NIE NULL AUTO_INCREMENT,
'domain_id' INT NOT NULL,
'heslo' VARCHAR (106) NIE NULL,
'email' VARCHAR (120) NIE NULL,
PRIMÁRNY KĽÚČ ("id"),
UNIQUE KEY "e-mail" ("e-mail"),
FOREIGN KEY (doména_id) REFERENCIE virtual_domains (id) ON DELETE CASCADE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
Tu, ako vidíte, pridali e-mail a heslo. Každý používateľ je viazaný na doménu.
Nakoniec vytvorte tabuľku pre pseudonymá:
CREATE TABLE 'virtual_aliases' (
'id' INT NIE NULL AUTO_INCREMENT,
'domain_id' INT NOT NULL,
'zdroj' varchar (100) NOT NULL,
"cieľ" varchar (100) NOT NULL,
PRIMÁRNY KĽÚČ ("id"),
FOREIGN KEY (doména_id) REFERENCIE virtual_domains (id) ON DELETE CASCADE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
Úspešne sme nakonfigurovali MySQL a vytvorili tri potrebné tabuľky. Teraz sa musíte zaoberať doménami a e-mailmi.
Domény, e-mailové adresy a prezývky
Pridajme našu doménu k tabuľke s doménami. Tu musí byť zadané FDQN:
INSERT IN '' examplemail '' 'Virtual_domains'
("id", "meno")
HODNOTY
('1', 'example.com'),
('2', 'namehost.example.com');
Pridajte údaje o e-mailovej adrese do tabuľky používateľov:
INSERT INTO 'examplemail'. 'Virtual_users'
('id', 'domain_id', 'heslo', 'e-mail')
HODNOTY
('1', '1', ENCRYPT ('firstpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()
('2', '1', ENCRYPT ('secondpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16))), '[email protected]');
Teraz pridajte informácie do poslednej tabuľky:
INSERT INTO 'examplemail', 'Virtual_aliases'
("id", "domain_id", "zdroj", "cieľ")
HODNOTY
('1', '1', '[email protected]', '[email protected]');
Zavrieť MySQL:
mysql> exit
Postfix Setup
Presunutím priamo na parametre Postfix. Potrebujeme poštový klient posielať správy v mene používateľov zadaných do databázy a zvládnuť pripojenie SMTP. Najprv vytvoríme zálohu konfiguračného súboru, v takom prípade sa vrátili na štandardné nastavenia:
cp /etc/postfix/main.cf/etc/postfix/main.cf.orig
Teraz otvorte konfiguračný súbor:
nano /etc/postfix/main.cf
Namiesto nano môžete použiť ľubovoľný textový editor, ktorý uprednostňujete.
Budeme komentovať parametre TLS a pridáme aj ďalšie. Voľný SSL sa používa tu:
# TLS parametrov
# 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 = áno
#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 = áno
smtpd_tls_auth_only = áno
Potom pridáme ďalšie parametre:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private / auth
smtpd_sasl_auth_enable = áno
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
Musíme tiež komentovať nastavenia mydestination a zmeniť ich na localhost:
#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = localhost
Parameter myhostname by mal obsahovať názov našej domény:
myhostname = menohost.example.com
Teraz pridajte riadok na odosielanie správ do všetkých domén uvedených v tabuľke MySQL:
virtual_transport = lmtp: unix: private / dovecot-lmtp
Pridajte tri ďalšie parametre, aby sa mohol Postfix pripojiť k tabuľkám 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
Nastavenie súborov MySQL a Postfixu
Vytvorte súbor
mysql-virtual-mailbox-domains.cf
Pridajte tieto hodnoty:
user = usermail
heslo = mailpassword
hostitelia = 127.0.0.1
dbname = examplemail
dotaz = SELECT 1 FROM virtu_domains WHERE name = "% s"
Reštartujte Postfix:
reštartujte službu postfix
Testovať doménu pre Postfix:
postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
Vytvoriť ďalší súbor:
nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
heslo = mailpassword
hostitelia = 127.0.0.1
dbname = examplemail
dotaz = SELECT 1 FROM virtual_users WHERE email = "% s"
Reštartujte Postfix:
reštartujte službu postfix
Potom znova skontrolujte Postfix:
postmap -q [email protected] mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
Ak sa to vykoná správne, malo by sa zobraziť
Vytvoriť posledný súbor pre aliasy:
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
heslo = mailpassword
hostitelia = 127.0.0.1
dbname = examplemail
query = SELECT cieľ z virtuálnych_klipov WHERE source = "% s"
Restart:
reštartujte službu postfix
Naposledy sme testovali:
postmap -q [email protected] mysql: /etc/postfix/mysql-virtual-alias-maps.cf
Dovecot nastavenie
Vytvárame zálohy pre sedem súborov, ktoré sa zmenia:
cp /etc/dovecot/dovecot.conf/etc/dovecot/dovecot.conf.orig
Toto je príkaz vzorky. Zadajte ďalších šest z týchto súborov:
/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
Otvorte prvý súbor:
nano /etc/dovecot/dovecot.conf
Skontrolujte, či je tento parameter komentovaný:
! include conf.d / *. conf
zadajte:
! include_try /usr/share/dovecot/protocols.d/*.protocol
protokol = imap lmtp
Namiesto:
! include_try /usr/share/dovecot/protocols.d/*.protocol line
Upravte nasledujúci súbor:
nano /etc/dovecot/conf.d/10-mail.conf
Nájdite linku mail_location, odstráňte komentár, nastavte nasledujúci parameter:
mail_location = mailová adresa: / var / mail / vhosts /% d /% n
Nájsť mail_privileged_group, vložte tam:
mail_privileged_group = pošta
Kontrolujeme prístup. Zadajte príkaz:
ls -ld / var / pošta
Prístup by mal vyzerať takto:
drwxrwsr-x 3 koreň vmail 4096 Jan 24 21:23 / var / mail
Vytvorte priečinok pre každú zaregistrovanú doménu:
mkdir -p /var/mail/vhosts/example.com
Vytvorte používateľa a skupinu s ID 5000:
groupadd -g 5000 vmail
useradd -g vmail-u 5000 vmail -d / var / mail
Zmeniť vlastníka na používateľa VMail:
chown -R vmail: vmail / var / mail
Upravte nasledujúci súbor:
nano /etc/dovecot/conf.d/10-auth.conf
Odomknite text autentizácie a pridajte riadok:
disable_plaintext_auth = yes
Zmeňte nasledujúci parameter:
auth_mechanisms = jednoduché prihlásenie
Pri komentovaní tohto riadku:
#! include auth-system.conf.ext
Pridajte autorizáciu MySQL, komentujte riadok:
! include auth-sql.conf.ext
Vytvorte súbor s údajmi na overenie totožnosti:
nano /etc/dovecot/conf.d/auth-sql.conf.ext
Zadajte nasledovné:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
ovládač = statický
args = uid = vmail gid = vmail domov = / var / mail / vhosts /% d /% n
}
Upravte nasledujúci súbor:
nano /etc/dovecot/dovecot-sql.conf.ext
Nastavte parameter MySQL a vyslovte komentár:
driver = mysql
Odkomentujte a zadajte:
connect = host = 127.0.0.1 názov dbname = servermail user = usermail heslo = mailpassword
Nájdite riadok default_pass_scheme, odkomentujte a zadajte parameter:
default_pass_scheme = SHA512-CRYPT
Odkomentovať a uviesť nový parameter:
password_query = SELECT e-mail ako používateľ, heslo FROM virtual_users WHERE email = "% u";
Zmeniť vlastníka:
chown -R vmail: dovecot / etc / dovecot
chmod -Ro-rwx / etc / dovecot
Otvoriť a upraviť súbor:
nano /etc/dovecot/conf.d/10-master.conf
Odkomentujte a zadajte parameter:
služba imap-login {
inet_listener imap {
port = 0
}
zadajte:
service lmtp {
unix_listener / var / spool / postfix / súkromný / dovecot-lmtp {
režim = 0600
user = postfix
skupina = postfix
}
#inet_listener lmtp {
# Vyhnite sa viditeľnosti LMTP pre internet
#address =
#port =
#}
}
Zmeňte nasledujúcu konfiguráciu:
service auth {
unix_listener / var / spool / postfix / private / auth {
režim = 0666
user = postfix
skupina = postfix
}
unix_listener auth-userdb {
režim = 0600
user = vmail
#group =
}
#unix_listener / var / spool / postfix / súkromný / auth {
# mode = 0666
#}
user = dovecot
}
Zmena poslednej konfigurácie v tomto súbore:
service auth-worker {
# Auth worker process
# / etc / shadow. Ak to nie je potrebné
# $ default_internal_user.
user = vmail
}
Takže sme nakoniec vytvorili poštový server na Ubuntu. A tam môžete pridať aj konfiguráciu SSL alebo použiť predvolenú. Na ochranu proti spamu môžete nakonfigurovať Spam Assassin na prácu s naším serverom.
Použite štandardný e-mailový klient na zadanie týchto informácií:
- Používateľské meno: [email protected]
- Heslo: email1
- IMAP: example.com
- SMTP: example.com