Postfixi ja Dovecoti konfigureerimine Linuxi virtuaalse domeeni kasutajatega - 2. osa
Selle seeria eelmises artiklis selgitasime, kuidas postiserveri andmebaasi phpMyAdmini abil turvaliselt seadistada ja hallata.
- 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:
- /etc/postfix/main.cf (Postfixi konfiguratsiooniparameetrid, lisateavet leiate man 5 postconfist).
- /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).