Wéi konfiguréieren Postfix an Dovecot mat virtuelle Domain Benotzer am Linux - Deel 2
Am viregten Artikel vun dëser Serie hu mir erkläert wéi Dir d'Mail Server Datebank sécher mat phpMyAdmin opstellt a verwalten.
- Installéiere Postfix Mail Server an Dovecot mat MariaDB - Deel 1
Elo ass et Zäit d'intern Programmer ze konfiguréieren, déi d'Schécken an d'E-Mail kréien eng Realitéit maachen: Postfix an Dovecot (fir ausgaang an erakommen E-Mailen ze behandelen, respektiv).
Postfix Mail Server konfiguréieren
Ier Dir ufänkt Postfix ze konfiguréieren, wier et derwäert a gutt e Bléck op seng Mann Säiten hei ze huelen, speziell Akzent op d'Sektioun mam Titel Informatioun fir nei Postfix Benotzer. Wann Dir et maacht, fannt Dir et méi einfach mat dësem Tutorial ze verfollegen.
A e puer Wierder sollt Dir wëssen datt et zwee Konfiguratiounsdateien fir Postfix sinn:
- /etc/postfix/main.cf (Postfix Konfiguratiounsparameter, kuckt op man 5 postconf fir méi Detailer).
- /etc/postfix/master.cf (Postfix Master Daemon Konfiguratioun, kuckt Mann 5 Master fir weider Detailer).
An /etc/postfix/main.cf
, lokaliséiert (oder füügt, wann néideg) déi folgend Zeilen a vergewëssert Iech datt se mat de Wäerter hei ënnen entspriechen:
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
Déi nächst dräi Astellunge si besonnesch wichteg. An de Dateien, déi a giel uginn sinn, konfiguréiere mir den Postfix Zougang zu den Domains_tbl, Users_tbl, an Alias_tbl Dëscher:
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
Bedenkt datt Dir verschidde Dateinumm hei uewen auswielen kënnt, soulaang Dir sécher sidd datt Dir se erstellt an déi folgend Inhalter an hinnen setzt. An all Fall, ersetzt YourPassword mam Passwuert dat Dir fir den dba Benotzer am Deel 1 gewielt hutt, oder Dir kënnt och d'MariaDB Root Umeldungsinformatioune fir Benotzer a Passwuert hei ënnen benotzen.
Gitt och sécher datt Dir déi exakt selwecht Nimm vun der E-Mail Server Datebank an Dëscher benotzt, déi am Deel 1 erstallt goufen.
An /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'
An /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'
An /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'
Schlussendlech vergiesst net d'Permissiounen op dës Dateien op 640 z'änneren:
# chmod 640 /etc/postfix/mariadb-vdomains.cf # chmod 640 /etc/postfix/mariadb-vusers.cf # chmod 640 /etc/postfix/mariadb-valias.cf
An d'Besëtzer fir Benotzerroot a Grupp 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
Als nächst, fir sécher Verbindungen z'aktivéieren, musse mir sécher sinn datt déi folgend Astellungen net kommentéiert sinn (oder dobäigesat ginn, wann néideg) an /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
Bemierkung: D'Indentatioun an den Zeilen, déi mat der -o
Optioun ufänken, ass kritesch; soss gëtt Postfix Check e Feeler zréck:
Ier Dir Ännerungen späichert, füügt déi folgend Zeilen um Enn vun der Datei un:
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
Zu dësem Zäitpunkt ass et essentiell ze kontrolléieren ob Postfix Zougang zu den Datebanktabellen an d'Domänen, Konten an Alias huet, déi mir am Deel 1 erstallt hunn.
Fir dat ze maachen, benotze mir de Postmap Kommando, en Utility fir d'Kommunikatioun mat den Dëscher ze testen.
# 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
Am Bild hei drënner kënne mir gesinn datt fir existent records an der Datebank en 1 zréckgeet. Soss gëtt näischt zréck op den Ecran ugewisen. Am Fall vun der Aliascheck, bemierkt datt den aktuellen E-Mailkonto deen den Alias mapéiert ass zréckginn:
Notéiert datt mir NET authentifizéieren géint d'Umeldungsinformatioune fir all E-Mail Kont, mir testen nëmmen d'Fäegkeet vu Postfix fir dës records an der Datebank z'entdecken.
Also, wann Dir en aneren Output kritt wéi hei uewen, gitt sécher datt Dir e gëltege Benotzer/Passwuert Pair an mariadb-vdomains.cf, mariadb-vusers.cf, a mariadb-valias.cf benotzt (oder wat och ëmmer Dir gewielt hutt dës Dateien ze nennen ).
Dovecot konfiguréieren
Als IMAP/POP3 Server bitt Dovecot e Wee fir Benotzer duerch e Mail User Agent (MUA, oder och bekannt als Client), wéi Thunderbird oder Outlook, fir e puer Beispiller ze nennen fir op hir Mail ze kommen.
Fir unzefänken, loosst eis e Benotzer an e Grupp erstellen fir E-Mailen ze handhaben (mir brauchen dëst well eis E-Mailkonten net mat engem Systembenotzer verbonne sinn). Dir kënnt eng aner UID a GID benotzen (aner wéi 5000 wéi mir hei ënnen maachen) soulaang et net am Gebrauch ass an eng héich Zuel ass:
# groupadd -g 5000 vmail # useradd -g vmail -u 5000 vmail -d /home/vmail -m
D'Astellunge fir Dovecot sinn iwwer e puer Konfiguratiounsdateien opgedeelt (vergewëssert Iech datt déi folgend Zeilen net kommentéiert sinn an/oder ännert se fir mat den Astellungen hei ënnendrënner ze passen).
An /etc/dovecot/dovecot.conf
:
!include_try /usr/share/dovecot/protocols.d/*.protocol protocols = imap pop3 lmtp !include conf.d/*.conf !include_try local.conf
An /etc/dovecot/conf.d/10-auth.conf
(aktivéiert nëmmen d'Authentifikatioun duerch SQL a léisst aner Authentifikatiounsmethoden kommentéieren):
disable_plaintext_auth = yes auth_mechanisms = plain login !include auth-sql.conf.ext
An /etc/dovecot/conf.d/auth-sql.conf.ext
(Notéiert datt mir E-Mailen an engem Verzeechnes mam Numm yourdomain.com an /home/vmail späicheren, deen Dir musst erstellen wann et gëtt et net.An eisem Fall hu mir mkdir /home/vmail/linuxnewz.com gemaach fir E-Maile fir deen Domain ze verwalten):
passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext } userdb { driver = static args = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir }
Eenzel Inboxe fir Benotzerkonten ginn erstallt wann E-Maile fir sou Konte fir d'éischt kritt ginn.
An /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
An /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 { } }
An /etc/dovecot/conf.d/10-ssl.conf
(ersetzt d'Zertifikat an d'Schlësselweeër wann Dir plangt en Zertifika ze benotzen deen vun engem CA ënnerschriwwen ass):
ssl = required ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem
An /etc/dovecot/dovecot-sql.conf.ext
gitt Är Datebankinformatioun an d'Umeldungsinformatioune vum administrativen Benotzer erstallt am Deel 1.
Wichteg: Wann Äert Passwuert en Asterisk (#)
enthält, musst Dir d'Verbindungsstring ëmschléissen wéi am Beispill hei ënnendrënner uginn:
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';
Zousätzlech kënnt Dir de Logbuch fir Dovecot konfiguréieren fir getrennt vu Postfix an /etc/dovecot/conf.d/10-logging.conf
:
log_path = /var/log/dovecot.log
Schlussendlech, gitt sécher datt den Dovecot Log zougänglech ass fir de Benotzer Dovecot:
# chown vmail:dovecot /var/log/dovecot.log # chmod 660 /var/log/dovecot.log
Verifizéiert a fixéiert Postifix Konfiguratioun an aktivéiert SMTP, POP3, an IMAP an der Firewall
Wann Dir geschitt mat Probleemer beim Konfiguratioun vun Postfix an/oder Dovecot, anstatt all d'Konfiguratiounsdateien ofzeginn fir Hëllef ze froen, kënnt Dir e Konfiguratiounsresumé kréien (nëmmen net kommentéiert Linnen) mat:
# 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
Zousätzlech, gitt sécher datt d'E-Mail-Inboxen nëmme vu vmail liesbar sinn:
# chown –R vmail:vmail /home/vmail
Konfiguratiounsdateien sollen och vu Vmail an Dovecot Benotzer liesbar sinn:
# chown -R vmail:dovecot /etc/dovecot # chmod -R o-rwx /etc/dovecot
Endlech, gitt sécher datt Dir SMTP, POP3 an IMAP duerch d'Firewall aktivéiert:
# 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
Thunderbird als E-Mail Client fir Postfix konfiguréieren
Nodeems Dir den Zougang duerch d'Firewall fir d'Ports geséchert hutt, déi an der E-Mail Kommunikatioun benotzt ginn, ass et Zäit en E-Mail Client ze konfiguréieren. Mat [email a sengem entspriechende Passwuert, zesumme mat mail.linuxnewz.com als IMAP (oder POP3) an SMTP Server si mir prett fir E-Mailen op a vun esou engem Kont ze schécken an ze kréien:
Dir kënnt sécher d'Warnungsmeldung ignoréieren, déi gewise gëtt, well Dir e Certificat benotzt deen net vun engem vertrauenswürdege Drëtt Partei CA ënnerschriwwe gëtt:
Loosst eis eng kuerz Test-E-Mail opstellen a klickt Schécken:
Wann Dir gefrot gëtt de selbstënnerschriwwenen Zertifika fir den erausginnende Server ze akzeptéieren, bestätegt et virdru wéi virdrun:
Schlussendlech gitt op d'Destinatiouns-E-Mail fir ze kucken ob Dir d'E-Mail kritt hutt déi just geschéckt gouf. Wann jo, äntwert et a kuckt ob et zréck an d'Quell E-Mail-Inbox geliwwert gëtt (soss kuckt op de Postfix-Log op /var/log/maillog oder den Dovecot-Log op /var/log/dovecot.log fir Probleemer ze léisen) :
Dir hutt elo e funktionnéierende Postfix an Dovecot E-Mail Server a kënnt ufänken E-Mailen ze schécken an ze kréien.
Resumé
An dësem Artikel hu mir erkläert wéi Dir Postfix an Dovecot konfiguréiert fir E-Mail-Traffic an Ärem Linux Server ze handhaben. Wann eppes net funktionnéiert wéi an dësem Artikel uginn, gitt sécher datt Dir Zäit hutt fir d'Dovecot Dokumentatioun ze kontrolléieren.
Notéiert w.e.g. datt och wann e Postfix Mail Server opzestellen net eng einfach Aufgab ass, et ass eng belountend Erfahrung fir all Systemadministrator.
Wann Dir nach duerch d'Dokumenter fannt, datt Dir nach ëmmer mat Postfix an/oder Dovecot kämpft, schéckt eis w.e.g. eng Notiz mat de Kommentarformular hei ënnen a mir wäerten Iech frou hëllefen Iech ze hëllefen (vergiesst net op en Online-Späicherservice eropzelueden d'Postfix an d'Dovecot Konfiguratioun wéi zréckgewonne mat postconf an doveconf wéi an dësem Artikel beschriwwen).