GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit poštovní server Postfix na Ubuntu 16.04 (Dovecot - MySQL)

Obecně se všechny poštovní servery skládají ze tří hlavních komponent:MTA, MDA a MUA. Každá komponenta hraje specifickou roli v procesu přesouvání a správy e-mailových zpráv a je důležitá pro zajištění správného doručování e-mailů. Nastavení poštovního serveru je tedy obtížný proces zahrnující správnou konfiguraci těchto součástí. Nejlepší způsob je nainstalovat a nakonfigurovat každou jednotlivou komponentu jednu po druhé, zajistit, aby každá fungovala a postupně budovat váš poštovní server.

V tomto článku poskytuji pokyny, jak můžeme nakonfigurovat poštovní server na serveru Ubuntu 16.04 s Postix (MTA) a Dovecot (MDA) pomocí externí databáze (MySQL) pro správu virtuálních uživatelů. Nejprve začněme s předpoklady pro stavbu našeho poštovního serveru.

Předpoklady

  • Nainstalovaný server MySQL
  • Plně kvalifikovaný název hostitele
  • Překládání domény na váš server

Po splnění našich předpokladů můžeme začít budovat náš poštovní server jeden po druhém.

Instalace balíčků

Nejprve musíme aktualizovat naše balíčky úložiště APT a začít s instalací požadovaných balíčků postfix a dovecot.

root@ubuntu:~# apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Během instalace Postfixu se objeví nastavovací okna pro počáteční konfiguraci. Musíme si vybrat "internetovou stránku" a nastavit FQDN jako naše systémové poštovní jméno během fáze instalace. Toto pokračuje instalací požadovaných balíčků, jak je uvedeno níže.

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Setting up postfix-mysql (3.1.0-3) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for dovecot-core (1:2.2.22-1ubuntu2) ..

Vytvořte databázi pro správu uživatelů pošty

Dalším krokem je vytvoření databáze pro správu e-mailových uživatelů a domén na našem poštovním serveru. Jak jsem řekl dříve, spravujeme uživatele e-mailu pomocí této databáze MySQL. Můžeme nainstalovat MySQL, pokud není nainstalována, spuštěním tohoto příkazu apt-get install mysql-server-5.7 .

Vytvoříme databázi s názvem "lnmailserver" se třemi tabulkami, jak je uvedeno níže:

  • Virtuální domény:Pro správu domén
  • Virtuální uživatelé:Pro správu uživatelů e-mailu
  • Virtuální alias:Pro nastavení aliasů

Pojďme vytvořit naše databáze se všemi těmito tabulkami.

  • Vytvoření databáze s názvem lnmailserver.
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec)
  • Vytvoření uživatele DB lnmailuser a udělením přístupu k této databázi pomocí hesla.
mysql> GRANT SELECT ON lnmailserver.* TO 'lnmailuser'@'127.0.0.1' IDENTIFIED BY 'lnmail123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
  • Přepnutí na databázi lnmailserver a vytvoření našich tří tabulek, jmenovitě virtual_domains, virtual_users a virtual_aliases se specifikací a formátem tabulky.
mysql> USE lnmailserver;
Database changed
mysql> CREATE TABLE `virtual_domains` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE `virtual_users` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `password` VARCHAR(106) NOT NULL,
-> `email` VARCHAR(120) NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `email` (`email`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE `virtual_aliases` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `source` varchar(100) NOT NULL,
-> `destination` varchar(100) NOT NULL,
-> PRIMARY KEY (`id`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
  • Přidání domén, uživatelů a aliasů do každé z těchto tabulek podle našich požadavků.
mysql> INSERT INTO `lnmailserver`.`virtual_domains`
-> (`id` ,`name`)
-> VALUES
-> ('1', 'linoxidemail.com'),
-> ('2', 'ubuntu.linoxidemail.com');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO `lnmailserver`.`virtual_users`
-> (`id`, `domain_id`, `password` , `email`)
-> VALUES
-> ('1', '1', ENCRYPT('blogger123', CONCAT('$6
mysql> INSERT INTO `lnmailserver`.`virtual_aliases`
-> (`id`, `domain_id`, `source`, `destination`)
-> VALUES
-> ('1', '1', '[email protected]', '[email protected]');
Query OK, 1 row affected (0.00 sec)
  • Ověření obsahu každé tabulky
mysql> select * from virtual_domains;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | linoxidemail.com |
| 2 | ubuntu.linoxidemail.com |
+----+-------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_users;
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| id | domain_id | password | email |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| 1 | 1 | $6$da4aa6fc680940d4$jt1plE8Lvo4hcjdP3N0pNxSC/o1ZsN4mpJ4WCcwk2mSqyY7/2l4ayyI7GcipeTf0uwzk5HnWbjddvv/jGomh41 | [email protected] |
| 2 | 1 | $6$36d2dc2e68ab56f6$L2b/D44yuT7qXsw22kTFPfxTbEbUuRDhr0RDoBnRc/q/LGcRF3NsLQCyapXdYKyA2zkSE9MJIXL7nHAbbCmlO. | [email protected] |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_aliases;
+----+-----------+-----------------------+---------------------------+
| id | domain_id | source | destination |
+----+-----------+-----------------------+---------------------------+
| 1 | 1 | [email protected] | [email protected] |
+----+-----------+-----------------------+---------------------------+
1 row in set (0.00 sec)

mysql > exit

Konfigurace Postfixu

Naším dalším krokem je upravit konfiguraci Postfixu podle našeho konfiguračního plánu, jak potřebujeme přijímat připojení SMTP. Před provedením jakýchkoli změn v konfiguraci se vždy doporučuje vytvořit zálohu souboru.

root@ubuntu:~# cp -rp /etc/postfix/main.cf /etc/postfix/main.cf-bkp

Nyní můžeme soubor otevřít a provést následující změny.

  • Upravte následující položky, abyste uživatelům umožnili podporu TLS pro připojení, zadejte certifikát SSL, který se používá k zabezpečení připojení.
This section is modified from:

#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

To :

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes

Používám bezplatné certifikáty Dovecot SSL, které jsou uvedeny zde. Pomocí níže uvedeného příkazu můžeme vygenerovat certifikáty SSL s vlastním podpisem dovecot. Pokud máte pro název hostitele platný certifikát SSL, můžete je místo toho zadat.

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key"
  • Potřebujeme přidat tyto parametry TLS do konfigurace Postfixu, díky čemuž bude Postfix používat k ověřování a inicializaci připojení Dovecot.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
  • Musíme okomentovat výchozí položky „mydestination“ a aktualizovat je tak, aby používali pouze „localhost“.
mydestination = localhost
  • Potvrďte část myhostname, zda je správně nastavena jako náš FQDN název hostitele.
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com
  • Úprava tohoto parametru umožňuje Postfixu používat LMTP společnosti Dovecot místo vlastního LDA k ukládání e-mailů do místních poštovních schránek, čímž umožňuje  doručování místní pošty pro všechny domény uvedené v databázi MySQL.
    virtual_transport = lmtp:unix:private/dovecot-lmtp
  • V neposlední řadě musíme Postfixu říci, že ke správě domén, uživatelů a aliasů používáme externí databázi. Potřebujeme přidat konfigurační cestu, abychom získali tyto podrobnosti z databázových tabulek.
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Nyní musíme vytvořit tyto výše uvedené soubory jeden po druhém. Podrobnosti o mém souboru naleznete níže:

/etc/postfix/mysql-virtual-mailbox-domains.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-domains.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-mailbox-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-alias-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-alias-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

Tyto soubory popisují, jak se Postfix připojuje k externí databázi. Po provedení těchto změn potřebujeme restartovat Postfix.

root@ubuntu:~# service postfix restart

Potřebujeme spustit tyto následující příkazy, abychom potvrdili připojení a zkontrolovali, zda je Postfix schopen načíst požadované informace z databáze.

  • Chcete-li zkontrolovat, zda Postfix najde vaši doménu v databázi, můžeme spustit toto. Pokud je pokus úspěšný, mělo by to vrátit 1.
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1
  • Chcete-li zkontrolovat, zda Postfix najde vaši požadovanou e-mailovou adresu v databázi, můžeme spustit toto. To by také mělo vrátit '1', pokud bude úspěšné.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1
  • Chcete-li zkontrolovat, zda Posfix najde váš e-mailový forwarder v databázi, můžeme to spustit. Pokud je pokus úspěšný, měla by se vrátit vaše sada pro předávání e-mailů.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected]

Poznámka:Ke svým e-mailovým klientům se můžete bezpečně připojit pomocí Postfixu na portu 587, port můžete otevřít zrušením komentáře v následující části hlavní konfigurace Postfixu:/etc/postfix/master.cf.

Po provedení jakýchkoli změn v konfiguraci musíte Postfix restartovat. Pomocí příkazu telnet můžete potvrdit, zda je port otevřený.

Konfigurace Dovecot

Naším dalším krokem je konfigurace našeho MDA tak, aby umožňoval protokolům POP3 nebo IMAP a dalším konfiguračním nastavením připojení k externí databázi a Postfixu. Upravujeme především následující soubory.

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Před provedením jakýchkoli změn konfigurace se vždy doporučuje provést zálohu těchto souborů. Každý soubor můžeme upravit jeden po druhém.

Úprava hlavního konfiguračního souboru dovecot:/etc/dovecot/dovecot.conf

  • Následující nastavení je ve výchozím nastavení bez komentáře. Ale musíme zajistit, aby to bylo bez komentáře.
!include conf.d/*.conf
  • V této směrnici můžeme povolit všechny požadované protokoly. Pokud potřebujete povolit POP3, můžeme k tomuto řádku připojit pop3 a také se ujistit, že jste nainstalovali požadované balíčky dovecot "dovecot-pop3d", abyste to povolili.
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Úprava konfiguračního souboru Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Potřebujeme v konfiguraci najít následující parametr „mail_location“ a aktualizovat cestu k našemu úložišti pošty. Moje poštovní složky jsou umístěny ve složce "/var/mail/vhosts/". Proto jsem upravil cestu k souboru, jak je uvedeno níže:
mail_location = maildir:/var/mail/vhosts/%d/%n
  • Musíme nastavit „mail_privileged_group " na "mail ".
mail_privileged_group = mail

Jakmile to uděláme, musíme nastavit správné vlastnictví a oprávnění pro naše poštovní složky. Vytvořte poštovní složky pro každou doménu, kterou jsme zaregistrovali v tabulce MySQL v této složce "/var/mail/vhosts" a nastavte správná vlastnictví/oprávnění.

root@ubuntu:~# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Apr 21 16:56 /var/mail
root@ubuntu:~# mkdir -p /var/mail/vhosts/linoxidemail.com

Created a separate user/group named "vmail" with an id 5000 and changed the mail folders ownerships to that.
root@ubuntu:~# groupadd -g 5000 vmail
root@ubuntu:~# useradd -g vmail -u 5000 vmail -d /var/mail
root@ubuntu:~# chown -R vmail:vmail /var/mail

Úprava ověřovacího souboru Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Zakažte ověřování pomocí prostého textu, abyste zajistili zabezpečení úpravou níže uvedeného parametru na „ano“.
disable_plaintext_auth = yes
  • Upravte parametr "auth_mechanisms" následovně:
auth_mechanisms = plain login
  • Potřebujeme zakomentovat zmíněný řádek a povolit autentizaci MySQL zrušením komentáře na řádku auth-sql.conf.ext, jak je uvedeno níže:
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Úprava ověřovacího souboru SQL:/etc/dovecot/conf.d/auth-sql.conf.ext

Ujistěte se, že váš ověřovací soubor MySQL vypadá takto.

Úprava konfiguračního souboru Dovecot + MySQL:/etc/dovecot/dovecot-sql.conf.ext

  • Musíme zrušit komentář u parametru „driver“ a nastavit jej na MySQL, jak je uvedeno níže:
driver = mysql
  • Upravte a nastavte parametry připojení podle názvu naší databáze a uživatele.
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123
  • Upravte default_pass_scheme na SHA-512 a řádek password_query, jak je uvedeno níže:
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Poznámka:Nastavte oprávnění pro adresář /etc/dovecot, aby jej uživatel vmail mohl používat.

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

Úprava konfiguračního souboru Dovecot Master:/etc/dovecot/conf.d/10-master.conf

V tomto konfiguračním souboru upravujeme čtyři sekce. Sekce IMAP, sekce místního přenosu pošty, sekce autentizace a sekce posledního ověřovacího pracovního procesu. Pro zobrazení úprav si prosím prohlédněte snímky každé sekce níže:

Úprava konfigurace SSL:/etc/dovecot/conf.d/10-ssl.conf

Upravujeme tuto sekci, abychom povolili SSL pro příchozí/odchozí připojení. Tato konfigurační nastavení jsou volitelná. Ale pro větší bezpečnost bych je doporučil.

  • Změňte parametr SSL na povinný
ssl = required
  • Uveďte umístění certifikátu SSL a souboru klíče pro naši konfiguraci. Další podrobnosti si můžete prohlédnout na snímku obrazovky.

Po všech těchto úpravách musíte Dovecot restartovat.

To je vše :) Dokončili jsme nastavení našeho poštovního serveru. Hurá! Ke svému e-mailovému účtu můžete přistupovat pomocí svého uživatelského jména a hesla z libovolného preferovaného e-mailového klienta. Mohl jsem úspěšně získat přístup ke svému e-mailovému účtu pomocí následujících nastavení:

Doufám, že se vám čtení tohoto článku líbilo. Doporučil bych vaše cenné návrhy a připomínky k tomuto.
Hezký den!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'), -> ('2', '1', ENCRYPT('blogger321', CONCAT('$6
 
  • Ověření obsahu každé tabulky
 
 
 

Konfigurace Postfixu

Naším dalším krokem je upravit konfiguraci Postfixu podle našeho konfiguračního plánu, jak potřebujeme přijímat připojení SMTP. Před provedením jakýchkoli změn v konfiguraci se vždy doporučuje vytvořit zálohu souboru.

 

Nyní můžeme soubor otevřít a provést následující změny.

  • Upravte následující položky, abyste uživatelům umožnili podporu TLS pro připojení, zadejte certifikát SSL, který se používá k zabezpečení připojení.
 

Používám bezplatné certifikáty Dovecot SSL, které jsou uvedeny zde. Pomocí níže uvedeného příkazu můžeme vygenerovat certifikáty SSL s vlastním podpisem dovecot. Pokud máte pro název hostitele platný certifikát SSL, můžete je místo toho zadat.

 
  • Potřebujeme přidat tyto parametry TLS do konfigurace Postfixu, díky čemuž bude Postfix používat k ověřování a inicializaci připojení Dovecot.
 
  • Musíme okomentovat výchozí položky „mydestination“ a aktualizovat je tak, aby používali pouze „localhost“.
 
  • Potvrďte část myhostname, zda je správně nastavena jako náš FQDN název hostitele.
 
  • Úprava tohoto parametru umožňuje Postfixu používat LMTP společnosti Dovecot místo vlastního LDA k ukládání e-mailů do místních poštovních schránek, čímž umožňuje místní doručování pošty pro všechny domény uvedené v databázi MySQL.
     
  • V neposlední řadě musíme Postfixu říci, že ke správě domén, uživatelů a aliasů používáme externí databázi. Potřebujeme přidat konfigurační cestu, abychom získali tyto podrobnosti z databázových tabulek.
 

Nyní musíme vytvořit tyto výše uvedené soubory jeden po druhém. Podrobnosti o mém souboru naleznete níže:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Tyto soubory popisují, jak se Postfix připojuje k externí databázi. Po provedení těchto změn potřebujeme restartovat Postfix.

 

Potřebujeme spustit tyto následující příkazy, abychom potvrdili připojení a zkontrolovali, zda je Postfix schopen načíst požadované informace z databáze.

  • Chcete-li zkontrolovat, zda Postfix najde vaši doménu v databázi, můžeme spustit toto. Pokud je pokus úspěšný, mělo by to vrátit 1.
 
  • Chcete-li zkontrolovat, zda Postfix najde vaši požadovanou e-mailovou adresu v databázi, můžeme spustit toto. To by také mělo vrátit '1', pokud bude úspěšné.
 
  • Chcete-li zkontrolovat, zda Posfix najde váš e-mailový forwarder v databázi, můžeme to spustit. Pokud je pokus úspěšný, měla by se vrátit vaše sada pro předávání e-mailů.
 

Poznámka:Ke svým e-mailovým klientům se můžete bezpečně připojit pomocí Postfixu na portu 587, port můžete otevřít zrušením komentáře v následující části hlavní konfigurace Postfixu:/etc/postfix/master.cf.

Po provedení jakýchkoli změn v konfiguraci musíte Postfix restartovat. Pomocí příkazu telnet můžete potvrdit, zda je port otevřený.

Konfigurace Dovecot

Naším dalším krokem je konfigurace našeho MDA tak, aby umožňoval protokolům POP3 nebo IMAP a dalším konfiguračním nastavením připojení k externí databázi a Postfixu. Upravujeme především následující soubory.

 

Před provedením jakýchkoli změn konfigurace se vždy doporučuje provést zálohu těchto souborů. Každý soubor můžeme upravit jeden po druhém.

Úprava hlavního konfiguračního souboru dovecot:/etc/dovecot/dovecot.conf

  • Následující nastavení je ve výchozím nastavení bez komentáře. Ale musíme zajistit, aby to bylo bez komentáře.
 
  • V této směrnici můžeme povolit všechny požadované protokoly. Pokud potřebujete povolit POP3, můžeme k tomuto řádku připojit pop3 a také se ujistit, že jste nainstalovali požadované balíčky dovecot "dovecot-pop3d", abyste to povolili.
 

Úprava konfiguračního souboru Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Potřebujeme v konfiguraci najít následující parametr „mail_location“ a aktualizovat cestu k našemu úložišti pošty. Moje poštovní složky jsou umístěny ve složce "/var/mail/vhosts/". Proto jsem upravil cestu k souboru, jak je uvedeno níže:
 
  • Musíme nastavit „mail_privileged_group " na "mail ".
 

Jakmile to uděláme, musíme nastavit správné vlastnictví a oprávnění pro naše poštovní složky. Vytvořte poštovní složky pro každou doménu, kterou jsme zaregistrovali v tabulce MySQL v této složce "/var/mail/vhosts" a nastavte správná vlastnictví/oprávnění.

 

Úprava ověřovacího souboru Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Zakažte ověřování pomocí prostého textu, abyste zajistili zabezpečení úpravou níže uvedeného parametru na „ano“.
 
  • Upravte parametr "auth_mechanisms" následovně:
 
  • Potřebujeme zakomentovat zmíněný řádek a povolit autentizaci MySQL zrušením komentáře na řádku auth-sql.conf.ext, jak je uvedeno níže:
 

Úprava ověřovacího souboru SQL:/etc/dovecot/conf.d/auth-sql.conf.ext

Ujistěte se, že váš ověřovací soubor MySQL vypadá takto.

Úprava konfiguračního souboru Dovecot + MySQL:/etc/dovecot/dovecot-sql.conf.ext

  • Musíme zrušit komentář u parametru „driver“ a nastavit jej na MySQL, jak je uvedeno níže:
 
  • Upravte a nastavte parametry připojení podle názvu naší databáze a uživatele.
 
  • Upravte default_pass_scheme na SHA-512 a řádek password_query, jak je uvedeno níže:
 

Poznámka:Nastavte oprávnění pro adresář /etc/dovecot, aby jej uživatel vmail mohl používat.

 

Úprava konfiguračního souboru Dovecot Master:/etc/dovecot/conf.d/10-master.conf

V tomto konfiguračním souboru upravujeme čtyři sekce. Sekce IMAP, sekce místního přenosu pošty, sekce autentizace a sekce posledního ověřovacího pracovního procesu. Pro zobrazení úprav si prosím prohlédněte snímky každé sekce níže:

Úprava konfigurace SSL:/etc/dovecot/conf.d/10-ssl.conf

Upravujeme tuto sekci, abychom povolili SSL pro příchozí/odchozí připojení. Tato konfigurační nastavení jsou volitelná. Ale pro větší bezpečnost bych je doporučil.

  • Změňte parametr SSL na povinný
 
  • Uveďte umístění certifikátu SSL a souboru klíče pro naši konfiguraci. Další podrobnosti si můžete prohlédnout na snímku obrazovky.

Po všech těchto úpravách musíte Dovecot restartovat.

To je vše :) Dokončili jsme nastavení našeho poštovního serveru. Hurá! Ke svému e-mailovému účtu můžete přistupovat pomocí svého uživatelského jména a hesla z libovolného preferovaného e-mailového klienta. Mohl jsem úspěšně získat přístup ke svému e-mailovému účtu pomocí následujících nastavení:

Doufám, že se vám čtení tohoto článku líbilo. Doporučil bych vaše cenné návrhy a připomínky k tomuto.
Hezký den!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2
 
  • Ověření obsahu každé tabulky
 
 
 

Konfigurace Postfixu

Naším dalším krokem je upravit konfiguraci Postfixu podle našeho konfiguračního plánu, jak potřebujeme přijímat připojení SMTP. Před provedením jakýchkoli změn v konfiguraci se vždy doporučuje vytvořit zálohu souboru.

 

Nyní můžeme soubor otevřít a provést následující změny.

  • Upravte následující položky, abyste uživatelům umožnili podporu TLS pro připojení, zadejte certifikát SSL, který se používá k zabezpečení připojení.
 

Používám bezplatné certifikáty Dovecot SSL, které jsou uvedeny zde. Pomocí níže uvedeného příkazu můžeme vygenerovat certifikáty SSL s vlastním podpisem dovecot. Pokud máte pro název hostitele platný certifikát SSL, můžete je místo toho zadat.

 
  • Potřebujeme přidat tyto parametry TLS do konfigurace Postfixu, díky čemuž bude Postfix používat k ověřování a inicializaci připojení Dovecot.
 
  • Musíme okomentovat výchozí položky „mydestination“ a aktualizovat je tak, aby používali pouze „localhost“.
 
  • Potvrďte část myhostname, zda je správně nastavena jako náš FQDN název hostitele.
 
  • Úprava tohoto parametru umožňuje Postfixu používat LMTP společnosti Dovecot místo vlastního LDA k ukládání e-mailů do místních poštovních schránek, čímž umožňuje místní doručování pošty pro všechny domény uvedené v databázi MySQL.
     
  • V neposlední řadě musíme Postfixu říci, že ke správě domén, uživatelů a aliasů používáme externí databázi. Potřebujeme přidat konfigurační cestu, abychom získali tyto podrobnosti z databázových tabulek.
 

Nyní musíme vytvořit tyto výše uvedené soubory jeden po druhém. Podrobnosti o mém souboru naleznete níže:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Tyto soubory popisují, jak se Postfix připojuje k externí databázi. Po provedení těchto změn potřebujeme restartovat Postfix.

 

Potřebujeme spustit tyto následující příkazy, abychom potvrdili připojení a zkontrolovali, zda je Postfix schopen načíst požadované informace z databáze.

  • Chcete-li zkontrolovat, zda Postfix najde vaši doménu v databázi, můžeme spustit toto. Pokud je pokus úspěšný, mělo by to vrátit 1.
 
  • Chcete-li zkontrolovat, zda Postfix najde vaši požadovanou e-mailovou adresu v databázi, můžeme spustit toto. To by také mělo vrátit '1', pokud bude úspěšné.
 
  • Chcete-li zkontrolovat, zda Posfix najde váš e-mailový forwarder v databázi, můžeme to spustit. Pokud je pokus úspěšný, měla by se vrátit vaše sada pro předávání e-mailů.
 

Poznámka:Ke svým e-mailovým klientům se můžete bezpečně připojit pomocí Postfixu na portu 587, port můžete otevřít zrušením komentáře v následující části hlavní konfigurace Postfixu:/etc/postfix/master.cf.

Po provedení jakýchkoli změn v konfiguraci musíte Postfix restartovat. Pomocí příkazu telnet můžete potvrdit, zda je port otevřený.

Konfigurace Dovecot

Naším dalším krokem je konfigurace našeho MDA tak, aby umožňoval protokolům POP3 nebo IMAP a dalším konfiguračním nastavením připojení k externí databázi a Postfixu. Upravujeme především následující soubory.

 

Před provedením jakýchkoli změn konfigurace se vždy doporučuje provést zálohu těchto souborů. Každý soubor můžeme upravit jeden po druhém.

Úprava hlavního konfiguračního souboru dovecot:/etc/dovecot/dovecot.conf

  • Následující nastavení je ve výchozím nastavení bez komentáře. Ale musíme zajistit, aby to bylo bez komentáře.
 
  • V této směrnici můžeme povolit všechny požadované protokoly. Pokud potřebujete povolit POP3, můžeme k tomuto řádku připojit pop3 a také se ujistit, že jste nainstalovali požadované balíčky dovecot "dovecot-pop3d", abyste to povolili.
 

Úprava konfiguračního souboru Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Potřebujeme v konfiguraci najít následující parametr „mail_location“ a aktualizovat cestu k našemu úložišti pošty. Moje poštovní složky jsou umístěny ve složce "/var/mail/vhosts/". Proto jsem upravil cestu k souboru, jak je uvedeno níže:
 
  • Musíme nastavit „mail_privileged_group " na "mail ".
 

Jakmile to uděláme, musíme nastavit správné vlastnictví a oprávnění pro naše poštovní složky. Create the mail folders for each domains which we've registered in the MySQL table inside this folder "/var/mail/vhosts" and set proper ownerships/permissions.

 

Modifying the Dovecot authentication file :/etc/dovecot/conf.d/10-auth.conf

  • Disable plain text authentication to ensure security by modifying the below parameter to "yes".
 
  • Modify the "auth_mechanisms" parameter as below:
 
  • We need to comment the mentioned line and enable the MySQL authentication by uncommenting the auth-sql.conf.ext line as below:
 

Modifying the authentication SQL file :/etc/dovecot/conf.d/auth-sql.conf.ext

Make sure your MySQL authentication file looks like this.

Modifying the Dovecot + MySQL configuration file :/etc/dovecot/dovecot-sql.conf.ext

  • We need to uncomment the "driver" parameter and set to MySQL as below:
 
  • Modify and set the connection parameters as per our database name and user.
 
  • Modify the default_pass_scheme to SHA-512 and password_query line as below:
 

Please note :Set permissions on the /etc/dovecot directory so the vmail user can use it.

 

Modifying Dovecot Master configuration file :/etc/dovecot/conf.d/10-master.conf

We are modifying four sections in this configuration file. IMAP section, local mail transfer section, authentication section and last authenticating worker process section. Please see the screenshots of each section below to view the modifications:

Modifying the SSL configuration :/etc/dovecot/conf.d/10-ssl.conf

We're modifying this section to enable SSL for the incoming/outgoing connections. This configuration settings are optional. But I'd recommend these for more security.

  • Change the SSL parameter to required
 
  • Specify the SSL cert and key file location for our configuration. You can view the screenshot for more details.

You need to restart Dovecot after all these modification.

That's all :) We've completed with our Mail server setup. Hurá! You can access your email account using your username and password on any of your preferred email client. I could successfully access my email account using these settings below:

Doufám, že se vám čtení tohoto článku líbilo. Doporučil bych vaše cenné návrhy a připomínky k tomuto.
Have a Nice day!


Ubuntu
  1. Jak nainstalovat DKIM na server Ubuntu

  2. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  3. Jak nainstalovat MySQL Server na Ubuntu 16.04

  1. Jak nastavit server OpenVPN na Ubuntu 20.04

  2. Jak nastavit Zimbra Mail Server na Ubuntu 16

  3. Jak nainstalovat MySQL Server na Ubuntu 17.04

  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Jak nainstalovat MySQL 8.0 na Ubuntu 18.04

  3. Jak nastavit OpenVPN na serveru Ubuntu