Yadda ake Sanya Postfix da Dovecot tare da Masu amfani da Domain Virtual a Linux - Part 2


A cikin labarin da ya gabata na wannan silsilar mun bayyana yadda ake saitawa da sarrafa bayanan sabar sabar ta hanyar amfani da phpMyAdmin.

  1. Shigar Postfix Mail Server da Dovecot tare da MariaDB - Part 1

Yanzu lokaci ya yi da za a daidaita shirye-shiryen ciki wanda zai sa aikawa da karɓar imel ya zama gaskiya: Postfix da Dovecot (don sarrafa imel masu fita da masu shigowa, bi da bi).

Ana saita Sabar Saƙon Postfix

Kafin ka fara saita Postfix, zai dace kuma da kyau ka kalli shafukan sa na mutum anan, tare da ba da fifiko na musamman akan sashin mai taken Bayani ga sabbin masu amfani da Postfix. Idan kun yi haka, za ku sami sauƙin bi tare da wannan koyawa.

A cikin 'yan kalmomi, ya kamata ku san cewa akwai fayilolin sanyi guda biyu don Postfix:

  1. /etc/postfix/main.cf (Postfix sanyi sigogi, koma ga man 5 postconf don ƙarin cikakkun bayanai).
  2. /etc/postfix/master.cf (Postfix master daemon configuraton, duba man 5 master don ƙarin cikakkun bayanai).

A cikin /etc/postfix/main.cf, gano (ko ƙara, idan ya cancanta) waɗannan layukan kuma a tabbata sun dace da ƙimar da aka nuna a ƙasa:

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

Saituna uku na gaba suna da mahimmanci na musamman. A cikin fayilolin da aka nuna a cikin rawaya za mu saita damar Postfix zuwa Domains_tbl, Users_tbl, da tebur 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

Lura cewa zaku iya zaɓar sunaye daban-daban a sama, muddin kun tabbatar da ƙirƙirar su kuma shigar da abubuwan ciki masu zuwa a cikinsu. A kowane hali, maye gurbin Kalmar wucewa tare da kalmar sirri da kuka zaɓa don mai amfani da dba a cikin Sashe na 1, ko kuma kuna iya amfani da tushen shaidar MariaDB don mai amfani da kalmar wucewa a ƙasa.

Hakanan, tabbatar da yin amfani da ainihin sunaye iri ɗaya na bayanan uwar garken imel da teburan da aka ƙirƙira a Sashe na 1.

A cikin /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'

A cikin /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'

A cikin /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 ƙarshe, kar a manta da canza izini zuwa waɗannan fayilolin zuwa 640:

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

Kuma ikon mallakar tushen mai amfani da postfix na rukuni:

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

Na gaba, don kunna amintattun haɗin kai muna buƙatar tabbatar da saitunan masu zuwa ba su da wani bayani (ko ƙara, idan ya cancanta) a cikin /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

Lura: Shiga cikin layin da ke farawa da zaɓin -o yana da mahimmanci; in ba haka ba duban postfix zai dawo da kuskure:

Kafin ka ajiye canje-canje, ƙara layukan da ke ƙasan fayil ɗin:

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

A wannan gaba yana da mahimmanci don bincika ko Postfix yana da damar zuwa teburin bayanai da wuraren yanki, asusu, da kuma laƙabin da muka ƙirƙira a Sashe na 1.

Don yin haka, za mu yi amfani da umarnin taswirar gidan waya, mai amfani don gwada sadarwa tare da tebur Postfix zai duba yayin aiki, amma da farko muna buƙatar sake farawa 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

A cikin hoton da ke ƙasa muna iya ganin cewa don bayanan da ke akwai a cikin bayanan, an dawo da 1. In ba haka ba, babu abin da za a nuna baya ga allon. A cikin yanayin rajistar laƙabin, lura cewa ainihin asusun imel ɗin da aka yi taswira da shi ana dawo da shi:

Lura cewa ba mu ingantawa da takaddun shaida da aka saita don kowane asusun imel ba, muna gwada ƙarfin Postfix ne kawai don gano waɗannan bayanan a cikin bayanan.

Don haka, idan kun sami fitarwa daban fiye da na sama, tabbatar cewa kuna amfani da ingantacciyar mai amfani/kalmar sirri a cikin mariadb-vdomains.cf, mariadb-vusers.cf, da mariadb-valias.cf (ko duk abin da kuka zaɓa don kiran waɗannan fayilolin ).

Yana daidaita Dovecot

A matsayin uwar garken IMAP/POP3, Dovecot yana ba da hanya ga masu amfani ta hanyar Wakilin Mai Amfani da Wasiku (MUA, ko kuma aka sani da abokin ciniki), kamar Thunderbird ko Outlook, don suna wasu misalai don samun damar wasiku.

Don farawa, bari mu ƙirƙiri mai amfani da ƙungiya don sarrafa imel (za mu buƙaci wannan saboda ba a haɗa asusun imel ɗin mu da mai amfani da tsarin). Kuna iya amfani da wani UID da GID (ban da 5000 kamar yadda muke yi a ƙasa) muddin ba a amfani da shi kuma babban lamba ne:

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

Saitunan Dovecot an raba su cikin fayilolin sanyi da yawa (tabbatar cewa layin masu zuwa ba su da wani bayani da/ko gyara su don dacewa da saitunan da aka nuna a ƙasa).

A cikin /etc/dovecot/dovecot.conf:

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

A cikin /etc/dovecot/conf.d/10-auth.conf (kawai ba da damar tantancewa ta hanyar SQL kuma a bar wasu hanyoyin tantancewa da aka yi sharhi):

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

A cikin /etc/dovecot/conf.d/auth-sql.conf.ext (lura cewa za mu adana imel a cikin kundin adireshi mai suna yourdomain.com cikin /home/vmail, wanda kuke buƙatar ƙirƙirar idan babu shi. A cikin yanayinmu mun yi mkdir /home/vmail/linuxnewz.com don sarrafa imel na wannan yanki):

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

Za a ƙirƙira akwatunan saƙon saƙon mutum ɗaya don asusun mai amfani lokacin da aka fara karɓar imel na irin waɗannan asusun.

A cikin /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

A cikin /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 {
  }
}

A cikin /etc/dovecot/conf.d/10-ssl.conf (maye gurbin takaddun shaida da mahimman hanyoyin idan kuna shirin yin amfani da takaddun shaida ta CA):

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

A cikin /etc/dovecot/dovecot-sql.conf.ext shigar da bayanan bayananku da takaddun shaidar mai amfani da aka ƙirƙira a Sashe na 1.

Muhimmi: idan kalmar sirri ta ƙunshi alamar alama (#) , kuna buƙatar haɗa igiyoyin haɗin kai kamar yadda aka nuna a misalin da ke ƙasa:

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

Bugu da ƙari, za ku iya saita shiga don Dovecot ya bambanta da Postfix a cikin /etc/dovecot/conf.d/10-logging.conf:

log_path = /var/log/dovecot.log

A ƙarshe, tabbatar cewa log ɗin Dovecot yana samun dama ga dovecot mai amfani:

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

Tabbatar da Gyara Tsarin Postifix kuma Kunna SMTP, POP3, da IMAP a cikin Tacewar zaɓi

Idan kuna fuskantar kowace matsala yayin saita Postfix da/ko Dovecot, maimakon ƙaddamar da duk fayilolin sanyi don neman taimako, zaku iya samun taƙaitaccen bayani (layukan da ba a bayyana ba) tare da:

# 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

Bugu da ƙari, tabbatar da cewa akwatunan saƙon imel ana iya karanta su ta vmail kawai:

# chown –R vmail:vmail /home/vmail

Fayilolin tsarin ya kamata kuma a iya karanta su ta vmail da masu amfani da dovecot:

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

A ƙarshe, tabbatar kun kunna SMTP, POP3, da IMAP ta hanyar Tacewar zaɓi:

# 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

Sanya Thunderbird azaman Abokin Imel don Postfix

Samun amintaccen shiga ta hanyar bangon wuta don tashoshin jiragen ruwa da ake amfani da su a cikin sadarwar imel, lokaci yayi da za a saita abokin ciniki na imel. Amfani da [email kare da kalmar sirri mai dacewa, tare da mail.linuxnewz.com azaman IMAP (ko POP3) da sabar SMTP a shirye muke mu fara aikawa da karɓar imel zuwa kuma daga irin wannan asusun:

Kuna iya yin watsi da saƙon gargaɗin da aka nuna lafiya amintacce saboda kuna amfani da takardar shaidar da amintacciyar ƙungiya ta 3 ba ta sanya hannu ba:

Bari mu shirya taƙaitaccen imel ɗin gwaji kuma danna Aika:

Lokacin da aka sa ya karɓi takardar shedar sa hannu na uwar garken mai fita, tabbatar da shi a baya kamar da:

A ƙarshe, je zuwa imel ɗin da aka nufa don ganin ko kun karɓi imel ɗin da aka aiko kawai. Idan haka ne, amsa masa kuma duba idan an mayar da shi zuwa akwatin saƙo na imel na tushen (in ba haka ba, koma zuwa log ɗin Postfix a /var/log/maillog ko log ɗin Dovecot a /var/log/dovecot.log don bayanin matsala) :

Yanzu kuna da Postfix mai aiki da uwar garken imel na Dovecot kuma kuna iya fara aikawa da karɓar imel.

Takaitawa

A cikin wannan labarin mun bayyana yadda ake saita Postfix da Dovecot don sarrafa zirga-zirgar imel a cikin sabar Linux ɗin ku. Idan wani abu ba ya aiki kamar yadda aka nuna a cikin wannan labarin, tabbatar cewa kun ɗauki lokaci don bincika takaddun Dovecot.

Lura cewa ko da yake kafa sabar saƙon Postfix ba aiki mai sauƙi ba ne, ƙwarewa ce mai lada ga kowane mai gudanar da tsarin.

Idan bayan shiga cikin takaddun kun sami kanku har yanzu kuna fama da Postfix da/ko Dovecot, jin daɗin sauke mana bayanin kula ta amfani da fom ɗin sharhi da ke ƙasa kuma za mu yi farin cikin taimaka muku (kar ku manta da loda zuwa sabis ɗin ajiya na kan layi). Tsarin Postfix da Dovecot kamar yadda aka dawo dasu ta amfani da postconf da doveconf kamar yadda aka zayyana a cikin wannan labarin).