Hvernig á að stilla Postfix og Dovecot með sýndarlénsnotendum í Linux - Part 2


Í fyrri grein þessarar seríu útskýrðum við hvernig á að setja upp og stjórna gagnagrunni póstþjónsins á öruggan hátt með því að nota phpMyAdmin.

  1. Settu upp Postfix Mail Server og Dovecot með MariaDB – Part 1

Nú er kominn tími til að stilla innri forritin sem gera sendingu og móttöku tölvupósts að veruleika: Postfix og Dovecot (til að sjá um sendan og móttekinn tölvupóst, í sömu röð).

Stillir Postfix Mail Server

Áður en þú byrjar að stilla Postfix væri það þess virði og vel að kíkja á mansíður þess hér og leggja sérstaka áherslu á hlutann sem heitir „Upplýsingar fyrir nýja Postfix notendur“. Ef þú gerir það, munt þú finna það auðveldara að fylgja þessari kennslu.

Í fáum orðum ættir þú að vita að það eru tvær stillingarskrár fyrir Postfix:

  1. /etc/postfix/main.cf (Postfix stillingarfæribreytur, sjá mann 5 postconf fyrir frekari upplýsingar).
  2. /etc/postfix/master.cf (Postfix master púkinn stillingar, sjá mann 5 master fyrir frekari upplýsingar).

Í /etc/postfix/main.cf skaltu finna (eða bæta við, ef þörf krefur) eftirfarandi línur og ganga úr skugga um að þær passi við gildin sem gefin eru upp hér að neðan:

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

Næstu þrjár stillingar eru sérstaklega mikilvægar. Í skránum sem tilgreindar eru með gulu munum við stilla aðgang Postfix að Domains_tbl, Users_tbl og Alias_tbl töflunum:

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

Athugaðu að þú getur valið mismunandi skráarnöfn hér að ofan, svo framarlega sem þú gætir búið til þau og sett eftirfarandi innihald í þau. Í hverju tilviki, skiptu YourPassword út fyrir lykilorðið sem þú valdir fyrir dba notandann í hluta 1, eða þú getur líka notað MariaDB rótarskilríki fyrir notanda og lykilorð hér að neðan.

Gakktu úr skugga um að þú notir nákvæmlega sömu nöfnin á gagnagrunni tölvupóstþjónsins og töflum sem eru búnar til í hluta 1.

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

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:

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:

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

Að lokum, ekki gleyma að breyta heimildum fyrir þessar skrár í 640:

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

Og eignarhaldið á notendarót og eftirleiðréttingu hóps:

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

Næst, til að virkja öruggar tengingar, þurfum við að ganga úr skugga um að eftirfarandi stillingar séu ekki athugasemdir við (eða bætt við, ef þörf krefur) í /etc/postfix/master.cf:

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

Athugið: Inndrátturinn í línunum sem byrja á -o valkostinum er mikilvæg; annars mun postfix check skila villu:

Áður en þú vistar breytingar skaltu bæta við eftirfarandi línum neðst í skránni:

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

Á þessum tímapunkti er nauðsynlegt að athuga hvort Postfix hafi aðgang að gagnagrunnstöflunum og lénunum, reikningunum og samnefninu sem við bjuggum til í hluta 1.

Til að gera það munum við nota postmap skipunina, tól til að prófa samskipti við töflurnar sem Postfix mun fletta upp meðan á aðgerð stendur, en fyrst og fremst þurfum við að endurræsa postfix:

# 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

Á myndinni hér að neðan getum við séð að fyrir núverandi færslur í gagnagrunninum er 1 skilað. Annars birtist ekkert aftur á skjánum. Ef um er að ræða samnefnaathugun, athugaðu að raunverulegur tölvupóstreikningur sem samnefninu er varpað á er skilað:

Athugaðu að við erum EKKI að sannvotta gegn skilríkjunum sem sett eru fyrir hvern tölvupóstreikning, við erum aðeins að prófa getu Postfix til að greina þessar færslur í gagnagrunninum.

Þannig að ef þú færð annað úttak en hér að ofan skaltu ganga úr skugga um að þú sért að nota gilt notanda/lykilorð par í mariadb-vdomains.cf, mariadb-vusers.cf og mariadb-valias.cf (eða hvað sem þú valdir að kalla þessar skrár ).

Stilla Dovecot

Sem IMAP/POP3 þjónn býður Dovecot notendum upp á leið fyrir notendur í gegnum Mail User Agent (MUA, eða einnig þekktur sem viðskiptavinur), eins og Thunderbird eða Outlook, til að nefna nokkur dæmi til að fá aðgang að póstinum sínum.

Til að byrja, búum við til notanda og hóp til að meðhöndla tölvupóst (við munum þurfa þetta þar sem tölvupóstreikningar okkar eru ekki tengdir kerfisnotanda). Þú getur notað annað UID og GID (annað en 5000 eins og við gerum hér að neðan) svo framarlega sem það er ekki í notkun og er há tala:

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

Stillingunum fyrir Dovecot er skipt niður á nokkrar stillingarskrár (gætið þess að eftirfarandi línur séu án athugasemda og/eða breyttu þeim til að passa við stillingarnar sem tilgreindar eru hér að neðan).

Í /etc/dovecot/dovecot.conf:

!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 (virkjaðu aðeins auðkenningu í gegnum SQL og skildu eftir athugasemdir við aðrar auðkenningaraðferðir):

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

Í /etc/dovecot/conf.d/auth-sql.conf.ext (athugið að við munum geyma tölvupóst í möppu sem heitir yourdomain.com inni í /home/vmail, sem þú þarft að búa til ef það er ekki til. Í okkar tilviki gerðum við mkdir /home/vmail/linuxnewz.com til að stjórna tölvupósti fyrir það lén):

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

Einstök pósthólf fyrir notendareikninga verða til þegar tölvupóstur fyrir slíka reikninga berst fyrst.

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

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:

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 (skipta um vottorð og lykilslóðir ef þú ætlar að nota vottorð sem er undirritað af CA):

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

Í /etc/dovecot/dovecot-sql.conf.ext sláðu inn gagnagrunnsupplýsingarnar þínar og skilríki stjórnsýslunotandans sem búið var til í hluta 1.

Mikilvægt: ef lykilorðið þitt inniheldur stjörnu (#), þá þarftu að láta tengistrenginn fylgja með eins og sýnt er í dæminu hér að neðan:

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';

Að auki getur þú stillt skráningu fyrir Dovecot þannig að hún sé aðskilin frá Postfix í /etc/dovecot/conf.d/10-logging.conf:

log_path = /var/log/dovecot.log

Að lokum skaltu ganga úr skugga um að Dovecot login sé aðgengileg fyrir dovecot notanda:

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

Staðfestu og lagfærðu Postifix stillingar og virkjaðu SMTP, POP3 og IMAP í eldvegg

Ef þú lendir í einhverjum vandamálum þegar þú stillir Postfix og/eða Dovecot, í stað þess að senda inn allar stillingarskrárnar til að biðja um hjálp, geturðu fengið yfirlit yfir stillingar (aðeins án athugasemda) með:

# 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

Að auki skaltu ganga úr skugga um að pósthólfin séu læsanleg með vmail eingöngu:

# chown –R vmail:vmail /home/vmail

Stillingarskrár ættu einnig að vera læsilegar fyrir notendur vmail og dovecot:

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

Að lokum skaltu ganga úr skugga um að þú kveikir á SMTP, POP3 og IMAP í gegnum eldvegginn:

# 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

Stilltu Thunderbird sem tölvupóstforrit fyrir Postfix

Eftir að hafa tryggt aðgang í gegnum eldvegginn fyrir höfnin sem notuð eru í tölvupóstsamskiptum er kominn tími til að stilla tölvupóstforrit. Með því að nota [email  og samsvarandi lykilorð þess ásamt mail.linuxnewz.com sem IMAP (eða POP3) og SMTP miðlara erum við tilbúin til að byrja að senda og taka á móti tölvupósti til og frá slíkum reikningi:

Þú getur örugglega hunsað viðvörunarskilaboðin sem eru sýnd vegna þess að þú ert að nota vottorð sem er ekki undirritað af traustum þriðja aðila CA:

Við skulum semja stuttan prófunarpóst og smella á Senda:

Þegar beðið er um að samþykkja sjálfundirritaða vottorðið fyrir sendan netþjón, staðfestu það áður eins og áður:

Að lokum skaltu fara í áfangapóstinn til að sjá hvort þú hafir fengið tölvupóstinn sem var nýlega sendur. Ef svo er, svaraðu því og athugaðu hvort það sé sent aftur í upprunapóstinnhólfið (annars skaltu skoða Postfix log á /var/log/maillog eða Dovecot log á /var/log/dovecot.log til að fá upplýsingar um úrræðaleit) :

Þú ert núna með virkan Postfix og Dovecot tölvupóstþjón og getur byrjað að senda og taka á móti tölvupósti.

Samantekt

Í þessari grein höfum við útskýrt hvernig á að stilla Postfix og Dovecot til að sjá um tölvupóstumferð á Linux þjóninum þínum. Ef eitthvað virkar ekki eins og tilgreint er í þessari grein, vertu viss um að gefa þér tíma til að skoða Dovecot skjölin.

Vinsamlegast athugaðu að þó það sé ekki auðvelt verkefni að setja upp Postfix póstþjón, þá er það gefandi upplifun fyrir alla kerfisstjóra.

Ef þú ert enn að glíma við Postfix og/eða Dovecot eftir að hafa farið í gegnum skjölin, ekki hika við að senda okkur athugasemd með því að nota athugasemdareyðublaðið hér að neðan og við munum vera fús til að hjálpa þér (ekki gleyma að hlaða upp á netgeymsluþjónustu Postfix og Dovecot stillingarnar eins og þær eru sóttar með postconf og doveconf eins og lýst er í þessari grein).