Kako v Linuxu konfigurirati Postfix in Dovecot z uporabniki navidezne domene - 2. del
V prejšnjem članku te serije smo razložili, kako varno nastaviti in upravljati bazo podatkov poštnega strežnika z uporabo phpMyAdmin.
- Namestite poštni strežnik Postfix in Dovecot z MariaDB - 1. del
Zdaj je čas, da konfigurirate interne programe, ki bodo uresničevali pošiljanje in prejemanje e-poštnih sporočil: Postfix in Dovecot (za obdelavo odhodne in dohodne e-pošte).
Konfiguriranje poštnega strežnika Postfix
Preden začnete konfigurirati Postfix, bi si bilo vredno ogledati njegove priročne strani tukaj, s posebnim poudarkom na razdelku z naslovom »Informacije za nove uporabnike Postfix«. V tem primeru boste lažje sledili tej vadnici.
Z nekaj besedami bi morali vedeti, da obstajata dve konfiguracijski datoteki za Postfix:
- /etc/postfix/main.cf (konfiguracijski parametri Postfix, za več podrobnosti glejte man 5 postconf).
- /etc/postfix/master.cf (Konfiguracija glavnega demona Postfix, glejte man 5 master za dodatne podrobnosti).
V /etc/postfix/main.cf
poiščite (ali dodajte, če je potrebno) naslednje vrstice in se prepričajte, da ustrezajo spodnjim vrednostim:
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
Naslednje tri nastavitve so še posebej pomembne. V datotekah, označenih z rumeno, bomo konfigurirali dostop Postfixa do tabel Domains_tbl, Users_tbl in 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
Zgoraj lahko izberete različna imena datotek, če jih ustvarite in vanje vstavite naslednjo vsebino. V vsakem primeru zamenjajte YourPassword z geslom, ki ste ga izbrali za uporabnika dba v 1. delu, ali pa uporabite spodnje korenske poverilnice MariaDB za uporabnika in geslo.
Prepričajte se tudi, da uporabljate popolnoma enaka imena baze podatkov e-poštnega strežnika in tabel, ustvarjenih v 1. delu.
V /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'
V /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'
V /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'
Na koncu ne pozabite spremeniti dovoljenj za te datoteke na 640:
# chmod 640 /etc/postfix/mariadb-vdomains.cf # chmod 640 /etc/postfix/mariadb-vusers.cf # chmod 640 /etc/postfix/mariadb-valias.cf
In lastništvo uporabniškega korenskega in skupinskega postfiksa:
# chown root:postfix /etc/postfix/mariadb-vdomains.cf # chown root:postfix /etc/postfix/mariadb-vusers.cf # chown root:postfix /etc/postfix/mariadb-valias.cf
Nato za omogočanje varnih povezav moramo zagotoviti, da naslednje nastavitve niso komentirane (ali po potrebi dodane) v /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
Opomba: Zamik v vrsticah, ki se začnejo z možnostjo -o
, je ključnega pomena; sicer bo preverjanje postfix vrnilo napako:
Preden shranite spremembe, dodajte naslednje vrstice na dno datoteke:
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
Na tej točki je nujno preveriti, ali ima Postfix dostop do tabel zbirke podatkov in domen, računov in vzdevkov, ki smo jih ustvarili v 1. delu.
V ta namen bomo uporabili ukaz postmap, pripomoček za preizkušanje komunikacije s tabelami, ki jih bo Postfix poiskal med delovanjem, vendar moramo najprej znova zagnati 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
Na spodnji sliki lahko vidimo, da se za obstoječe zapise v bazi vrne 1. V nasprotnem primeru se nič ne prikaže nazaj na zaslon. V primeru preverjanja vzdevka upoštevajte, da se vrne dejanski e-poštni račun, na katerega je vzdevek preslikan:
Upoštevajte, da NE preverjamo pristnosti poverilnic, nastavljenih za vsak e-poštni račun, preizkušamo samo zmožnost Postfixa, da zazna te zapise v zbirki podatkov.
Če dobite drugačne rezultate kot zgoraj, se prepričajte, da uporabljate veljaven par uporabnik/geslo v mariadb-vdomains.cf, mariadb-vusers.cf in mariadb-valias.cf (ali karkoli ste že izbrali, da pokličete te datoteke ).
Konfiguriranje Dovecot
Dovecot kot strežnik IMAP/POP3 ponuja uporabnikom način prek agenta za pošto uporabnikov (MUA ali tudi odjemalca), kot sta Thunderbird ali Outlook, da naštejejo nekaj primerov dostopa do njihove pošte.
Za začetek ustvarimo uporabnika in skupino za obdelavo e-pošte (to bomo potrebovali, saj naši e-poštni računi niso povezani s sistemskim uporabnikom). Če ne uporabljate in je veliko število, lahko uporabite drug UID in GID (razen 5000, kot to storimo spodaj):
# groupadd -g 5000 vmail # useradd -g vmail -u 5000 vmail -d /home/vmail -m
Nastavitve za Dovecot so razdeljene na več konfiguracijskih datotek (prepričajte se, da so naslednje vrstice nekomentirane in/ali jih uredite, da ustrezajo spodnjim nastavitvam).
V /etc/dovecot/dovecot.conf
:
!include_try /usr/share/dovecot/protocols.d/*.protocol protocols = imap pop3 lmtp !include conf.d/*.conf !include_try local.conf
V /etc/dovecot/conf.d/10-auth.conf
(omogočite samo preverjanje pristnosti prek SQL in pustite komentarje drugih načinov preverjanja pristnosti):
disable_plaintext_auth = yes auth_mechanisms = plain login !include auth-sql.conf.ext
V /etc/dovecot/conf.d/auth-sql.conf.ext
(upoštevajte, da bomo e-poštna sporočila shranili v imenik z imenom yourdomain.com znotraj/home/vmail, ki ga morate ustvariti, če ne obstaja. V našem primeru smo za upravljanje e-poštnih sporočil za to domeno naredili 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 }
Posamezni nabiralniki za uporabniške račune bodo ustvarjeni, ko bodo e-poštna sporočila za te račune prvič prejeta.
V /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
V /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 { } }
V /etc/dovecot/conf.d/10-ssl.conf
(zamenjajte pot do potrdil in ključev, če nameravate uporabiti potrdilo, podpisano s strani overitelja potrdil):
ssl = required ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem
V /etc/dovecot/dovecot-sql.conf.ext
vnesite podatke o zbirki podatkov in poverilnice skrbniškega uporabnika, ustvarjene v 1. delu.
Pomembno: če vaše geslo vsebuje zvezdico (#)
, boste morali priložiti niz za povezovanje, kot je navedeno v spodnjem primeru:
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';
Poleg tega lahko nastavite beleženje Dovecot tako, da je ločeno od Postfix v /etc/dovecot/conf.d/10-logging.conf
:
log_path = /var/log/dovecot.log
Na koncu se prepričajte, da je dnevnik golobice dostopen za uporabnika golobice:
# chown vmail:dovecot /var/log/dovecot.log # chmod 660 /var/log/dovecot.log
Preverite in popravite konfiguracijo Postifix ter v požarnem zidu omogočite SMTP, POP3 in IMAP
Če med konfiguriranjem Postfix in/ali Dovecot naletite na kakršne koli težave, namesto da vse konfiguracijske datoteke pošljete na prošnjo za pomoč, lahko dobite povzetek konfiguracije (samo nekomentirane vrstice) z:
# 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
Poleg tega poskrbite, da bodo nabiralniki e-pošte berljivi samo vmailu:
# chown –R vmail:vmail /home/vmail
Uporabniki vmail in dovecot bi morali brati tudi konfiguracijske datoteke:
# chown -R vmail:dovecot /etc/dovecot # chmod -R o-rwx /etc/dovecot
Nazadnje pazite, da prek požarnega zidu omogočite SMTP, POP3 in 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
Konfigurirajte Thunderbird kot e-poštnega odjemalca za Postfix
Čas je, da prek požarnega zidu zagotovite dostop do vrat, ki se uporabljajo v e-poštnih komunikacijah, čas za konfiguracijo e-poštnega odjemalca. Z uporabo [email in ustreznega gesla ter mail.linuxnewz.com kot strežnika IMAP (ali POP3) in SMTP smo pripravljeni na pošiljanje in prejemanje e-poštnih sporočil na in iz tega računa:
Prikazano opozorilno sporočilo lahko varno prezrete, ker uporabljate potrdilo, ki ga ni podpisal zaupanja vreden neodvisni CA:
Sestavimo kratek testni e-poštni naslov in kliknite Pošlji:
Ko boste pozvani, da sprejmete samopodpisano potrdilo za odhodni strežnik, ga potrdite prej kot prej:
Na koncu pojdite na ciljno e-pošto in preverite, ali ste prejeli pravkar poslano e-pošto. Če je odgovor pritrdilen, odgovorite nanj in preverite, ali je poslan nazaj v izvorno poštno mapo (v nasprotnem primeru za informacije o odpravljanju težav poglejte v dnevnik Postfix na/var/log/maillog ali dnevnik Dovecot na /var/log/dovecot.log) :
Zdaj imate delujoč e-poštni strežnik Postfix in Dovecot in lahko začnete pošiljati in prejemati e-pošto.
Povzetek
V tem članku smo razložili, kako konfigurirati Postfix in Dovecot za obdelavo e-poštnega prometa v vašem Linux strežniku. Če nekaj ne deluje, kot je navedeno v tem članku, si vzemite čas za pregled dokumentacije Dovecot.
Upoštevajte, da čeprav postavitev poštnega strežnika Postfix ni lahka naloga, je za vsakega sistemskega skrbnika koristna izkušnja.
Če se po pregledu dokumentov še vedno spopadate s Postfixom in/ali Dovecotom, nam, prosimo, pošljite opombo s spodnjim obrazcem za komentar in z veseljem vam bomo pomagali (ne pozabite naložiti na spletno storitev za shranjevanje konfiguracija Postfix in Dovecot, pridobljena s pomočjo postconf in doveconf, kot je opisano v tem članku).