GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak nainstalovat poštovní server s PostfixAdmin na Ubuntu 20.04

V tomto tutoriálu se budeme zabývat procesem nastavení poštovního serveru pomocí Postfix, Dovecot, Postfixadmin a MariaDB na Ubuntu 20.04 VPS. Ale nejprve, co je PostfixAdmin?

PostfixAdmin je webová aplikace s otevřeným zdrojovým kódem napsaná v PHP, která se používá k vytváření virtuálních domén a e-mailových účtů pro poštovní server Postfix. Pomocí PostfixAdmin můžeme spravovat poštovní schránky a aliasy, nastavovat kvóty, konfigurovat zprávy o dovolené/mimo kancelář a další. Webové rozhraní vám navíc poskytuje uživatelskou přívětivost okna prohlížeče s uživatelským rozhraním.

PostfixAdmin nám umožňuje používat virtuální e-mailové adresy a virtuální poštovní schránky, takže pro každou e-mailovou adresu nemusíme vytvářet nový uživatelský účet systému. Vezmeme-li v úvahu všechny tyto detaily, PostfixAdmin je všestranný nástroj a lze jej použít pro téměř všechny vaše poštovní potřeby. Tento tutoriál jde poměrně do hloubky a může chvíli trvat, než vše správně nakonfigurujete. Začněme s kroky instalace.

Požadavky na hardware/software

  • Server Ubuntu 20.04 nebo VPS s povoleným přístupem root nebo uživatel s právy sudo. Poskytujeme všem našim uživatelům úplný root přístup na jejich VPS.
  • Je třeba nainstalovat Postfix Mail Transfer Agent (MTA) a Dovecot IMAP/POP3 Mail Delivery Agent.
  • Je třeba nainstalovat databázový server (MySQL/MariaDB, PostgreSQL nebo SQLite).
  • Webový server Apache musí být nainstalován s mod_rewrite modul povolen.
  • PHP 7.1 nebo vyšší musí být nainstalován s imap , mbstring a mysql všechna rozšíření povolena.

Krok 1. Začínáme

Pro začátek se budeme muset přihlásit na náš server pomocí SSH. Můžete to udělat zadáním tohoto příkazu:

ssh root@IP_Address -p Port_Number

Pokud nepoužíváte uživatele root, nezapomeňte nahradit „root“ svým uživatelským jménem. Změňte hodnoty červeně podle IP adresy vašeho serveru a čísla portu SSH (výchozí číslo je 22, takže pokud váš server nepoužívá vlastní číslo portu, zkuste to nejprve).

Jakmile se přihlásíte, měli byste aktualizovat všechny své balíčky na nejnovější dostupné verze.

apt-get update -y
apt-get upgrade -y

Jakmile budou všechny balíčky aktuální, restartujte server, aby se změny konfigurace projevily, a ujistěte se, že veškerý software běží na nejnovějších verzích.

Krok 2. Vytvořte systémový uživatelský účet

PostfixAdmin má schopnost vytvářet více virtuálních domén, uživatelů a aliasů. To nám ušetří starosti s vytvářením nových uživatelů systému, kdykoli potřebujeme přidat nový e-mailový účet. Z bezpečnostních důvodů vytvoříme nového uživatele s názvem ‚vmail‘ s oprávněním k ukládání e-mailů do /var/vmail adresář:

useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail
mkdir -p /var/vmail
chmod -R 770 /var/vmail
chown -R vmail:mail /var/vmail

Krok 3. Nainstalujte PHP, Apache a požadovaná rozšíření

PHP 7.4 a Apache2 jsou součástí výchozího úložiště Ubuntu pro 20.04. Apache 2, PHP 7.4 a požadovaná rozšíření PHP můžeme nainstalovat pomocí následujícího příkazu. Do příkazu jsme zahrnuli také požadované moduly PHP a Apache:

apt-get install apache libapache2-mod-php php php-common php-mbstring php-imap php-mysql

Krok 4. Nainstalujte server MariaDB

PostfixAdmin vyžaduje databázi, aby bylo možné ukládat informace o e-mailovém účtu a doméně. Pro účely tohoto tutoriálu použijeme databázový systém MariaDB, open-source verzi MySQL, která zachovává paritu funkcí. Server MariaDB můžeme nainstalovat pomocí následujícího příkazu:

apt-get install mariadb-server mariadb-client mariadb-common

Spusťte službu MariaDB a povolte její spuštění při spouštění serveru pomocí následujících příkazů:

systemctl start mariadb 
systemctl enable mariadb

Chcete-li zlepšit zabezpečení své instalace MariaDB, spusťte mysql_secure_installation skript:

mysql_secure_installation

Až budete vyzváni, můžete nastavit kořenové heslo MariaDB a bezpečně odpovědět „Y“ na všechny otázky.

Enter current password for root (enter for none): Just press the [Enter] key since there is no default password
Set root password? [Y/n]: Y
New password: Enter a strong password
Re-enter new password: Repeat the same password from before
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Pokud jste postupovali podle výše uvedených kroků, budete mít nastavené heslo pro uživatele root MariaDB.

Spusťte tento příkaz pro přístup ke konzoli MySQL:

mysql -u root -p

A zadejte heslo uživatele root, které jste dříve nastavili pomocí mysql_secure_installation skript. Pokud jste se rozhodli tento skript nespouštět, není nastaveno žádné heslo, takže stačí jednou stisknout klávesu [Enter].

Dále vytvořte uživatele a databázi MariaDB pro PostfixAdmin:

MariaDB [(none)]> CREATE USER 'postfixadmin'@'localhost' IDENTIFIED BY 'Strong_Password';
MariaDB [(none)]> CREATE DATABASE postfixadmin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Nezapomeňte nahradit „Strong_Password“ dobrým a jedinečným heslem.

Krok 5. Nainstalujte Postfix

Nainstalujte Postfix a postfix-mysql balíčky spuštěním příkazu níže:

apt-get install postfix postfix-mysql

Během instalace Postfixu budete dotázáni na typ konfigurace pošty. Vyberte „Internetové stránky“ a pokračujte kliknutím na OK. Poté zadejte název hostitele serveru do pole ‚system mail name‘.

Jakmile je instalace Postfixu dokončena, musíme vytvořit několik konfiguračních souborů Postfixu. Bude to chvíli trvat, protože je potřeba vytvořit a nakonfigurovat poměrně dost souborů.

mkdir -p /etc/postfix/sql/

Vytvořením tohoto souboru definujte nastavení databázového připojení pro dotazování na mapy catchall domén virtuálních aliasů. Používáme vi , ale můžete použít libovolný textový editor, který preferujete:

vi /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

Jakmile je soubor vytvořen, vložte tento obsah:

user = postfixadmin
password = Strong_Password
hosts = localhost
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'

Vytvořte tento soubor, abychom mohli nastavit databázové připojení pro dotazování map virtuálních aliasů domény:

vi /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

Poté vložte tento obsah:

user = postfixadmin
password = Strong_Password
hosts = localhost
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'

Poté definujte nastavení databázového připojení pro dotazování na mapy virtuálních aliasů vytvořením tohoto souboru:

vi /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

Přidejte následující:

user = postfixadmin
password = Strong_Password
hosts = localhost
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'

Další nastavení se týká nastavení databázového připojení pro dotazování na mapy virtuálních aliasů. Vytvořte tento soubor:

vi /etc/postfix/sql/mysql_virtual_alias_maps.cf

Přidejte tento text:

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Ještě pár zbývá. Nyní vytvořte soubor pro nastavení databázového připojení pro dotazování na mapy virtuální domény:

vi /etc/postfix/sql/mysql_virtual_domains_maps.cf

Ujistěte se, že jste nastavili hesla pro všechny tyto soubory, které jste přidávali. Přidejte obsah:

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Na další soubor. Vytvořte jej a přidejte nastavení databázového připojení pro dotazování na mapy limitů virtuálních poštovních schránek:

vi /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf

Vložte toto a změňte heslo:

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'

Nakonec vytvořte tento soubor a přidejte nastavení databázového připojení pro dotazování na mapy virtuální poštovní schránky:

vi /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

POZNÁMKA : Nezapomeňte nahradit „Strong_Password“ svým vlastním heslem ve všech výše uvedených konfiguračních souborech.

Upravte main.cf Konfigurační soubor Postfixu, který je jádrem konfigurace Postfixu. Chcete-li upravit každé nastavení, spusťte tyto příkazy:

postconf -e "myhostname = $(hostname -f)"
postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"
postconf -e "virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"
postconf -e "virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"
postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem"
postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key"
postconf -e "smtpd_use_tls = yes"
postconf -e "smtpd_tls_auth_only = yes"
postconf -e "smtpd_sasl_type = dovecot"
postconf -e "smtpd_sasl_path = private/auth"
postconf -e "smtpd_sasl_auth_enable = yes"
postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination"
postconf -e "mydestination = localhost"
postconf -e "mynetworks = 127.0.0.0/8"
postconf -e "inet_protocols = ipv4"
postconf -e "inet_interfaces = all"
postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"

Můžeme také nainstalovat Certbot a poté nainstalovat nový certifikát Let’s encrypt SSL pro název hostitele serveru a nahradit /etc/ssl/certs/ssl-cert-snakeoil.pem a /etc/ssl/private/ssl-cert-snakeoil.key s nově vytvořeným certifikátem SSL a soubory veřejného klíče.

Poté upravte soubor master.cf Konfigurační soubor Postfixu a upravte jej následovně:

vi /etc/postfix/master.cf

Přidejte nebo změňte obsah tak, aby soubor vypadal takto:

smtp inet n - y - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
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=$mua_client_restrictions
# -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 smtpd_client_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_client_restrictions=$mua_client_restrictions
# -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

Povolte spuštění služby Postfix při spuštění serveru a restartujte službu Postfix:

systemctl enable postfix
systemctl restart postfix

Postfix je konečně nainstalován a nakonfigurován.

Krok 6. Nainstalujte Dovecot

Dovecot je Mail Delivery Agent, který umožňuje uživateli přijímat e-maily v naprostém bezpečí prostřednictvím protokolů IMAP a/nebo POP3. Můžeme nainstalovat Dovecot a dovecot-mysql zabalit pomocí příkazu níže:

apt-get install dovecot-core dovecot-lmtpd dovecot-imapd dovecot-pop3d dovecot-mysql

Upravte /etc/dovecot/conf.d/10-mail.conf soubor:

vi /etc/dovecot/conf.d/10-mail.conf

Vložte toto jako obsah:

mail_location = maildir:/var/vmail/%d/%n
mail_privileged_group = mail
mail_uid = vmail
mail_gid = mail
first_valid_uid = 150
last_valid_uid = 150

Otevřete /etc/dovecot/conf.d/10-auth.conf soubor:

vi /etc/dovecot/conf.d/10-auth.conf

Upravte jej tak, aby soubor vypadal takto:

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Poté upravte dovecot-sql.conf.ext soubor a přidejte tyto řádky:

vi /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=Strong_Password
default_pass_scheme = MD5-CRYPT
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

Nezapomeňte nahradit Strong_Password skutečným heslem, které jste nastavili dříve v kroku 4 při vytváření uživatele MariaDB.

Upravte /etc/dovecot/conf.d/10-ssl.conf a povolte podporu SSL:

vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes

Uložte a zavřete tento soubor a poté upravte /etc/dovecot/conf.d/15-lda.conf a nastavte postmaster_address e-mailovou adresu.

vi /etc/dovecot/conf.d/15-lda.conf
postmaster_address = [email protected]

Ujistěte se, že jste změnili yourdomain.com na skutečný název domény, který ukazuje na váš server.

Upravte /etc/dovecot/conf.d/10-master.conf vyhledejte service lmtp oddíl a nahraďte jej následujícími řádky:

vi /etc/dovecot/conf.d/10-master.conf
service lmtp {
     unix_listener /var/spool/postfix/private/dovecot-lmtp {
     mode = 0600
     user = postfix
     group = postfix
     }
}

Jakmile je tato část upravena, najděte service auth a nahraďte jej následujícím úryvkem:

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
}

Poté změňte service auth-worker oddílu na následující:

service auth-worker {
user = vmail
}

Uložte a zavřete soubor.

Nastavte správná oprávnění konfiguračních souborů Dovecot:

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

Povolte spuštění služby Dovecot při spuštění serveru a restartujte Dovecot, aby byly všechny tyto nové konfigurační soubory účinné:

systemctl enable dovecot
systemctl restart dovecot

Krok 7. Nainstalujte PostfixAdmin

Nyní, když je veškerý náš požadovaný software nainstalován a nakonfigurován, pojďme nainstalovat a nakonfigurovat PostfixAdmin a dokončete tento tutoriál.

Stáhněte si nejnovější dostupnou verzi PostfixAdmin z Github a rozbalte ji v /var/www/html/postfixadmin adresář.

apt-get install git
cd  /var/www/html/
git clone https://github.com/postfixadmin/postfixadmin.git

Upravte /var/www/html/postfixadmin/config.local.php soubor a přidejte tyto řádky:

vi /var/www/html/postfixadmin/config.local.php
<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'Strong_Password';
$CONF['database_name'] = 'postfixadmin';
$CONF['configured'] = true;
$CONF['encrypt'] = 'md5crypt';
?>

Nahraďte Strong_Password uživatelským heslem MariaDB.

mkdir /var/www/html/postfixadmin/templates_c

chown -R www-data: /var/www/html/postfixadmin

Otevřete http://your_server_IP/postfixadmin/public/setup.php . Zkontrolujte, zda je vše v pořádku, a ujistěte se, že nejsou žádné chyby:

Přejděte dolů a dvakrát zadejte nové heslo pro nastavení. Ujistěte se, že vyberete silný:

Poté klikněte na tlačítko ‚Vygenerovat hash hesla‘.

Upravte soubor config.local.php a přidejte do něj vygenerovaný hash:

$CONF['setup_password'] = '0584cbe2b03cad2e29c8be0127361e37:d41ceb2689b747cf143d1809aec7b8e6bdde983e';

Nahraďte hash zobrazený v příkladu tím, který byl vygenerován pro vaši instanci.

Uložte soubor config.local.php soubor, znovu otevřete stránku nastavení a vytvořte uživatelský účet správce PostfixAdmin. Heslo pro nastavení na této stránce je stejné, jaké jste použili v předchozím kroku, takže vyplňte další povinná pole, jako je e-mailová adresa správce a heslo, a poté klikněte na tlačítko ‚Přidat správce‘.

A je to! Instalace PostfixAdmin je dokončena.

Otevřete http://your_server_IP/postfixadmin/login.php ve vašem preferovaném webovém prohlížeči. Zobrazí se přihlašovací stránka:

Přihlaste se jako uživatel admin a přidejte domény hostované na serveru:

Jakmile to uděláte, můžete vytvořit e-mailové adresy, nastavit poštovní kvótu a tak dále:

To je vše, co budete potřebovat k instalaci, konfiguraci a zahájení používání instalace PostfixAdmin na vašem Ubuntu 20.04 VPS.

Tento instalační proces je velmi komplikovaný a je docela snadné jej zkazit a skončit se zpackanou instalací Postfixu, Dovecotu nebo obou. Pokud však u nás máte Managed Ubuntu VPS hosting, nebudete muset dělat nic víc, než nás požádat, abychom vám jej nainstalovali. Náš tým odborníků na podporu kompletně nainstaluje a nakonfiguruje všechny aspekty vašeho serveru tak, aby Postfix, Dovecot a PostfixAdmin fungují bezchybně. Mohou také pomoci nastavit běžnou údržbu a optimalizovat váš server, aby byla maximalizována jeho rychlost.

Ocenili bychom, kdybyste to sdíleli na sociálních sítích, pokud pro vás byl tento návod užitečný. Nebo nám můžete napsat komentář, ve kterém nám dáte vědět, jak instalace proběhla a jestli vám PostfixAdmin pomohl snadněji spravovat váš poštovní server. Díky!


Panels
  1. Jak nainstalovat MySQL na Ubuntu 16.04

  2. Jak nainstalovat NextCloud 13 na Ubuntu 16.04

  3. Jak nainstalovat osTicket na Ubuntu 16.04

  1. Jak nainstalovat WordPress s LAMP Stack na Ubuntu 16.04

  2. Jak nainstalovat PHP 7.2 na Ubuntu 16.04

  3. Jak nainstalovat MySQL na Ubuntu 18.04

  1. Jak nainstalovat NextCloud 15 na Ubuntu 18.04

  2. Jak nainstalovat Sensu na Ubuntu 18.04

  3. Jak nainstalovat Vanilla Forums s OpenLiteSpeed ​​na Ubuntu 20.04