A Postfix és a Dovecot konfigurálása virtuális tartományi felhasználókkal Linuxban – 2. rész
A sorozat előző cikkében elmagyaráztuk, hogyan kell biztonságosan beállítani és kezelni a levelezőkiszolgáló adatbázisát a phpMyAdmin segítségével.
Követelmény:
- Telepítse a Postfix Mail Servert és a Dovecotot a MariaDB-vel – 1. rész
Most itt az ideje beállítani azokat a belső programokat, amelyek valósággá teszik az e-mailek küldését és fogadását: a Postfix és a Dovecot (a kimenő és a bejövő e-mailek kezelésére).
A Postfix levelezőszerver konfigurálása
Mielőtt elkezdené a Postfix konfigurálását, érdemes és jó lenne egy pillantást vetni a kézikönyv oldalaira, különös hangsúlyt fektetve az „Információ új Postfix felhasználóknak” című szakaszára. . Ha így tesz, könnyebben követheti ezt az oktatóanyagot.
Néhány szóban tudnia kell, hogy a Postfix számára két konfigurációs fájl létezik:
- /etc/postfix/main.cf (A Postfix konfigurációs paraméterei további részletekért lásd a man 5 postconf részt).
- /etc/postfix/master.cf (A Postfix fődémon konfigurációja, további részletekért lásd a man 5 master részt).
Az /etc/postfix/main.cf
fájlban keresse meg (vagy adja hozzá, ha szükséges) a következő sorokat, és győződjön meg arról, hogy megegyeznek az alább jelzett értékekkel:
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
A következő három beállítás különösen fontos. A sárga színnel jelölt fájlokban konfiguráljuk a Postfix hozzáférését a Domains_tbl, Users_tbl és Alias_tbl táblákhoz:
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
Vegye figyelembe, hogy a fentiekben különböző fájlneveket választhat, feltéve, hogy ezeket létrehozta, és beilleszti a következő tartalmat. Minden esetben cserélje ki a YourPassword elemet arra a jelszóra, amelyet a dba felhasználóhoz választott az 1. részben, vagy használhatja a MariaDB-t is. a felhasználó és a jelszó gyökér hitelesítő adatait alább.
Győződjön meg arról is, hogy az e-mail szerver adatbázisának és az 1. részben létrehozott tábláknak pontosan ugyanazt a nevét használja.
A /etc/postfix/mariadb-vdomains.cf
fájlban:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Domains_tbl WHERE DomainName='%s'
A /etc/postfix/mariadb-vusers.cf
fájlban:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Users_tbl WHERE Email='%s'
Az /etc/postfix/mariadb-valias.cf
fájlban:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT Destination FROM Alias_tbl WHERE Source='%s'
Végül ne felejtse el módosítani az alábbi fájlok engedélyeit 640-re:
chmod 640 /etc/postfix/mariadb-vdomains.cf
chmod 640 /etc/postfix/mariadb-vusers.cf
chmod 640 /etc/postfix/mariadb-valias.cf
És a root felhasználó és a csoport postfix tulajdonjoga:
chown root:postfix /etc/postfix/mariadb-vdomains.cf
chown root:postfix /etc/postfix/mariadb-vusers.cf
chown root:postfix /etc/postfix/mariadb-valias.cf
Ezután a biztonságos kapcsolatok engedélyezéséhez meg kell győződnünk arról, hogy a következő beállítások nincsenek megjegyzés nélkül (vagy szükség esetén hozzáadva) a /etc/postfix/master.cf
fájlhoz:
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
Megjegyzés: A -o
opcióval kezdődő sorok behúzása kritikus; ellenkező esetben a postfix ellenőrzés hibát ad vissza:
A módosítások mentése előtt adja hozzá a következő sorokat a fájl aljához:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
Ezen a ponton feltétlenül ellenőrizni kell, hogy a Postfix hozzáfér-e az adatbázistáblákhoz, valamint az 1. részben létrehozott tartományokhoz, fiókokhoz és álnevekhez.
Ehhez a postmap parancsot használjuk, amely a Postfix által működés közben megkeresett táblázatokkal való kommunikáció tesztelésére szolgáló segédprogram, de mindenekelőtt újra kell indítanunk a postfixet:
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
Az alábbi képen láthatjuk, hogy az adatbázisban meglévő rekordok esetén 1-et ad vissza. Ellenkező esetben semmi sem jelenik meg vissza a képernyőre. Az alias ellenőrzése esetén vegye figyelembe, hogy a tényleges e-mail fiók, amelyhez az alias hozzá van rendelve, visszakerül:
Vegye figyelembe, hogy NEM hitelesítést végezünk az egyes e-mail fiókokhoz beállított hitelesítő adatok alapján, csak azt teszteljük, hogy a Postfix képes-e észlelni ezeket a rekordokat az adatbázisban.
Így ha a fentitől eltérő kimenetet kap, győződjön meg arról, hogy érvényes felhasználó/jelszó párost használ a mariadb-vdomains.cf, mariadb-vusers.cf és mariadb-valias.cf (vagy a fájlok elnevezése).
Dovecot konfigurálása
IMAP/POP3 szerverként a Dovecot lehetőséget biztosít a felhasználók számára a Mail User Agent (MUA vagy más néven kliens), mint például a Thunderbird vagy az Outlook, hogy néhány példát említsünk a leveleik eléréséhez.
Kezdésként hozzunk létre egy felhasználót és egy csoportot az e-mailek kezelésére (szükségünk lesz erre, mivel e-mail fiókjaink nincsenek rendszerfelhasználóhoz társítva). Használhat másik UID-t és GID-t (az 5000 kivételével, amint azt alább tesszük), mindaddig, amíg az nincs használatban, és nagy szám:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
A Dovecot beállításai több konfigurációs fájlra vannak felosztva (győződjön meg arról, hogy a következő sorok nincsenek megjegyzés nélkül, és/vagy módosítsa azokat, hogy megfeleljenek az alább jelzett beállításoknak).
A /etc/dovecot/dovecot.conf
fájlban:
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
!include conf.d/*.conf
!include_try local.conf
A /etc/dovecot/conf.d/10-auth.conf
fájlban (csak az SQL-en keresztüli hitelesítést engedélyezze, a többi hitelesítési módszert pedig hagyja megjegyzés nélkül):
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext
Az /etc/dovecot/conf.d/auth-sql.conf.ext
mappában (vegye figyelembe, hogy az e-maileket egy sajatdomain.com nevű könyvtárban tároljuk a / home/vmail, amelyet létre kell hoznia, ha nem létezik. Esetünkben az mkdir /home/vmail/linuxnewz.com segítségével kezeltük az adott domain e-mailjeit:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir
}
A felhasználói fiókokhoz tartozó egyéni postafiókok akkor jönnek létre, amikor először érkezik az ilyen fiókokhoz tartozó e-mail.
A /etc/dovecot/conf.d/10-mail.conf
fájlban:
mail_location = maildir:/home/vmail/%d/%n/Maildir
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
mbox_write_locks = fcntl
Az /etc/dovecot/conf.d/10-master.conf
fájlban:
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 {
}
}
A /etc/dovecot/conf.d/10-ssl.conf
fájlban (cserélje ki a tanúsítványt és a kulcsútvonalakat, ha CA által aláírt tanúsítványt kíván használni):
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
Az /etc/dovecot/dovecot-sql.conf.ext
fájlba adja meg az adatbázis adatait és az 1. részben létrehozott rendszergazdai felhasználó hitelesítő adatait.
Fontos: ha jelszava (#)
csillagot tartalmaz, mellékelnie kell a csatlakozási karakterláncot az alábbi példában látható módon:
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';
Ezenkívül beállíthatja, hogy a Dovecot naplózása elkülönüljön a Postfixtől a /etc/dovecot/conf.d/10-logging.conf
fájlban:
log_path = /var/log/dovecot.log
Végül győződjön meg arról, hogy a Dovecot napló elérhető a dovecot felhasználó számára:
chown vmail:dovecot /var/log/dovecot.log
chmod 660 /var/log/dovecot.log
A Postifix konfigurációjának ellenőrzése és javítása, valamint az SMTP, POP3 és IMAP engedélyezése a tűzfalban
Ha a Postfix és/vagy a Dovecot konfigurálása közben bármilyen problémába ütközik, ahelyett, hogy az összes konfigurációs fájlt elküldené segítségért, konfigurációs összefoglalót kaphat (csak megjegyzés nélküli sorok esetén):
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
Ezenkívül győződjön meg arról, hogy az e-mail postafiókokat csak vmail tudja olvasni:
chown –R vmail:vmail /home/vmail
A konfigurációs fájloknak a vmail és a dovecot felhasználók számára is olvashatónak kell lenniük:
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
Végül győződjön meg arról, hogy a tűzfalon keresztül engedélyezte az SMTP, POP3 és IMAP protokollt:
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
A Thunderbird konfigurálása e-mail kliensként a Postfixhez
Miután a tűzfalon keresztül biztonságosan hozzáférhettek az e-mail kommunikációhoz használt portokhoz, ideje beállítani az e-mail klienst. Az [email és a hozzá tartozó jelszó, valamint a mail.linuxnewz.com IMAP (vagy POP3) és SMTP szerverként készen állunk arra, hogy e-maileket küldjünk és fogadjunk és ilyen fiókból:
Nyugodtan figyelmen kívül hagyhatja a megjelenő figyelmeztető üzenetet, mert olyan tanúsítványt használ, amelyet nem írt alá megbízható harmadik fél CA:
Írjunk egy rövid teszt e-mailt, és kattintsunk a Küldés gombra:
Amikor a rendszer kéri, hogy fogadja el a kimenő szerver önaláírt tanúsítványát, erősítse meg azt korábban, mint korábban:
Végül lépjen a cél e-mailre, és ellenőrizze, hogy megkapta-e az éppen elküldött e-mailt. Ha igen, válaszoljon rá, és nézze meg, hogy visszakerül-e a forrás e-mail postafiókjába (ellenkező esetben nézze meg a Postfix naplót a /var/log/maillog címen vagy a Dovecot naplót a /var címen. /log/dovecot.log a hibaelhárítási információkért):
Most már rendelkezik egy működő Postfix és Dovecot e-mail szerverrel, és megkezdheti az e-mailek küldését és fogadását.
Összegzés
Ebben a cikkben elmagyaráztuk, hogyan konfigurálhatja a Postfix és a Dovecot e-mail forgalmat a Linux-kiszolgálón. Ha valami nem a cikkben leírtak szerint működik, szánjon időt a Postfix és a Dovecot dokumentációjának áttekintésére.
Kérjük, vegye figyelembe, hogy bár a Postfix levelezőszerver beállítása nem egyszerű feladat, minden rendszergazdának kifizetődő élmény.
Ha a dokumentumok áttekintése után még mindig problémái vannak a Postfix és/vagy a Dovecot szolgáltatással, nyugodtan írjon nekünk az alábbi megjegyzés űrlap segítségével, és mi örömmel segítünk Önnek (ne felejtse el feltölteni egy online tárhelyszolgáltatásba a Postfix és Dovecot konfigurációt, ahogyan a postconf és a doveconf segítségével letölthető, a cikkben leírtak szerint).