Daudzi Ubuntu lietotāji šo sistēmu izmanto ne tikai mājas vajadzībām. Šī pieeja ir pilnībā pamatota, jo Linux sistēmās ir daudz ērtāk plānot, izveidot serverus un tīmekļa vietnes. Viena no ērtībām ir e-pasta servera izveide. Iesācējiem šis uzdevums būs ļoti grūti, bet, ja jūs sapratīsiet, kā instalēt un konfigurēt Ubuntu pasta serveri, uzdevums jums nešķiet tik grūti.
Kā izveidot pasta serveri, pamatojoties uz Ubuntu.
Nedaudz teorijas
Pirms konkrētiem norādījumiem un koda fermentācija nevar veikt bez teorētiskā materiāla daļas. Ir svarīgi saprast, kas ir e-pasta serveris un kā tas darbojas.
Konfigurēts pasta serveris, lai to vienkārši pateiktu, ir pastnieks, kurš saņem „vēstuli” no viena e-pasta klienta un dod to citam. Šajā principā visa šīs programmatūras darba būtība. E-pasta serveris ir nepieciešams ne tikai e-pasta sūtīšanai. Vietās viņš ir atbildīgs par lietotāju reģistrēšanu, veidlapu iesniegšanu un citām svarīgām darbībām, bez kurām vietne kļūtu par grāmatu, kuru jūs varat aplūkot, tikai pagriežot lapas, bet ir grūti kaut ko darīt.
Pasta serveri Linux sistēmās ievērojami atšķiras no Windows un citu sistēmu serveriem. Sistēmā Windows šī ir gatava slēgta programma, kas var sākt izmantot tikai. Linux sadalījumiem ir nepieciešama arī visu komponentu pašregulācija. Un serveris galu galā sastāvēs no vienas programmas, bet vairākas. Mēs izmantosim Postfix kombinācijā ar Dovecot un MySQL.
Kāpēc Postfix?
Ubuntu ir vairāki e-pasta klienti, bet mēs joprojām izvēlējāmies šo. Posfix iestatīšana uz Ubuntu ir daudz vieglāka nekā tas pats SendMail, un tas ir svarīgi iesācēja lietotājam. Kopā ar Dovecot, Postfix spēj darīt visu, kas parasti nepieciešams no pasta serveriem.
Postfix ir tieši pasta pārsūtīšanas aģents. Viņam būs liela nozīme visā iesniegumā. Šī ir atvērtā koda programma, kuru daudzi serveri un tīmekļa vietnes izmanto pēc noklusējuma. Dovecot ir pasta piegādes aģents. Tās galvenais uzdevums ir nodrošināt servera drošību. MySQL ir ideāla datu bāzes pārvaldības sistēma (DBMS) jebkurām vietnēm. Tas ir nepieciešams, lai apstrādātu informāciju, ko saņemam no mūsu servera lietotājiem.
Tātad ar teorētisko daļu ir beidzies. Tagad ir vērts doties praksē.
Izveidot pasta serveri
Kas jākonfigurē pirms pasta servera instalēšanas?
- MySQL;
- DNS zonā, jums jābūt personiskam FDQN. Tālāk mēs izmantosim namehost.
Uzstādīšana
Instalējiet programmu:
apt-get instalēt postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
Kad parādīsies Postfix konfigurācijas logs, mums būs jāizvēlas “interneta vietne”.
Zemāk mums tiks lūgts ievadīt domēna nosaukumu, izmantojot "primer.ru".
MySQL iestatīšana
Tagad mums ir jākonfigurē trīs datu tabulas MySQL: domēniem, lietotājiem un tā saucamajām alias - pseidonīmiem vai papildu lietotāju pastkastēm. Šeit mēs sīkāk neapspriedīsim MySQL datubāzes konfigurāciju.
Piezvanīsim uz examplemail datu bāzi. Izveidojiet datubāzi ar šādu nosaukumu:
mysqladmin -p izveido serverail
Pieteikšanās MySQL:
mysql -u root –p
Pēc tam ievadiet paroli. Ja viss tiek darīts pareizi, terminālī būs ieraksts:
mysql>
Izveidojiet jaunu lietotāju, lai pieteiktos tīklā:
mysql> GRANT SELECT ON examplemail. * TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'password';
Tagad restartējiet MySQL, lai pārliecinātos, ka visas izmaiņas ir veiksmīgi piemērotas.
Mēs izmantojam mūsu datubāzi, lai izveidotu tabulas, pamatojoties uz to:
mysql> USE examplemail;
Izveidojiet tabulu domēniem:
CREATE TABLE `virtual_domains` (
`id` INT NOT NULL AUTO_INCREMENT,
"nosaukums" VARCHAR (50) NOT NULL,
PRIMARY KEY (“id”)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
Izveidojiet tabulu lietotājiem:
CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NAV NULL,
"parole" VARCHAR (106) NOT NULL,
VARCHAR (120) NOT NULL,
PRIMARY KEY ("id"),
UNIQUE KEY "email" ("e-pasts"),
ĀRĒJĀ KEY (domain_id) REFERENCES virtual_domains (id) ON DELETE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
Šeit, kā jūs varat redzēt, pievienojāt e-pastu un paroli. Un katrs lietotājs ir saistīts ar domēnu.
Visbeidzot, izveidojiet pseidonīmu tabulu:
CREATE TABLE `virtual_aliases` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NAV NULL,
"source" varchar (100) NOT NULL,
"galamērķis" varchar (100) NOT NULL,
PRIMARY KEY ("id"),
ĀRĒJĀ KEY (domain_id) REFERENCES virtual_domains (id) ON DELETE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
Mēs esam veiksmīgi konfigurējuši MySQL un izveidojuši trīs vajadzīgās tabulas. Tagad jums jātiek galā ar domēniem un e-pastiem.
Domēni, e-pasta adreses un pseidonīmi
Pievienosim mūsu domēnu tabulai ar domēniem. FDQN ir jāievada:
INSERT INTO `examplemail```virtual_domains`
("id", "nosaukums")
VĒRTĪBAS
('1', 'example.com'),
('2', 'namehost.example.com');
Pievienojiet lietotāja tabulai datus par e-pasta adresi:
INSERT INTO `examplemail```virtual_users`
("id", "domain_id", "parole", "e-pasts")
VĒRTĪBAS
('1', '1', ENCRYPT ('firstpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16)), " "),
('2', '1', ENCRYPT ('secondpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16)), ' ');
Tagad pievienojiet informāciju pēdējai tabulai:
INSERT INTO `examplemail` .`virtual_aliases`
("id", "domain_id", "avots", "galamērķis")
VĒRTĪBAS
(“1”, “1”, “ ”, “ ”);
Aizvērt MySQL:
mysql> iziet
Postfix iestatīšana
Pārvietojoties tieši uz parametriem Postfix. Mums ir nepieciešams, lai pasta klients nosūtītu ziņojumus datu bāzē ievadīto lietotāju vārdā un apstrādātu SMTP savienojumu. Vispirms mēs izveidosim konfigurācijas faila dublējumu, tādā gadījumā bija iespējams atgriezties noklusējuma iestatījumos:
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
Tagad atveriet konfigurācijas failu:
nano /etc/postfix/main.cf
Nano vietā varat izmantot jebkuru jums ērtu teksta redaktoru.
Mēs komentēsim TLS parametrus un pievienosim arī citus. Šeit tiek izmantots bezmaksas 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 = jā
#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 = jā
smtpd_tls_auth_only = jā
Pēc tam mēs pievienosim vēl dažus parametrus:
smtpd_sasl_type = dovecot
smtpd_sasl_path = privāts / auth
smtpd_sasl_auth_enable = jā
smtpd_recipient_restrictions =
atļaut_sasl_authenticated,
engedély_mynetworks
noraidīt_unauth_destination
Mums ir arī nepieciešams komentēt mydestination iestatījumus un nomainīt tos uz localhost:
#mydestination = example.com, namehost.example.com, localhost.example.com, localhost
mydestination = localhost
Parametram myhostname jāietver mūsu domēna vārds:
myhostname = namehost.example.com
Tagad pievienojiet rindu, lai nosūtītu ziņas uz visiem MySQL tabulā norādītajiem domēniem:
virtual_transport = lmtp: unix: privāts / dovecot-lmtp
Pievienojiet vēl trīs parametrus, lai Postfix varētu izveidot savienojumu ar MySQL tabulām:
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 un Postfix failu iestatīšana
Izveidojiet failu
mysql-virtual-mailbox-domains.cf
Pievienojiet šīs vērtības:
user = usermail
parole = pasta parole
saimnieki = 127.0.0.1
dbname = examplemail
query = SELECT 1 NO virtual_domains WHERE name = '% s'
Restartējiet Postfix:
pakalpojuma postfix restartēšana
Pārbaudiet Postfix domēnu:
postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
Izveidojiet citu failu:
nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
parole = pasta parole
saimnieki = 127.0.0.1
dbname = examplemail
query = SELECT 1 NO virtual_users WHERE email = '% s'
Pārstartējiet Postfix:
pakalpojuma postfix restartēšana
Pēc tam vēlreiz pārbaudiet Postfix:
postmap -q mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
Ja tas ir izdarīts pareizi, tas ir jāuzrāda
Izveidojiet pēdējo failu pseidonīmi:
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
parole = pasta parole
saimnieki = 127.0.0.1
dbname = examplemail
query = SELECT galamērķis NO virtual_aliases WHERE source = '% s'
Restartēt:
pakalpojuma postfix restartēšana
Pēdējo reizi pārbaudot:
postmap -q mysql: /etc/postfix/mysql-virtual-alias-maps.cf
Dovecot iestatīšana
Mēs izgatavojam rezerves kopijas septiņiem failiem, kas tiks mainīti:
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
Šī ir izlases komanda. Šiem failiem ievadiet vēl sešus no tiem:
/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
Atveriet pirmo failu:
nano /etc/dovecot/dovecot.conf
Pārbaudiet, vai šis parametrs ir komentēts:
! ietver conf.d / *
Ievadiet:
! include_try /usr/share/dovecot/protocols.d/*.protocol
protokols = imap lmtp
Tā vietā, lai:
! include_try /usr/share/dovecot/protocols.d/*.protocol rinda
Rediģējiet šādu failu:
nano /etc/dovecot/conf.d/10-mail.conf
Atrodiet rindu mail_location, noņemiet komentāru, iestatiet šādu parametru:
mail_location = maildir: / var / mail / vhosts /% d /% n
Atrodiet mail_privileged_group, ievietojiet to:
mail_privileged_group = pasts
Mēs pārbaudām piekļuvi. Ievadiet komandu:
ls -ld / var / mail
Piekļuvei vajadzētu izskatīties šādi:
drwxrwsr-x 3 saknes vmail 4096 Jan 24 21:23 / var / mail
Izveidojiet mapi katram reģistrētajam domēnam:
mkdir -p /var/mail/vhosts/example.com
Izveidojiet lietotāju un grupu ar ID 5000:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / mail
Mainīt īpašnieku uz lietotāju VMail:
chown -R vmail: vmail / var / mail
Rediģējiet šādu failu:
nano /etc/dovecot/conf.d/10-auth.conf
Atcelt autentifikācijas tekstu un pievienojiet rindu:
disable_plaintext_auth = jā
Mainiet šādu parametru:
auth_mechanisms = vienkāršs pieteikšanās
Komentējot šo rindu:
#! ietver auth-system.conf.ext
Pievienot MySQL autorizāciju, komentējiet rindu:
! ietver auth-sql.conf.ext
Izveidojiet failu ar datiem autentifikācijai:
nano /etc/dovecot/conf.d/auth-sql.conf.ext
Ievadiet šeit:
passdb {
vadītājs = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
vadītājs = statisks
args = uid = vmail gid = vmail sākumlapa = / var / mail / vhosts /% d /% n
}
Rediģējiet šādu failu:
nano /etc/dovecot/dovecot-sql.conf.ext
Iestatiet MySQL parametru un komentējiet:
vadītājs = mysql
Atteikties un ievadiet:
connect = resursdators = 127.0.0.1 dbname = servermail user = usermail password = mailpassword
Atrodiet rindu default_pass_scheme, atceliet un ievadiet parametru:
default_pass_scheme = SHA512-CRYPT
Atcelt un ieviest jaunu parametru:
password_query = SELECT e-pasts kā lietotājs, parole NO virtual_users WHERE email = '% u';
Mainīt īpašnieku:
chown -R vmail: dovecot / etc / dovecot
chmod -R o-rwx / etc / dovecot
Atveriet un rediģējiet failu:
nano /etc/dovecot/conf.d/10-master.conf
Atcelt un ievadiet parametru:
pakalpojumu imap-login {
inet_listener imap {
ports = 0
}
Ievadiet:
pakalpojums lmtp {
unix_listener / var / spool / postfix / private / dovecot-lmtp {
režīms = 0600
user = postfix
group = postfix
}
#inet_listener lmtp {
# Izvairieties no LMTP redzamības internetā
#address =
#port =
#}
}
Mainiet šādu konfigurāciju:
pakalpojuma autorizācija {
unix_listener / var / spool / postfix / privāts / auth {
režīms = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
režīms = 0600
user = vmail
#group =
}
#unix_listener / var / spool / postfix / privāts / auth {
# režīms = 0666
#}
user = dovecot
}
Mainiet pēdējā faila konfigurāciju:
pakalpojumu autors {
# Darbinieka process
# / etc / shadow. Ja tas nav nepieciešams
# $ default_internal_user.
user = vmail
}
Tātad, mēs beidzot izveidojām pasta serveri Ubuntu. Varat arī pievienot SSL konfigurāciju vai izmantot noklusējuma. Lai aizsargātu pret surogātpastu, varat konfigurēt Spam Assassin darbam ar mūsu serveri.
Lai ievadītu šo informāciju, izmantojiet standarta e-pasta klientu:
- Lietotājvārds:
- Parole: e-pasts1
- IMAP: example.com
- SMTP: example.com