Kif tikkonfigura Postfix u Dovecot b'Utenti ta 'Dominju Virtwali fil-Linux - Parti 2


Fl-artiklu preċedenti ta 'din is-serje spjegajna kif twaqqaf u timmaniġġja d-database tas-server tal-posta b'mod sigur billi tuża phpMyAdmin.

  1. Installa Postfix Mail Server u Dovecot ma' MariaDB – Parti 1

Issa wasal iż-żmien li jiġu kkonfigurati l-programmi interni li se jagħmlu l-bgħit u r-riċeviment tal-emails realtà: Postfix u Dovecot (biex jimmaniġġjaw emails ħerġin u deħlin, rispettivament).

Konfigurazzjoni ta' Postfix Mail Server

Qabel ma tibda tikkonfigura Postfix, ikun tajjeb li tagħti ħarsa lejn il-paġni man tagħha hawn, billi tagħmel enfasi speċjali fuq it-taqsima bit-titlu Informazzjoni għal utenti ġodda ta' Postfix. Jekk tagħmel hekk, issibha aktar faċli biex issegwi flimkien ma 'dan it-tutorja.

Fi ftit kliem, għandek tkun taf li hemm żewġ fajls ta 'konfigurazzjoni għal Postfix:

  1. /etc/postfix/main.cf (Parametri tal-konfigurazzjoni Postfix, irreferi għal man 5 postconf għal aktar dettalji).
  2. /etc/postfix/master.cf (Konfigurazzjoni tad-daemon kaptan tal-Postfix, ara man 5 master għal aktar dettalji).

F'/etc/postfix/main.cf, sib (jew żid, jekk meħtieġ) il-linji li ġejjin u kun żgur li jaqblu mal-valuri indikati hawn taħt:

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

It-tliet settings li jmiss huma ta 'importanza speċjali. Fil-fajls indikati bl-isfar se nikkonfiguraw l-aċċess ta’ Postfix għat-tabelli Domains_tbl, Users_tbl, u Alias_tbl:

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

Innota li tista 'tagħżel ismijiet ta' fajls differenti hawn fuq, sakemm tagħmel ċert li toħloqhom u daħħal fihom il-kontenut li ġej. F'kull każ, ibdel YourPassword bil-password li għażilt għall-utent dba fil-Parti 1, jew tista 'wkoll tuża l-kredenzjali tal-għeruq ta' MariaDB għall-utent u l-password hawn taħt.

Ukoll, kun żgur li tuża l-istess ismijiet eżatti tad-database tas-server tal-email u tabelli maħluqa fil-Parti 1.

Fi /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'

Fi /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'

Fi /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'

Fl-aħħarnett, tinsiex tibdel il-permessi għal dawn il-fajls għal 640:

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

U s-sjieda għall-utent root u postfix tal-grupp:

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

Sussegwentement, biex nippermettu konnessjonijiet sikuri jeħtieġ li niżguraw li s-settings li ġejjin mhumiex ikkummentati (jew miżjuda, jekk meħtieġ) f'/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

Nota: L-indentazzjoni fil-linji li jibdew bl-għażla -o hija kritika; inkella l-kontroll tal-postfix jirritorna żball:

Qabel ma tissejvja l-bidliet, żid il-linji li ġejjin fil-qiegħ tal-fajl:

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

F'dan il-punt huwa essenzjali li tivverifika jekk Postfix għandhiex aċċess għat-tabelli tad-database u d-dominji, il-kontijiet u l-psewdonimi li ħloqna fil-Parti 1.

Biex nagħmlu dan, se nużaw il-kmand tal-postmap, utilità biex tittestja l-komunikazzjoni mat-tabelli li Postfix se jfittex waqt it-tħaddim, iżda l-ewwel u qabel kollox ikollna bżonn nibdew mill-ġdid il-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

Fl-immaġini hawn taħt nistgħu naraw li għar-rekords eżistenti fid-database, jintbagħat 1. Inkella, xejn ma jintwera lura lill-iskrin. Fil-każ tal-verifika tal-alias, innota li l-kont tal-email attwali li fih huwa mmappjat l-alias jintbagħat lura:

Innota li MHUX qed nawtentikaw kontra l-kredenzjali stabbiliti għal kull kont tal-email, qed nittestjaw biss il-kapaċità ta 'Postfix li jiskopri dawk ir-rekords fid-database.

Għalhekk, jekk ikollok output differenti minn hawn fuq, kun żgur li qed tuża par validu utent/password f'mariadb-vdomains.cf, mariadb-vusers.cf, u mariadb-valias.cf (jew tkun xi tkun għażilt li ssejjaħ dawk il-fajls. ).

Konfigurazzjoni ta' Dovecot

Bħala server IMAP/POP3, Dovecot jipprovdi mod għall-utenti permezz ta 'Aġent tal-Utent tal-Mail (MUA, jew magħruf ukoll bħala klijent), bħal Thunderbird jew Outlook, biex insemmu ftit eżempji biex jaċċessaw il-posta tagħhom.

Biex tibda, ejja noħolqu utent u grupp biex jimmaniġġjaw emails (se jkollna bżonn dan peress li l-kontijiet tal-email tagħna mhumiex assoċjati ma 'utent tas-sistema). Tista' tuża UID u GID oħra (minbarra 5000 kif nagħmlu hawn taħt) sakemm ma tkunx qed tintuża u tkun numru għoli:

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

Is-settings għal Dovecot huma maqsuma f'diversi fajls ta' konfigurazzjoni (kun żgur li l-linji li ġejjin mhumiex ikkummentati u/jew editjahom biex jaqblu mas-settings indikati hawn taħt).

Fi /etc/dovecot/dovecot.conf:

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

F'/etc/dovecot/conf.d/10-auth.conf (ippermetti biss l-awtentikazzjoni permezz ta' SQL u ħalli metodi oħra ta' awtentikazzjoni kkummentati):

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

F'/etc/dovecot/conf.d/auth-sql.conf.ext (innota li aħna se naħżnu emails f'direttorju jismu yourdomain.com ġewwa /home/vmail, li għandek bżonn toħloq jekk ma teżistix. Fil-każ tagħna għamilna mkdir /home/vmail/linuxnewz.com biex timmaniġġja l-emails għal dak id-dominju):

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

Inboxes individwali għall-kontijiet tal-utenti jinħolqu meta l-emails għal kontijiet bħal dawn jiġu riċevuti għall-ewwel darba.

Fi /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

Fi /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 {
  }
}

Fi /etc/dovecot/conf.d/10-ssl.conf (ibdel iċ-ċertifikat u l-mogħdijiet ewlenin jekk qed tippjana li tuża ċertifikat iffirmat minn CA):

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

F'/etc/dovecot/dovecot-sql.conf.ext daħħal l-informazzjoni tad-database tiegħek u l-kredenzjali tal-utent amministrattiv maħluq fil-Parti 1.

Importanti: jekk il-password tiegħek fiha asterisk (#), ikollok bżonn tehmeż is-sekwenza tal-konnessjoni kif indikat fl-eżempju hawn taħt:

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

Barra minn hekk, tista’ tikkonfigura l-illoggjar biex Dovecot ikun separat minn Postfix f’/etc/dovecot/conf.d/10-logging.conf:

log_path = /var/log/dovecot.log

Fl-aħħarnett, kun żgur li l-log Dovecot huwa aċċessibbli għall-dovecot tal-utent:

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

Ivverifika u Waħħal il-Konfigurazzjoni ta' Postifix u Ippermetti SMTP, POP3, u IMAP fil-Firewall

Jekk jiġri li tiltaqa' ma' xi kwistjonijiet waqt li tikkonfigura Postfix u/jew Dovecot, minflok ma tissottometti l-fajls tal-konfigurazzjoni kollha biex titlob għajnuna, tista' tikseb sommarju tal-konfigurazzjoni (linji mhux kummentati biss) bi:

# 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

Barra minn hekk, kun żgur li l-inboxes tal-email jistgħu jinqraw minn vmail biss:

# chown –R vmail:vmail /home/vmail

Il-fajls tal-konfigurazzjoni għandhom jinqraw ukoll mill-utenti ta' vmail u dovecot:

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

Fl-aħħarnett, kun żgur li tattiva SMTP, POP3, u IMAP permezz tal-firewall:

# 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

Ikkonfigura Thunderbird bħala Klijent tal-Email għal Postfix

Wara li l-aċċess assigurat permezz tal-firewall għall-portijiet użati fil-komunikazzjonijiet bl-email, wasal iż-żmien li jiġi kkonfigurat klijent tal-email. Billi nużaw [email  u l-password korrispondenti tagħha, flimkien ma’ mail.linuxnewz.com bħala IMAP (jew POP3) u server SMTP aħna lesti li nibdew nibagħtu u nirċievu emails lejn u minn tali kont:

Tista' tinjora b'mod sikur il-messaġġ ta' twissija li jidher għaliex qed tuża ċertifikat li mhuwiex iffirmat minn CA terza fdata:

Ejja nikkomponu email ta' test qasira u kklikkja Ibgħat:

Meta tintalab taċċetta ċ-ċertifikat awtofirmat għas-server li joħroġ, ikkonfermah qabel bħal qabel:

Fl-aħħarnett, mur l-email tad-destinazzjoni biex tara jekk irċevejtx l-email li għadha kemm intbagħtet. Jekk iva, wieġeb għaliha u ara jekk titwassalx lura fl-inbox tal-email tas-sors (inkella, irreferi għar-reġistru tal-Postfix fuq /var/log/maillog jew il-log Dovecot fuq /var/log/dovecot.log għal informazzjoni dwar is-soluzzjoni tal-problemi) :

Issa għandek server tal-email Postfix u Dovecot li jaħdem u tista' tibda tibgħat u tirċievi emails.

Sommarju

F'dan l-artikolu spjegajna kif tikkonfigura Postfix u Dovecot biex jimmaniġġjaw it-traffiku tal-email fis-server Linux tiegħek. Jekk xi ħaġa ma taħdimx kif indikat f'dan l-artikolu, kun żgur li tieħu ħin biex tiċċekkja d-dokumentazzjoni ta 'Dovecot.

Jekk jogħġbok innota li għalkemm it-twaqqif ta' server tal-posta Postfix mhuwiex biċċa xogħol faċli, hija esperjenza ta' sodisfazzjon għal kull amministratur tas-sistema.

Jekk wara li tgħaddi mid-doks issib ruħek li għadek tissielet ma' Postfix u/jew Dovecot, tħossok liberu li tibgħatilna nota billi tuża l-formola tal-kumment hawn taħt u nkunu ferħanin li ngħinuk (tinsiex ittella' fuq servizz ta' ħażna onlajn il-konfigurazzjoni Postfix u Dovecot kif akkwistata bl-użu ta’ postconf u doveconf kif deskritt f’dan l-artikolu).