Weboldal keresés

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:

  1. 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:

  1. /etc/postfix/main.cf (A Postfix konfigurációs paraméterei további részletekért lásd a man 5 postconf részt).
  2. /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).