“Linux” -da wirtual domen ulanyjylary bilen “Postfiks” we “Dovecot” -y nädip sazlamaly - 2-nji bölüm


Bu tapgyryň öňki makalasynda, phpMyAdmin ulanyp, poçta serweri maglumat bazasyny nädip gurmalydygyny we dolandyrmalydygyny düşündirdik.

  1. MariaDB bilen Postfiks poçta serwerini we kepderi guruň - 1-nji bölüm

Indi e-poçta ibermegi we almagy hakykata öwürjek içerki programmalary düzmegiň wagty geldi: Postfiks we Dovecot (degişlilikde çykýan we gelýän hatlary dolandyrmak üçin).

Postfiks poçta serwerini sazlamak

“Postfiks” -i düzüp başlamazdan ozal, “Täze Postfiks ulanyjylary üçin maglumatlar” atly bölüme aýratyn üns berip, bu ýerdäki adam sahypalaryna göz aýlamak gowy bolardy. Şeýle etseňiz, bu gollanma bilen bilelikde amal etmek has aňsat bolar.

Birnäçe söz bilen, Postfiks üçin iki konfigurasiýa faýlynyň bardygyny bilmelisiňiz:

  1. /etc/postfix/main.cf (Postfiks konfigurasiýa parametrleri, has giňişleýin maglumat üçin adama 5 poçta salgysyna serediň).
  2. /etc/postfix/master.cf (Postfiks ussady daemon konfigurasiýasy, has giňişleýin maglumat üçin 5 adama serediň).

/etc/postfix/main.cf -da aşakdaky setirleri tapyň (ýa-da zerur bolsa goşuň) we aşakda görkezilen bahalara laýyk gelýändigine göz ýetiriň:

append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
dovecot_destination_recipient_limit = 1
message_size_limit = 4194304
readme_directory = no
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (CentOS)
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_transport = dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Indiki üç sazlama aýratyn ähmiýete eýe. Sary reňkde görkezilen faýllarda Postfiksiň Domain_tbl, Ulanyjylar_tbl we Alias_tbl tablisalaryna girişini düzeris:

virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf
virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf

Döredip, aşakdaky mazmuny goýsaňyz, ýokardaky dürli faýl atlaryny saýlap bilersiňiz. Iki ýagdaýda-da 1-nji bölümde dba ulanyjysy üçin saýlan parolyňyz bilen “PassPword” -yňyzy çalşyň, ýa-da aşakdaky ulanyjy we parol üçin “MariaDB” kök şahsyýetnamalaryny ulanyp bilersiňiz.

Şeýle hem, e-poçta serweri maglumatlar bazasynyň we 1-nji bölümde döredilen tablisalaryň takyk atlaryny ulanýandygyňyza göz ýetiriň.

/etc/postfix/mariadb-vdomains.cf -da:

user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Domains_tbl WHERE DomainName='%s'

/etc/postfix/mariadb-vusers.cf -da:

user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Users_tbl WHERE Email='%s'

/etc/postfix/mariadb-valias.cf -da:

user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT Destination FROM Alias_tbl WHERE Source='%s'

Netijede, bu faýllara rugsatlary 640-a üýtgetmegi ýatdan çykarmaň:

# chmod 640 /etc/postfix/mariadb-vdomains.cf
# chmod 640 /etc/postfix/mariadb-vusers.cf
# chmod 640 /etc/postfix/mariadb-valias.cf

Ulanyjy köküne we topar postfiksine eýeçilik:

# chown root:postfix /etc/postfix/mariadb-vdomains.cf
# chown root:postfix /etc/postfix/mariadb-vusers.cf
# chown root:postfix /etc/postfix/mariadb-valias.cf

Ondan soň, ygtybarly birikmeleri işjeňleşdirmek üçin /etc/postfix/master.cf -da aşakdaky sazlamalaryň (ýa-da zerur bolsa goşulýandygyna) göz ýetirmeli:

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp

showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
#virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

Bellik: -o opsiýasy bilen başlaýan setirlerdäki indentasiýa möhümdir; bolmasa postfiks barlagy ýalňyşlygy yzyna getirer:

Üýtgeşmeleri ýazdyrmazdan ozal faýlyň aşagyna aşakdaky setirleri goşuň:

dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}

Bu pursatda, “Postfix” -iň maglumatlar bazasynyň tablisalaryna we 1-nji bölümde döreden domenlerimize, hasaplaryna we lakamlaryna girip biljekdigini barlamak zerurdyr.

Munuň üçin “Postfix” buýrugyny ulanarys, “Postfix” tablisalar bilen aragatnaşygy barlamak üçin peýdaly bir zat, “Postfix” iş wagtynda gözlär, ýöne ilki bilen postfiksi täzeden açmaly bolarys:

# systemctl postfix restart
# postmap -q linuxnewz.com mysql:/etc/postfix/mariadb-vdomains.cf
# postmap -q someotherdomain.com mysql:/etc/postfix/mariadb-vdomains.cf
# postmap -q [email  mysql:/etc/postfix/mariadb-vusers.cf
# postmap -q [email  mysql:/etc/postfix/mariadb-vusers.cf
# postmap -q [email  mysql:/etc/postfix/mariadb-vusers.cf
# postmap -q [email  mysql:/etc/postfix/mariadb-valias.cf

Aşakdaky suratda maglumatlar bazasyndaky bar ýazgylar üçin 1-iň yzyna gaýtarylandygyny görüp bileris. Otherwiseogsam, ekrana hiç zat görkezilmeýär. Lakam barlanylanda, lakamyň kartalaşdyrylan hakyky e-poçta hasabynyň yzyna gaýtarylandygyny belläň:

Her e-poçta hasaby üçin kesgitlenen şahsyýet maglumatlaryna garşy tassyklamaýandygymyzy unutmaň, diňe Postfiksiň maglumatlar bazasyndaky ýazgylary tapmak ukybyny barlaýarys.

Şeýlelik bilen, ýokardakydan üýtgeşik netije alsaňyz, mariadb-vdomains.cf, mariadb-vusers.cf we mariadb-valias.cf (ýa-da şol faýllara jaň etmek islän zadyňyzda) ulanyjy/parol jübütini ulanýandygyňyza göz ýetiriň. ).

Kepderi sazlamak

Dovecot, IMAP/POP3 serweri hökmünde, Thunderbird ýa-da Outlook ýaly Poçta Ulanyjy Agenti (MUA, ýa-da müşderi hökmünde hem tanalýar) arkaly ulanyjylara öz poçtalaryna girmek üçin birnäçe mysal görkezmek üçin ýol açýar.

Başlamak üçin, e-poçtalary dolandyrmak üçin ulanyjy we topar döredeliň (e-poçta hasaplarymyz ulgam ulanyjysy bilen baglanyşykly däldigi üçin bize gerek bolar). Ulanylmaýan we köp mukdarda bolýança başga bir UID we GID (aşakda edişimiz ýaly 5000-den başga) ulanyp bilersiňiz:

# groupadd -g 5000 vmail 
# useradd -g vmail -u 5000 vmail -d /home/vmail -m

“Dovecot” sazlamalary birnäçe konfigurasiýa faýllaryna bölünýär (aşakdaky setirleriň tertipsizdigine göz ýetiriň we/ýa-da aşakda görkezilen sazlamalara laýyk redaktirläň).

/etc/dovecot/dovecot.conf -da:

!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
!include conf.d/*.conf
!include_try local.conf

/etc/dovecot/conf.d/10-auth.conf -da (diňe SQL arkaly tassyklamany işlediň we beýleki tanamak usullaryny düşündirişli goýuň):

disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext

/etc/dovecot/conf.d/auth-sql.conf.ext -da (e-poçta salgylaryny yourdomain.com atly bukjanyň içinde/home/vmail-de saklarys, eger döretmeli bolsaňyz ýok. Biziň ýagdaýymyzda şol domen üçin e-poçtalary dolandyrmak üçin mkdir /home/vmail/linuxnewz.com etdik):

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir
}

Ulanyjy hasaplary üçin aýratyn gutular şeýle hasaplar üçin e-poçta ilkinji gezek alnanda dörediler.

/etc/dovecot/conf.d/10-mail.conf -da:

mail_location = maildir:/home/vmail/%d/%n/Maildir
namespace inbox {
  inbox = yes
}
mail_privileged_group = mail
mbox_write_locks = fcntl

/etc/dovecot/conf.d/10-master.conf -da:

service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
   mode = 0600
   user = postfix
   group = postfix
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener auth-userdb {
   mode = 0600
   user = vmail
  }
  user = dovecot
}
service auth-worker {
  user = vmail
}
service dict {
  unix_listener dict {
  }
}

/etc/dovecot/conf.d/10-ssl.conf -da (CA tarapyndan gol çekilen şahadatnamany ulanmagy meýilleşdirýän bolsaňyz, şahadatnamany we esasy ýollary çalşyň):

ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

/etc/dovecot/dovecot-sql.conf.ext maglumat bazasyna maglumatlaryňyzy we 1-nji bölümde döredilen administratiw ulanyjynyň şahsyýet maglumatlaryny giriziň.

Üns beriň: parolyňyzda ýyldyz belgisi (#) bar bolsa, aşakdaky mysalda görkezilişi ýaly birikdiriş setirini ýapmaly bolarsyňyz:

driver = mysql
connect = "host=127.0.0.1 dbname=EmailServer_db user=dba password=PassWith#Here"
default_pass_scheme = SHA512-CRYPT
password_query = SELECT Email as User, password FROM Users_tbl WHERE Email='%u';

Mundan başga-da, “Dovecot” -yň “kod” /etc/dovecot/conf.d/10-logging.conf daky “Postfiks” -den aýry bolmagy üçin ýazgyny düzüp bilersiňiz:

log_path = /var/log/dovecot.log

Netijede, “Dovecot” gündeliginiň ulanyjy kepderi üçin elýeterlidigine göz ýetiriň:

# chown vmail:dovecot /var/log/dovecot.log
# chmod 660 /var/log/dovecot.log

Postifiks konfigurasiýasyny barlaň we düzediň we Firewall-da SMTP, POP3 we IMAP-y işlediň

“Postfix” we/ýa-da “Dovecot” -y düzeniňizde haýsydyr bir mesele bilen ýüzbe-ýüz bolsaňyz, kömek soramak üçin ähli konfigurasiýa faýllaryny ibermegiň ýerine, konfigurasiýa gysgaça mazmunyny (diňe belliksiz setirler) alyp bilersiňiz:

# postconf –n # Summary for /etc/postfix/main.cf
# postconf –M # Summary for /etc/postfix/master.cf
# doveconf –n # Summary of all configuration files for Dovecot

Mundan başga-da, e-poçta gutularyny diňe vmail tarapyndan okalýandygyna göz ýetiriň:

# chown –R vmail:vmail /home/vmail

Konfigurasiýa faýllaryny vmail we kepderi ulanyjylar hem okamaly:

# chown -R vmail:dovecot /etc/dovecot 
# chmod -R o-rwx /etc/dovecot 

Netijede, diwar diwary arkaly SMTP, POP3 we IMAP-y işledýändigiňize göz ýetiriň:

# firewall-cmd --add-port=143/tcp
# firewall-cmd --add-port=143/tcp --permanent
# firewall-cmd --add-port=110/tcp
# firewall-cmd --add-port=110/tcp --permanent
# firewall-cmd --add-port=587/tcp
# firewall-cmd --add-port=587/tcp --permanent

“Thunderbird” -i “Postfiks” üçin e-poçta müşderisi hökmünde sazlaň

E-poçta aragatnaşygynda ulanylýan portlar üçin gorag diwaryndan girip, e-poçta müşderisini sazlamagyň wagty geldi. [E-poçta bilen goralan] we degişli paroly, mail.linuxnewz.com bilen bilelikde IMAP (ýa-da POP3) we SMTP serweri ulanyp, şeýle hasabyňyza e-poçta iberip we kabul edip başlarys:

Ygtybarly 3-nji tarap tarapyndan gol çekilmedik şahadatnamany ulanýandygyňyz üçin görkezilen duýduryş habaryny arkaýyn äsgermezlik edip bilersiňiz:

Gysga synag e-poçta düzeliň we Ibermek düwmesine basalyň:

Çykýan serwer üçin öz-özüne gol çekilen şahadatnamany kabul etmek soralanda, öňküsi ýaly tassyklaň:

Ahyrynda, iberilen e-poçta alandygyňyzy ýa-da ýokdugyňyzy görmek üçin niýetlenen e-poçta gidiň. Şeýle bolsa, oňa jogap beriň we deslapky e-poçta gutusyna iberilendigini ýa-da ýokdugyny görüň (başgaça, näsazlyklary düzetmek üçin/var/log/maillog-daky Postfiks gündeligine ýa-da Dovecot gündeligine serediň) :

Indi işleýän “Postfix” we “Dovecot” e-poçta serweriňiz bar we e-poçta iberip we alyp başlap bilersiňiz.

Gysgaça mazmun

Bu makalada Linux serweriňizdäki e-poçta traffigini dolandyrmak üçin Postfix we Dovecot-y nädip sazlamalydygyny düşündirdik. Bu makalada görkezilişi ýaly bir zat işlemese, Dovecot resminamalaryny barlamak üçin wagt sarp ediň.

“Postfix” poçta serwerini gurmak aňsat iş bolmasa-da, her ulgam dolandyryjysy üçin peýdaly tejribe bolandygyny ýadyňyzdan çykarmaň.

Dokumentleri öwreneniňizden soň, Postfiks we/ýa-da Dovecot bilen göreşýän bolsaňyz, aşakdaky düşündiriş formuny ulanyp bize bellik goýup bilersiňiz we size kömek etmäge şat bolarys (onlaýn ammar hyzmatyna ýüklemegi ýatdan çykarmaň) Postfiks we kepderi konfigurasiýasy, bu makalada görkezilişi ýaly postconf we kepderi bilen ulanylýar).