Kā konfigurēt Postfix un Dovecot ar virtuālo domēnu lietotājiem Linux - 2. daļa


Iepriekšējā šīs sērijas rakstā mēs paskaidrojām, kā droši iestatīt un pārvaldīt pasta servera datu bāzi, izmantojot phpMyAdmin.

  1. Instalējiet Postfix Mail Server un Dovecot ar MariaDB - 1. daļa

Ir pienācis laiks konfigurēt iekšējās programmas, kas e-pasta ziņojumu sūtīšanu un saņemšanu padarīs par realitāti: Postfix un Dovecot (lai attiecīgi apstrādātu izejošos un ienākošos e-pastus).

Konfigurē Postfix pasta serveri

Pirms sākat konfigurēt Postfix, būtu vērts un labi šeit apskatīt tā manas lapas, īpašu uzsvaru liekot uz sadaļu “Informācija jauniem Postfix lietotājiem”. Ja jūs to izdarīsit, jums būs vieglāk sekot līdzi šai apmācībai.

Dažos vārdos jums jāzina, ka Postfix ir divi konfigurācijas faili:

  1. /etc/postfix/main.cf (Postfix konfigurācijas parametri, sīkāku informāciju skatiet man 5 postconf).
  2. /etc/postfix/master.cf (Postfix master dēmona konfigurācija, sīkāku informāciju skatiet man 5 master).

Sadaļā /etc/postfix/main.cf atrodiet (vai pievienojiet, ja nepieciešams) šādas rindas un pārliecinieties, vai tās atbilst tālāk norādītajām vērtībām:

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ākamajiem trim iestatījumiem ir īpaša nozīme. Dzeltenā krāsā norādītajos failos mēs konfigurēsim Postfix piekļuvi tabulām Domains_tbl, Users_tbl un 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

Ņemiet vērā, ka iepriekš varat izvēlēties dažādus failu nosaukumus, ja vien tos noteikti izveidojat un tajos ievietojat šādu saturu. Katrā gadījumā nomainiet YourPassword ar paroli, kuru izvēlējāties dba lietotājam 1. daļā, vai arī varat izmantot MariaDB saknes akreditācijas datus lietotājam un paroli zemāk.

Pārliecinieties, ka izmantojat tieši tādus pašus e-pasta servera datu bāzes nosaukumus un tabulas, kas izveidotas 1. daļā.

Sadaļā /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'

Sadaļā /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'

Sadaļā /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'

Visbeidzot, neaizmirstiet mainīt atļaujas šiem failiem uz 640:

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

Un īpašumtiesības uz lietotāja saknes un grupas 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

Pēc tam, lai iespējotu drošus savienojumus, mums jāpārliecinās, vai /etc/postfix/master.cf nav komentēti (vai vajadzības gadījumā pievienoti) šādi iestatījumi:

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

Piezīme: atkāpe rindās, kas sākas ar opciju -o , ir kritiska; pretējā gadījumā postfix pārbaude parādīs kļūdu:

Pirms izmaiņu saglabāšanas faila apakšdaļā pievienojiet šādas rindas:

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

Šajā brīdī ir svarīgi pārbaudīt, vai Postfix ir piekļuve datu bāzes tabulām un domēniem, kontiem un aizstājvārdiem, kurus mēs izveidojām 1. daļā.

Lai to izdarītu, mēs izmantosim postmap komandu - utilītu, lai pārbaudītu saziņu ar tabulām, kuras Postfix operācijas laikā meklēs, taču vispirms mums būs jārestartē 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

Zemāk redzamajā attēlā mēs varam redzēt, ka esošajiem datu bāzes ierakstiem tiek atgriezts 1. Pretējā gadījumā nekas netiek parādīts atpakaļ ekrānā. Alias pārbaudes gadījumā ņemiet vērā, ka tiek atgriezts faktiskais e-pasta konts, uz kuru tiek aizstāts aizstājvārds:

Ņemiet vērā, ka mēs NE autentificējamies, izmantojot katram e-pasta kontam iestatītos akreditācijas datus, mēs tikai pārbaudām Postfix spēju atklāt šos ierakstus datu bāzē.

Tādējādi, ja iegūstat citu izvadi nekā iepriekš, pārliecinieties, vai mariadb-vdomains.cf, mariadb-vusers.cf un mariadb-valias.cf (vai kā citādi izvēlējāties saukt šos failus) izmantojat derīgu lietotāja/paroles pāri. ).

Dovecot konfigurēšana

Kā IMAP/POP3 serveris Dovecot nodrošina veidu, kā lietotāji, izmantojot Pasta lietotāju aģentu (MUA vai arī pazīstams kā klients), piemēram, Thunderbird vai Outlook, nosauc dažus piemērus, kā piekļūt viņu pastam.

Lai sāktu, izveidosim lietotāju un grupu e-pastu apstrādei (tas mums būs nepieciešams, jo mūsu e-pasta konti nav saistīti ar sistēmas lietotāju). Varat izmantot citu UID un GID (izņemot 5000, kā mēs to darām tālāk), ja vien tie netiek izmantoti un ir liels skaits:

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

Dovecot iestatījumi ir sadalīti vairākos konfigurācijas failos (pārliecinieties, ka nākamās rindas nav komentētas un/vai rediģējiet tās, lai tās atbilstu tālāk norādītajiem iestatījumiem).

Sadaļā /etc/dovecot/dovecot.conf :

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

Sadaļā /etc/dovecot/conf.d/10-auth.conf (iespējojiet autentifikāciju tikai izmantojot SQL un atstājiet komentētās citas autentifikācijas metodes):

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

Sadaļā /etc/dovecot/conf.d/auth-sql.conf.ext (ņemiet vērā, ka e-pastus mēs glabāsim direktorijā ar nosaukumu yourdomain.com iekšā/home/vmail, kas jums jāizveido, ja tā nepastāv. Mūsu gadījumā mēs izmantojām mkdir /home/vmail/linuxnewz.com, lai pārvaldītu e-pasta ziņojumus šim domēnam):

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

Lietotāju kontu individuālās iesūtnes tiks izveidotas, kad pirmo reizi tiks saņemti šādu kontu e-pasta ziņojumi.

Sadaļā /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

Sadaļā /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 {
  }
}

Sadaļā /etc/dovecot/conf.d/10-ssl.conf (nomainiet sertifikātu un atslēgu ceļus, ja plānojat izmantot SI parakstītu sertifikātu):

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

Sadaļā /etc/dovecot/dovecot-sql.conf.ext ievadiet savu datu bāzes informāciju un 1. daļā izveidotos administratīvā lietotāja akreditācijas datus.

Svarīgi: ja jūsu parolē ir zvaigznīte (#) , jums būs jāpievieno savienojuma virkne, kā norādīts zemāk esošajā piemērā:

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

Turklāt Dovecot reģistrēšanu varat konfigurēt atsevišķi no Postfix sadaļā /etc/dovecot/conf.d/10-logging.conf :

log_path = /var/log/dovecot.log

Visbeidzot, pārliecinieties, vai Dovecot žurnāls ir pieejams lietotāja dovecot:

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

Pārbaudiet un izlabojiet Postifix konfigurāciju un iespējojiet SMTP, POP3 un IMAP ugunsmūrī

Ja, konfigurējot Postfix un/vai Dovecot, rodas kādas problēmas, tā vietā, lai iesniegtu visus konfigurācijas failus, lai lūgtu palīdzību, varat saņemt konfigurācijas kopsavilkumu (tikai nekomentētas rindas) ar:

# 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

Turklāt pārliecinieties, ka e-pasta iesūtnes ir lasāmas tikai ar vmail:

# chown –R vmail:vmail /home/vmail

Konfigurācijas failiem jābūt lasāmiem arī vmail un baložu lietotājiem:

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

Visbeidzot, pārliecinieties, vai caur ugunsmūri esat iespējojis SMTP, POP3 un IMAP:

# 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

Konfigurējiet Thunderbird kā Postfix e-pasta klientu

Pēc e-pasta saziņā izmantoto ostu piekļuves caur ugunsmūri ir nodrošināts laiks konfigurēt e-pasta klientu. Izmantojot [email un tam atbilstošo paroli, kā arī mail.linuxnewz.com kā IMAP (vai POP3) un SMTP serveri, mēs esam gatavi sākt sūtīt un saņemt e-pastus uz un no šāda konta:

Parādīto brīdinājuma ziņojumu varat droši neņemt vērā, jo izmantojat sertifikātu, kuru nav parakstījusi uzticama trešās puses CA:

Sastādīsim īsu testa e-pastu un noklikšķiniet uz Sūtīt:

Kad tiek lūgts pieņemt izejošā servera pašparakstītu sertifikātu, apstipriniet to iepriekš tāpat kā iepriekš:

Visbeidzot, dodieties uz galamērķa e-pastu, lai uzzinātu, vai esat saņēmis tikko nosūtīto e-pastu. Ja tā, atbildiet uz to un pārbaudiet, vai tas tiek piegādāts atpakaļ avota e-pasta iesūtnē (pretējā gadījumā problēmu novēršanas informāciju skatiet Postfix žurnālā/var/log/maillog vai Dovecot žurnālā vietnē /var/log/dovecot.log). :

Tagad jums ir strādājošs Postfix un Dovecot e-pasta serveris, un jūs varat sākt sūtīt un saņemt e-pastus.

Kopsavilkums

Šajā rakstā mēs esam paskaidrojuši, kā konfigurēt Postfix un Dovecot, lai apstrādātu e-pasta trafiku jūsu Linux serverī. Ja kaut kas nedarbojas, kā norādīts šajā rakstā, noteikti veltiet laiku, lai pārbaudītu Dovecot dokumentāciju.

Lūdzu, ņemiet vērā, ka, lai gan Postfix pasta servera iestatīšana nav viegls uzdevums, tā ir noderīga pieredze katram sistēmas administratoram.

Ja pēc dokumentu apmeklēšanas jūs joprojām cīnāties ar Postfix un/vai Dovecot, nekautrējieties nomest mums piezīmi, izmantojot zemāk esošo komentāru veidlapu, un mēs ar prieku jums palīdzēsim (neaizmirstiet augšupielādēt tiešsaistes krātuves pakalpojumā konfigurācija Postfix un Dovecot, kas iegūta, izmantojot postconf un doveconf, kā aprakstīts šajā rakstā).