A változatosság gyönyörködtet? – avagy az egy igaz út
Tartalomjegyzék:
- Előfeltételek
- Telepítse a Postfix és a Dovecot szoftvert
- Postfix konfiguráció
- Konfigurálja a Dovecot-t
- Következtetés
Ez a levélkiszolgáló-sorozat beállítása és konfigurálása című második üzenetünk. Ebben a bejegyzésben megmutatjuk, hogyan kell telepíteni és konfigurálni a Postfix-et és a Dovecot-t, a levelezőrendszerünk két fő összetevőjét.
A Postfix egy nyílt forráskódú levéltovábbító ügynök (MTA), e-mailek küldésére és fogadására szolgáló szolgáltatás. A Dovecot IMAP / POP3 szerver, és a beállításunkban a helyi kézbesítést és a felhasználói hitelesítést is kezeli.
Ez az oktatóanyag az Ubuntu 16.04-hez készült, azonban ugyanazoknak a lépéseknek, kisebb módosításokkal, az Ubuntu bármely újabb verzióján kell működniük.
Előfeltételek
Mielőtt folytatná ezt az oktatóprogramot, győződjön meg arról, hogy be van jelentkezve mint sudo jogosultságokkal rendelkező felhasználó.
Telepítse a Postfix és a Dovecot szoftvert
Az Ubuntu alapértelmezett tárházában lévő Dovecot csomagok elavultak. Az
imap_sieve
modul előnyeinek kihasználása érdekében telepítjük a Dovecot-ot a Dovecot közösségi lerakatból.
Adja hozzá az adattár GPG kulcsát az apt források kulcstartójához a következő wget paranccsal:
wget -O- https://repo.dovecot.org/DOVECOT-REPO-GPG | sudo apt-key add -
Engedélyezze a Dovecot közösség lerakatát a következő paranccsal:
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
sudo apt update
sudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"
sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
Postfix konfiguráció
A Postfix-et virtuális postaládák és tartományok használatára állítjuk be.
Kezdje az
sql
konfigurációs fájlok létrehozásával, amelyek utasítják a postfix-ot a MySQL adatbázis elérésére, amelyet a sorozat első részében hoztak létre.
sudo mkdir -p /etc/postfix/sql
Nyissa meg a szövegszerkesztőt, és hozza létre a következő fájlokat:
/etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox, alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
Az SQL konfigurációs fájlok létrehozása után frissítse a fő postfix konfigurációs fájlt, hogy tartalmazzon információkat a MySQL adatbázisban tárolt virtuális tartományokról, felhasználókról és álnevekről.
sudo postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"
sudo postconf -e "virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"
sudo postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"
sudo postconf -e "virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"
sudo postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"
sudo postconf -e "virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"
A postconf parancs megjeleníti a konfigurációs paraméterek aktuális értékeit, megváltoztatja a konfigurációs paraméterek értékeit, vagy más konfigurációs információkat jelenít meg a Postfix levelezőrendszerről.
A helyi kézbesítési ügynök továbbítja a beérkező e-maileket a felhasználók postafiókjaiba. A következő parancs futtatásával állítsa be a Dovecot LMTP szolgáltatását alapértelmezett levélszállításra:
sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"
Állítsa be a TL paramétereket az előzőleg létrehozott, titkosított SSL tanúsítvány használatával:
sudo postconf -e 'smtp_tls_security_level = may'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_received_header = yes'
sudo postconf -e 'smtpd_tls_cert_file = /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem'
sudo postconf -e 'smtpd_tls_key_file = /etc/letsencrypt/live/mail.linuxize.com/privkey.pem'
Konfigurálja a hitelesített SMTP-beállításokat, és adja át a hitelesítést a Dovecot-nak:
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = private/auth'
sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
sudo postconf -e 'broken_sasl_auth_clients = yes'
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination'
A Postfix fő konfigurációs fájlját, a
master.cf
is szerkesztenünk kell, és engedélyeznünk kell a benyújtási portot (
587
) és az smtps portot (
465
).
Nyissa meg a fájlt a szövegszerkesztővel, és törölje / szerkessze a következő sorokat:
/etc/postfix/master.cf
submission inet n - y - - 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_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING
Indítsa újra a postfix szolgáltatást, hogy a változások hatályba lépjenek.
sudo systemctl restart postfix
Ezen a ponton sikeresen konfigurálta a Postfix szolgáltatást.
Konfigurálja a Dovecot-t
Ebben a szakaszban a Dovecot-ot úgy állítjuk be, hogy megfeleljen a beállításoknak. Ne felejtsd el szerkeszteni a sárga színű vonalakat.
Kezdje a
dovecot-sql.conf.ext
fájl konfigurálásával, amely utasítja a Dovecot-t az adatbázis elérésére és az e-mail fiókokkal kapcsolatos információk megtalálására.
driver = mysql connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD default_pass_scheme = MD5-CRYPT iterate_query = SELECT username AS user FROM mailbox user_query = SELECT CONCAT('/var/mail/vmail/', maildir) AS home, \ CONCAT('maildir:/var/mail/vmail/', maildir) AS mail, \ 5000 AS uid, 5000 AS gid, CONCAT('*:bytes=', quota) AS quota_rule \ FROM mailbox WHERE username = '%u' AND active = 1 password_query = SELECT username AS user, password FROM mailbox \ WHERE username = '%u' AND active='1'
Ne felejtse el használni a helyes MySQL hitelesítő adatokat (dbname, felhasználó és jelszó).
Ezután szerkessze a
conf.d/10-mail.conf
fájlt, és szerkessze a következő változókat:
… mail_location = maildir:/var/mail/vmail/%d/%n… mail_uid = vmail mail_gid = vmail… first_valid_uid = 5000 last_valid_uid = 5000… mail_privileged_group = vmail… mail_plugins = quota…
A hitelesítés működéséhez nyissa meg a
conf.d/10-auth.conf
, szerkessze a következő sorokat, és illessze be az
auth-sql.conf.ext
fájlt:
… disable_plaintext_auth = yes… auth_mechanisms = plain login… #!include auth-system.conf.ext !include auth-sql.conf.ext…
Nyissa meg a
conf.d/10-master.conf
fájlt, és módosítsa a következőképpen:
… service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }… }… service auth {… unix_listener auth-userdb { mode = 0600 user = vmail group = vmail }… unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }… }… service auth-worker { user = vmail }… service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } }…
Nyissa meg a
conf.d/10-ssl.conf
és engedélyezze az SSL / TLS alkalmazást.
… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.
If you have followed this series from the beginning, you should already have the
fullchain.pem
,
privkey.pem
,
dhparam.pem
files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.
Thanks to Nevyn for noticing the problem and providing a solution.
… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.
If you have followed this series from the beginning, you should already have the
fullchain.pem
,
privkey.pem
,
dhparam.pem
files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.
Thanks to Nevyn for noticing the problem and providing a solution.
Nyissa meg a
conf.d/20-imap.conf
fájlt és aktiválja az
imap_quota
bővítményt:
… protocol imap {… mail_plugins = $mail_plugins imap_quota… }…
Nyissa meg a
conf.d/20-lmtp.conf
fájlt és szerkessze az alábbiak szerint:
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins }…
Adja meg az alapértelmezett postafiókokat a
conf.d/20-lmtp.conf
fájlban:
… mailbox Drafts { special_use = \Drafts } mailbox Spam { special_use = \Junk auto = subscribe } mailbox Junk { special_use = \Junk }…
Kétféle típusú kvótaméret létezik: az egyiket a teljes domainre állítják be, a másikat pedig a felhasználói postaládakonként. A sorozat előző részében már engedélyeztük a kvóta támogatását a PostfixAdmin alkalmazásban, ami azt jelenti, hogy a kvótainformációkat a PostfixAdmin adatbázisban tárolják.
Most konfigurálnunk kell a Dovecot-t, hogy csatlakozzon az adatbázishoz, kezelje a kvótakorlátokat, és futtasson egy szkriptet, amely e-mailt küld a felhasználónak, amikor a felhasználói kvóta meghaladja a meghatározott korlátot. Ehhez nyissa meg a
conf.d/90-quota.conf
fájlt, és módosítsa a következőképpen:
plugin { quota = dict:User quota::proxy::sqlquota quota_rule = *:storage=5GB quota_rule2 = Trash:storage=+100M quota_grace = 10%% quota_exceeded_message = Quota exceeded, please contact your system administrator. quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail unix_listener quota-warning { group = vmail mode = 0660 user = vmail } } dict { sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }
Azt is el kell mondanunk a dovecot-nak, hogyan lehet elérni a kvóta SQL szótárat. Nyissa meg a
dovecot-dict-sql.conf.ext
fájlt, és szerkessze a következő sorokat:
… connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD… map { pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }… # map { # pattern = shared/expire/$user/$mailbox # table = expires # value_field = expire_stamp # # fields { # username = $user # mailbox = $mailbox # } # }…
Ügyeljen arra, hogy a helyes MySQL hitelesítő adatokat használja (dbname, felhasználó és jelszó).
Készítse el a következő parancsfájlt, amely e-mailt küld a felhasználónak, ha kvóta meghaladja a meghatározott korlátot:
/usr/local/bin/quota-warning.sh
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=dict:User quota::noenforcing:proxy::sqlquota" From: [email protected] Subject: Quota warning Your mailbox is now $PERCENT% full. EOF
A szkriptet végrehajthatóvá
chmod
a következő
chmod
parancs futtatásával:
sudo chmod +x /usr/local/bin/quota-warning.sh
Végül indítsa újra a dovecot szolgáltatást, hogy a változások hatályba lépjenek.
sudo systemctl restart dovecot
Következtetés
Mostanra rendelkeznie kell egy teljesen működőképes levelezőrendszerrel. A sorozat következő részében megmutatjuk, hogyan kell telepíteni és integrálni az Rspamd-ot.
mail szerver postfix dovecotEz a bejegyzés a levelezőkiszolgáló-sorozat beállítása és konfigurálása része.
A sorozat többi hozzászólása:
• E-mail szerver beállítása a PostfixAdmin segítségével • A Postfix és a Dovecot telepítése és konfigurálása • Az Rspamd telepítése és integrálása • A Roundcube Webmail telepítése és konfigurálásaAutomatikusan konfigurálja e-mail fiókját az e-mail kliensben az Outlook AutoConfig
Az AutoConfig Utility segítségével automatikusan létrehozhatja e-mail fiókját a Windows Mail és a Windows Live Mail
Telepítse és integrálja az rspamd fájlt
Ebben az oktatóprogramban áttekintjük az Rspamd spamszűrő rendszer telepítését és konfigurálását, integrálását az e-mail szerverünkbe, és létrehozunk DKIM és DMARC DNS rekordokat.
Telepítse és konfigurálja a roundcube webmail-t
A Roundcube egy web alapú IMAP e-mail kliens, nagyon intuitív és modern felhasználói felülettel, PHP-ben írva. Ez az oktatóanyag ismerteti a Roundcube Webmail telepítéséhez és konfigurálásához szükséges lépéseket.







