Giunsa ang Pag-configure sa Postfix ug Dovecot sa mga Gumagamit sa Virtual Domain sa Linux - Bahin 2


Sa miaging artikulo niini nga serye among gipatin-aw unsaon pag-set up ug pagdumala sa mail server database nga luwas gamit ang phpMyAdmin.

  1. I-install ang Postfix Mail Server ug Dovecot gamit ang MariaDB – Bahin 1

Karon na ang panahon sa pag-configure sa mga internal nga programa nga maghimo sa pagpadala ug pagdawat sa mga email nga usa ka kamatuoran: Postfix ug Dovecot (aron madumala ang mga outgoing ug incoming email, matag usa).

Pag-configure sa Postfix Mail Server

Sa dili ka pa magsugod sa pag-configure sa Postfix, angayan ug maayo nga tan-awon ang mga panid sa tawo dinhi, nga nagbutang espesyal nga gibug-aton sa seksyon nga giulohan og Impormasyon alang sa mga bag-ong tiggamit sa Postfix. Kung buhaton nimo, mas dali nimo nga sundon kini nga panudlo.

Sa pipila ka mga pulong, kinahanglan nimong mahibal-an nga adunay duha ka mga file sa pag-configure alang sa Postfix:

  1. /etc/postfix/main.cf (Postfix configuration parameters, refer sa man 5 postconf para sa dugang detalye).
  2. /etc/postfix/master.cf (Postfix master daemon configuraton, tan-awa ang man 5 master para sa dugang nga mga detalye).

Sa /etc/postfix/main.cf, pangitaa (o idugang, kung gikinahanglan) ang mosunod nga mga linya ug siguroha nga kini motakdo sa mga bili nga gipakita sa ubos:

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

Ang sunod nga tulo ka mga setting labi ka hinungdanon. Sa mga file nga gipakita sa yellow atong i-configure ang Postfix's access sa Domains_tbl, Users_tbl, ug Alias_tbl nga mga lamesa:

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

Timan-i nga makapili ka ug lain-laing mga ngalan sa file sa ibabaw, basta siguradohon nimo nga himoon kini ug isulod ang mosunod nga mga sulod niini. Sa matag kaso, ilisan ang YourPassword sa password nga imong gipili para sa dba user sa Part 1, o mahimo usab nimo gamiton ang MariaDB root credentials para sa user ug password sa ubos.

Usab, siguroha nga imong gigamit ang eksaktong parehas nga mga ngalan sa database sa email server ug mga lamesa nga gihimo sa Bahin 1.

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

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

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

Sa katapusan, ayaw kalimti ang pagbag-o sa mga pagtugot sa kini nga mga file sa 640:

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

Ug ang pagpanag-iya sa user root ug group postfix:

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

Sunod, aron mahimo ang luwas nga mga koneksyon kinahanglan naton sigurohon nga ang mga musunod nga setting wala gikomento (o gidugang, kung kinahanglan) sa /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

Pahinumdom: Ang indentasyon sa mga linya nga nagsugod sa -o nga opsyon kritikal; kung dili ang postfix check magbalik usa ka sayup:

Sa dili pa nimo i-save ang mga pagbag-o, idugang ang mosunod nga mga linya sa ilawom sa file:

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

Niini nga punto importante nga susihon kung ang Postfix adunay access sa mga lamesa sa database ug sa mga domain, account, ug alyas nga among gibuhat sa Part 1.

Aron mahimo kini, among gamiton ang postmap command, usa ka utility sa pagsulay sa komunikasyon sa mga lamesa nga pangitaon sa Postfix sa panahon sa operasyon, apan una ug labaw sa tanan kinahanglan namon nga i-restart ang 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

Sa hulagway sa ubos atong makita nga alang sa kasamtangan nga mga rekord sa database, usa ka 1 ang gibalik. Kung dili, wala’y gipakita balik sa screen. Sa kaso sa pagsusi sa alyas, timan-i nga ang aktuwal nga email account nga gimapa sa alyas gibalik:

Timan-i nga WALA kami nagpamatuod batok sa mga kredensyal nga gitakda alang sa matag email account, among gisulayan lamang ang katakus sa Postfix aron mahibal-an ang mga rekord sa database.

Busa, kung makakuha ka og lahi nga output kaysa sa taas, siguroha nga naggamit ka usa ka balido nga user/password nga pares sa mariadb-vdomains.cf, mariadb-vusers.cf, ug mariadb-valias.cf (o bisan unsa nga imong gipili nga tawagan ang mga file. ).

Pag-configure sa Dovecot

Isip IMAP/POP3 server, ang Dovecot naghatag ug paagi para sa mga tiggamit pinaagi sa Mail User Agent (MUA, o nailhan usab nga kliyente), sama sa Thunderbird o Outlook, aron hinganlan ang pipila ka pananglitan aron ma-access ang ilang mail.

Sa pagsugod, maghimo kita ug usa ka user ug usa ka grupo nga magdumala sa mga email (kinahanglan nato kini tungod kay ang atong mga email account wala mag-uban sa usa ka user sa sistema). Mahimo nimong gamiton ang lain nga UID ug GID (gawas sa 5000 sama sa among gibuhat sa ubos) basta wala kini gigamit ug taas nga numero:

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

Ang mga setting alang sa Dovecot gibahin sa daghang mga file sa pag-configure (siguruha nga ang mga musunod nga linya wala gikomento ug/o i-edit kini aron matugma ang mga setting nga gipakita sa ubos).

Sa /etc/dovecot/dovecot.conf:

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

Sa /etc/dovecot/conf.d/10-auth.conf (paganaa lang ang authentication pinaagi sa SQL ug ibilin ang ubang mga pamaagi sa pag-authenticate nga gikomentohan):

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

Sa /etc/dovecot/conf.d/auth-sql.conf.ext (timan-i nga magtipig kami og mga email sulod sa usa ka direktoryo nga ginganlan og yourdomain.com sulod sa /home/vmail, nga kinahanglan nimong himoon kon wala kini. Sa among kaso kami mihimo mkdir /home/vmail/linuxnewz.com sa pagdumala sa mga email alang niana nga domain):

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

Ang mga indibidwal nga inbox alang sa mga account sa gumagamit pagahimoon kung ang mga email alang sa ingon nga mga account una nga nadawat.

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

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

Sa /etc/dovecot/conf.d/10-ssl.conf (ilisan ang sertipiko ug yawe nga mga agianan kung nagplano ka nga mogamit usa ka sertipiko nga gipirmahan sa usa ka CA):

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

Sa /etc/dovecot/dovecot-sql.conf.ext isulod ang imong impormasyon sa database ug ang mga kredensyal sa administratibong tiggamit nga gihimo sa Bahin 1.

Importante: kung ang imong password adunay asterisk (#), kinahanglan nimo nga ilakip ang connect string sama sa gipakita sa pananglitan sa ubos:

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

Dugang pa, mahimo nimong i-configure ang pag-log alang sa Dovecot aron mahimulag sa Postfix sa /etc/dovecot/conf.d/10-logging.conf:

log_path = /var/log/dovecot.log

Sa katapusan, siguroha nga ang Dovecot log ma-access para sa user nga dovecot:

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

I-verify ug Ayuhon ang Configuration sa Postifix ug I-enable ang SMTP, POP3, ug IMAP sa Firewall

Kung mahitabo nimo nga adunay bisan unsang mga isyu samtang gi-configure ang Postfix ug/o Dovecot, imbis nga isumite ang tanan nga mga file sa pag-configure aron mangayo og tabang, makakuha ka usa ka summary sa pagsumpo (wala gikomento nga mga linya lamang) nga adunay:

# 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

Dugang pa, siguruha nga ang mga inbox sa email mabasa sa vmail lamang:

# chown –R vmail:vmail /home/vmail

Ang mga file sa pag-configure kinahanglan usab nga mabasa sa mga tiggamit sa vmail ug dovecot:

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

Sa katapusan, siguroha nga imong mahimo ang SMTP, POP3, ug IMAP pinaagi sa 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

I-configure ang Thunderbird isip Email Client para sa Postfix

Ang pagsiguro sa pag-access pinaagi sa firewall alang sa mga pantalan nga gigamit sa mga komunikasyon sa email, panahon na aron ma-configure ang usa ka kliyente sa email. Gamit ang [email  ug ang katugbang nga password niini, uban sa mail.linuxnewz.com isip IMAP (o POP3) ug SMTP server andam na kami sa pagsugod sa pagpadala ug pagdawat og mga email ngadto ug gikan sa maong account:

Mahimo nimong luwas nga ibaliwala ang mensahe sa pasidaan nga gipakita tungod kay naggamit ka usa ka sertipiko nga wala gipirmahan sa usa ka kasaligan nga 3rd-party nga CA:

Paghimo usa ka mubo nga email sa pagsulay ug i-klik ang Ipadala:

Kung giaghat nga dawaton ang gipirmahan sa kaugalingon nga sertipiko alang sa mogawas nga server, kumpirmahi kini kaniadto sama kaniadto:

Sa katapusan, adto sa destinasyon nga email aron makita kung nadawat ba nimo ang email nga bag-o lang gipadala. Kung mao, tubaga kini ug tan-awa kung kini gibalik ba sa gigikanan nga email inbox (kung dili, tan-awa ang Postfix log sa /var/log/maillog o ang Dovecot log sa /var/log/dovecot.log alang sa kasayuran sa pag-troubleshoot) :

Ikaw karon adunay usa ka nagtrabaho nga Postfix ug Dovecot email server ug makasugod sa pagpadala ug pagdawat sa mga email.

Summary

Sa kini nga artikulo gipasabut namon kung giunsa ang pag-configure sa Postfix ug Dovecot aron madumala ang trapiko sa email sa imong server sa Linux. Kung adunay dili molihok sama sa gipakita sa kini nga artikulo, siguruha nga maggahin ka ug oras sa pagsusi sa dokumentasyon sa Dovecot.

Palihug timan-i nga bisan tuod ang pag-set up sa usa ka Postfix mail server dili sayon nga buluhaton, kini usa ka magantihon nga kasinatian alang sa matag tigdumala sa sistema.

Kung pagkahuman sa pag-agi sa mga doc makita nimo ang imong kaugalingon nga nanlimbasug pa sa Postfix ug/o Dovecot, ayaw paglangan nga ihulog kanamo ang usa ka nota gamit ang porma sa komento sa ubos ug malipay kami nga matabangan ka (ayaw kalimti ang pag-upload sa usa ka serbisyo sa pagtipig sa online ang Postfix ug Dovecot configuration ingon nga gikuha gamit ang postconf ug doveconf ingon nga gilatid niini nga artikulo).