Postfix un Dovecot konfigurēšana Ubuntu

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