Postfixi ja Dovecoti konfigureerimine Linuxi virtuaalse domeeni kasutajatega - 2. osa


Selle seeria eelmises artiklis selgitasime, kuidas postiserveri andmebaasi phpMyAdmini abil turvaliselt seadistada ja hallata.

  1. Installige Postfixi meiliserver ja Dovecot koos MariaDB-ga - 1. osa

Nüüd on aeg konfigureerida siseprogrammid, mis muudavad meilide saatmise ja vastuvõtmise reaalsuseks: Postfix ja Dovecot (vastavalt väljuvate ja saabuvate meilide haldamiseks).

Postfixi meiliserveri konfigureerimine

Enne Postfixi konfigureerimise alustamist tasub ja tasuks heita pilk siin olevatele manulehtedele, pannes erilist rõhku jaotisele pealkirjaga "Teave uutele Postfixi kasutajatele". Kui teete seda, on teil selle õpetuse abil lihtsam järgida.

Mõne sõnaga peaksite teadma, et Postfixi jaoks on kaks konfiguratsioonifaili:

  1. /etc/postfix/main.cf (Postfixi konfiguratsiooniparameetrid, lisateavet leiate man 5 postconfist).
  2. /etc/postfix/master.cf (Postfixi deemoni konfigureerimine, lisateavet vt mees 5 master).

Leidke jaotises /etc/postfix/main.cf järgmised read (või lisage vajadusel) järgmised read ja veenduge, et need vastavad allpool näidatud väärtustele:

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

Järgmised kolm seadet on erilise tähtsusega. Kollasega tähistatud failides konfigureerime Postfixi juurdepääsu tabelitele Domeenid_tbl, Kasutajad_tbl ja 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

Pange tähele, et saate ülaltoodud failinimesid valida seni, kuni olete kindlasti need loonud ja sisestanud järgmise sisu. Igal juhul asendage YourPassword parooliga, mille valisite 1. osas dba kasutaja jaoks, või võite kasutada ka allpool MariaDB juurmandaate kasutaja ja parooli jaoks.

Samuti veenduge, et kasutaksite täpselt samu e-posti serveri andmebaasi ja 1. osas loodud tabelite nimesid.

Väljal /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'

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

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

Lõpuks ärge unustage muuta nende failide õigused 640-le:

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

Ja omandiõigused kasutaja juur- ja rühmituse postfixile:

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

Järgmisena peame turvaliste ühenduste lubamiseks veenduma, et jaotises /etc/postfix/master.cf pole järgmisi sätteid kommenteerimata (või vajadusel lisatud):

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

Märkus. Valikute -o alustavate ridade taane on kriitiline; muidu tagastab postfixi kontroll tõrke:

Enne muudatuste salvestamist lisage faili lõppu järgmised read:

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

Siinkohal on oluline kontrollida, kas Postfixil on juurdepääs 1. osas loodud andmebaasitabelitele ning domeenidele, kontodele ja varjunimedele.

Selleks kasutame postmap käsku, utiliiti, et testida suhtlust tabelitega Postfix otsib töö ajal, kuid ennekõike peame postfixi taaskäivitama:

# 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

Alloleval pildil näeme, et andmebaasis olevate kirjete puhul tagastatakse 1. Vastasel juhul ei kuvata ekraanile enam midagi. Pseudonüümikontrolli korral pange tähele, et tagastatakse tegelik e-posti konto, kuhu varjunimi on kaardistatud:

Pange tähele, et me EI autenti iga e-posti konto jaoks määratud mandaatide alusel, vaid testime ainult Postfixi võimet neid andmebaasis leiduvaid kirjeid tuvastada.

Seega, kui saate ülaltoodust erineva väljundi, veenduge, et kasutaksite mariadb-vdomains.cf, mariadb-vusers.cf ja mariadb-valias.cf (või mis iganes te neid faile kutsusite) kehtivat kasutaja/parooli paari ).

Dovecoti seadistamine

IMAP/POP3-serverina pakub Dovecot kasutajatele viisi Mail User Agenti (MUA või tuntud ka kui klient), näiteks Thunderbirdi või Outlooki kaudu, et tuua mõned näited nende postidele juurdepääsuks.

Alustuseks loome meilide haldamiseks kasutaja ja grupi (vajame seda, kuna meie e-posti kontod ei ole seotud süsteemi kasutajaga). Kui neid ei kasutata ja neid on palju, võite kasutada mõnda muud UID-d ja GID-d (va 5000, nagu me allpool teeme).

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

Dovecoti seaded on jaotatud mitmesse konfiguratsioonifaili (veenduge, et järgmisi ridu pole kommenteeritud ja/või muutke neid allpool toodud sätetega vastavaks).

Kaustas /etc/dovecot/dovecot.conf :

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

Jaotises /etc/dovecot/conf.d/10-auth.conf (lubage autentimine ainult SQL-i kaudu ja jätke muud autentimismeetodid kommenteerimata):

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

Kaustas /etc/dovecot/conf.d/auth-sql.conf.ext (pange tähele, et me hoiame e-kirju kataloogis nimega yourdomain.com sees/home/vmail, mille peate looma, kui seda pole olemas. Meie puhul tegime selle domeeni meilide haldamiseks mkdir /home/vmail/linuxnewz.com):

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

Kasutajakontode individuaalsed postkastid luuakse, kui selliste kontode e-kirjad esimest korda saabuvad.

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

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

Jaotises /etc/dovecot/conf.d/10-ssl.conf (asendage sertifikaat ja võtmeteed, kui kavatsete kasutada CA poolt allkirjastatud sertifikaati):

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

Sisestage jaotisesse /etc/dovecot/dovecot-sql.conf.ext oma andmebaasi teave ja 1. osas loodud halduskasutaja mandaadid.

Tähtis: kui teie parool sisaldab tärn (#) , peate lisama ühendusstringi, nagu on näidatud allpool toodud näites:

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

Lisaks saate seadistada Dovecoti logimise Postfixist eraldatuks jaotises /etc/dovecot/conf.d/10-logging.conf :

log_path = /var/log/dovecot.log

Lõpuks veenduge, et Dovecoti logi oleks kasutajale tuvastatud:

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

Kontrollige ja parandage Postifixi konfiguratsioon ning lubage tulemüüris SMTP, POP3 ja IMAP

Kui teil juhtub Postfixi ja/või Dovecoti seadistamisel tekkima probleeme, saate selle asemel, et esitada kõik konfiguratsioonifailid abi küsimiseks, konfiguratsiooni kokkuvõtte (ainult kommenteerimata read) koos:

# 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

Lisaks veenduge, et meilikastid oleksid loetavad ainult vmailiga:

# chown –R vmail:vmail /home/vmail

Konfiguratsioonifailid peaksid olema loetavad ka vmaili ja tuvipesa kasutajatele:

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

Lõpuks veenduge, et lubate tulemüüri kaudu SMTP, POP3 ja 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

Seadistage Thunderbird Postfixi meilikliendiks

Pärast e-posti teel kasutatavate sadamate tulemüüri kaudu juurdepääsu tagamist on aeg e-posti klient konfigureerida. Kasutades [email ja sellele vastavat parooli, koos e-posti aadressiga mail.linuxnewz.com IMAP-i (või POP3) ja SMTP-serverina, oleme valmis alustama meilide saatmist ja vastuvõtmist sellelt kontolt:

Kuvatud hoiatusteate võite turvaliselt eirata, kuna kasutate sertifikaati, millele pole alla kirjutanud usaldusväärne kolmanda osapoole CA:

Koostame lühikese testimeili ja klõpsake nuppu Saada:

Kui teil palutakse aktsepteerida väljuva serveri enda allkirjastatud sertifikaati, kinnitage see varem nagu varem:

Lõpuks minge sihtkoha e-posti aadressile, et näha, kas olete saanud just saadetud meilisõnumi. Kui jah, vastake sellele ja vaadake, kas see saadetakse tagasi e-posti postkasti (vastasel juhul vaadake tõrkeotsingu teavet Postfixi logist aadressil/var/log/maillog või Dovecoti logist aadressil /var/log/dovecot.log) :

Teil on nüüd toimiv Postfixi ja Dovecoti e-posti server ning saate hakata e-kirju saatma ja vastu võtma.

Kokkuvõte

Selles artiklis oleme selgitanud, kuidas seadistada Postfix ja Dovecot oma Linuxi serveri e-posti liikluse haldamiseks. Kui midagi ei toimi selles artiklis näidatud viisil, veenduge, et võtaksite aega Dovecoti dokumentatsiooni kontrollimiseks.

Pange tähele, et kuigi Postfixi meiliserveri seadistamine pole lihtne ülesanne, on see iga süsteemiadministraatori jaoks kasulik kogemus.

Kui leiate, et olete pärast dokumentide läbimist ikka veel Postfixi ja/või Dovecotiga hädas, visake meile alloleva kommentaarivormi abil märkus ja aitame teid hea meelega (ärge unustage üles laadida veebimällu Postfixi ja Dovecoti konfiguratsioon, mis on leitud postconfi ja doveconfi abil, nagu on kirjeldatud käesolevas artiklis).